帮助手册

自定义插桩

APM Insight 代理会对多种 Web 组件和框架的预定义类进行插桩,以提供应用程序的深度洞察。APM Insight 同时提供自定义插桩选项,允许您对所选的类进行插桩。自定义插桩可以更全面地洞察应用程序,方便追踪特定功能或模块的性能。

Java Agent 提供以下 3 种自定义插桩方式:

  • 使用 Web 客户端——您可以通过 Site24x7 Web 客户端对应用程序的方法和类进行插桩,更改会同步到所有应用程序实例。
  • 使用 Java 注解 ——通过在应用程序中修改代码并添加注解来提取额外的值,更改会同步到所有应用程序实例。
  • 使用配置文件 ——当您希望仅对特定实例的类或方法进行插桩时,可使用此方法。 

配置步骤

  1. 对于 Java 代理版本低于 7.0.0 的情况,请在代理安装目录中创建名为 instrumentation.conf 的新文件。对于 7.0.0 及以上版本,该文件应放置在代理安装目录内名为 <appName>_<port> 的子目录中,该子目录对应需要自定义插桩的 APM 实例。
  2. 按照以下语法添加类/包:
    Fully qualified ClassName : methodNames separated by comma(,) : component_Name
  3. 每个类/包条目必须单独占一行。
  4. 如果未提供方法名称,则指定类下的所有方法都将被插桩。如果存在需要插桩的重载方法,所有重载方法都将被插桩。
  5. 组件名称只允许使用 a-zA-Z_0-9 字符。如果未指定 component_Name 或其无效,代理默认将其视为 APP Code。
    Example:
    a/b/c/CustomClass : methodA, methodB : ComponentA
    a/b/c/CustomClass : methodC : ComponentB
    a/b/c/CustomClass : : Component_A1
    a/b/c/CustomClass : :
  6. 如果需要对包中的所有类进行插桩,请按如下方式指定包名:
    package_name/.* : :
    示例:
    a/b/c/.* : : Component_C
    a/b/c/d/.* : :
  7. 不建议将整个包作为输入,因为代理会对其下所有包中所有类的所有方法进行插桩,这可能会带来额外的 CPU 和内存开销。此外,会存在大量不感兴趣的方法,导致追踪记录过长。不过,此方法可用于研究代码执行流程。

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!