帮助手册

使用 Java Agent API 进行监控

通常,APM Insight Java Agent 会监控 常用框架和库。 
 
通过 Java Agent API,您可以跟踪自定义指标,以监控特定于您应用程序的参数。这有助于进行上下文调试。
 
Java Agent API 允许您为需要监控的方法添加注解。此外,您可以为方法和组件提供自定义名称,以便于识别和故障排除。

要求

在通过 Java Agent API 进行监控之前,请确保满足以下要求:

  • 您正在运行 Java 1.6 或更高版本。      
  • 您已下载 API JAR(Java 归档)文件(apminsight-javaagent-api.jar),该文件已捆绑在 Java Agent 压缩包中。(您可以从 Site24x7 账户下载 Java Agent。)
  • API Jar 文件在您应用程序的构建路径中可用,并与您的应用程序捆绑在一起(推荐位置:WEB-INF/lib)。
  • Maven 用户如需将 Java Agent API 构件添加为项目依赖,请按照此处的说明操作。

用法

您可以将 Java Agent API 用于以下需求:

  1. 自定义埋点
  2. 跟踪异常
  3. 监控代码块
  4. 向追踪添加自定义参数
  5. 自定义事务名称

使用 Java Agent API 进行自定义埋点

除了应用程序框架中定义的默认类和方法之外,您还可以使用自定义埋点监控您自己的应用程序特定方法和类。 

自定义埋点可以通过 Java Agent API 实现,也可以通过配置文件实现。 

Java Agent API 为您提供注解,用于对方法和类进行埋点。

使用 Java Agent API 跟踪异常(版本 3.5)

虽然您可以借助代理跟踪异常,但 Java Agent API 为监控/调试提供了更多可见性和自定义选项。
 
通常情况下,代理会捕获已记录或未捕获的异常。在大多数情况下,开发人员会在代码中捕获异常并进行处理,而不会将其传播出去。这类异常可以使用此 API 进行跟踪。通过 Java Agent API,您可以提供自定义消息和实际的可抛出异常对象,并在异常发生时进行跟踪。 

您可以在应用程序代码中添加 API,以提供错误消息和异常。代理随后会跟踪这些信息并将其与相应的事务关联。

您可以在 APM Insight 的"异常"选项卡下查看这些异常。 

语法

CustomTracker.trackException(String message, Throwable throwable)
CustomTracker.trackException(Throwable throwable)

示例输入

 

 

示例输出

监控代码块

您还可以使用 Java Agent API 在方法级别监控特定代码块。要监控代码块,请将代码块包含在 CustomTracker 新对象和 stop 方法之间。

您可以为代码块关联名称、组件和异常。目前,名称仅支持空格、连字符、下划线和字母数字字符。块名称最长可达 64 个字符,组件名称限制为 32 个字符。

创建新的 CustomTracker 对象标志着待监控块的起始点;块的结束使用 <trackerObj>.stop() 方法标记。如果块中存在异常,可以将异常对象传递给 stop 方法;这会自动将异常与相应代码块及其事务关联。

语法

CustomTracker tracker = new CustomTracker("block__name");

CustomTracker tracker = new CustomTracker("block_name", "component_name");

 

tracker.stop();

tracker.stop(exceptionObj);

示例

CustomTracker tracker = new CustomTracker("operation_"+opId);
try {
// some operations
tracker.stop();
}
catch (NumberFormatException nfe) {
tracker.stop(nfe);
// some rescue operations
}

示例输出

向追踪添加自定义参数

为了赋予追踪更丰富的上下文含义,您可以添加额外参数,以帮助识别事务追踪的上下文。
上下文指标可以是任何内容,如会话 ID、用户 ID 或某些方法参数,这些都能帮助您识别事务追踪的具体信息。
每条事务追踪最多可添加 10 个参数,这些参数可在"追踪摘要"中查看。

要添加自定义参数,请遵循以下语法:

语法

CustomTracker.addParameter("key", value);

Key - 参数名称
Value - 参数值。可以是任意类型,代理内部会使用 Object.toString() 将其转换为字符串。

示例

import com.manageengine.apminsight.agent.api.CustomTracker;
....
{
....
CustomTracker.addParameter("User ID", user_id);
....
}

输出

 自定义事务名称

如果您希望为事务定义唯一名称以便于追踪和识别,可以使用我们的 Agent API。

语法

CustomTracker.setTransactionName("name");
name - 事务的期望名称

示例

import com.manageengine.apminsight.agent.api.CustomTracker;
....
{
....
CustomTracker.setTransactionName("reseller/search");
....
}

输出

 

本文档对您有帮助吗?

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


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


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

短链接已复制!