V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
heheda11
V2EX  ›  程序员

Java agent 探针技术有没有推荐的书籍

  •  
  •   heheda11 · 2021-06-17 09:32:58 +08:00 · 2317 次点击
    这是一个创建于 1037 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有专门讲探针的实战书籍?

    网上搜了一下貌似没有

    最近想看 SkyWalking 源码不知道如何下手。。。。

    望大佬们指教🤔🤔

    8 条回复    2021-06-18 09:59:39 +08:00
    s0nnse
        1
    s0nnse  
       2021-06-17 09:54:20 +08:00
    aHR0cHMlM0EvL2Jsb2dzLm9yYWNsZS5jb20vb3VjaGluYS9qYXZhYWdlbnQlMEElMEFodHRwcyUzQS8vd3d3LmNuYmxvZ3MuY29tL3JpY2tpeWFuZy9wLzExMzY4OTMyLmh0bWw=


    看一下这个就差不多了,原理是一样的。
    Tiakon
        2
    Tiakon  
       2021-06-17 10:28:43 +08:00
    +1
    BBCCBB
        3
    BBCCBB  
       2021-06-17 10:55:30 +08:00
    先学学字节码和 asm. 我学过也还是懵的.
    Aruforce
        4
    Aruforce  
       2021-06-17 11:18:48 +08:00
    这个还挺简单的啊...就是 JVM 提供的一个机制 agenmain 啥啥的...

    就是 classLoader 加一些 classTransFormer

    classTransFormer 可以接受一个 byte[] (代表原始的 class 文件)返回一个新的 byte[](新的 class 文件)

    至于在 classTransformer 代码之内你想干什么都行啊。。 一般都是用 ASM 等等框架做一些代码增强 或者字节码解析分析啊 啥啥的...
    DeadLion
        5
    DeadLion  
       2021-06-17 11:50:38 +08:00
    一直想做个 skywalking 的教学系列视频
    chenshun00
        6
    chenshun00  
       2021-06-17 18:30:12 +08:00   ❤️ 1
    所有 agent 探针都是一个模子刻出来的,不论是 pinpoint,或者是 skywalking,还是 arthas,他们的核心思路就是 javaagent 引入主 Agent 类,自定义 classLoader 加载自定义路径 lib 目录下的 jar 包,通过一定的机制来进行处理引入字节码。 比较核心有 SPI,ClassLoader 的理解。skywalking 因为使用的是 bytebuddy,在这方面简化了不少,相比 pinpoint 的代码,skywalking 的代码更简单,当然功能相比 pinpoint 更弱。 这么说并不是贬低 skywalking,我认为 agent 探针的难度从来都不在于 agent 怎么写,而在于存储的数据如何组织,如何展现到前端。
    heheda11
        7
    heheda11  
    OP
       2021-06-17 18:36:22 +08:00
    @chenshun00 感谢
    gaius
        8
    gaius  
       2021-06-18 09:59:39 +08:00
    javasisst 简单粗暴
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1125 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:36 · PVG 07:36 · LAX 16:36 · JFK 19:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.