使用 Java 代理 API 进行监控

一般来说,APM Insight Java Agent 会监控 常用的框架和库。 

使用 Java 代理 API,您可以跟踪自定义指标以监控特定于您的应用程序的参数。这有助于上下文调试。

Java 代理 API 允许您注释要监视的方法。此外,您可以为您的方法和组件提供自定义名称,以便更轻松地识别和排除故障。

要求:

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

  • 您正在运行 Java 1.6 及更高版本。      
  • 您已经下载了与 Java 代理 zip 文件绑定在一起的 API JAR (Java ARchieved) 文件 (apminsight-javaagent-api.jar)。(您可以从您的 Site24x7 帐户下载 Java 代理。)
  • API Jar 文件在您的应用程序的构建路径中可用,并与您的应用程序绑定在一起(首选位置:WEB-INF/lib)。
  • Maven 用户,要将 Java 代理 API 工件作为依赖项添加到您的项目中,请按照此处提到的说明进行操作

用法:

您可以使用 Java 代理 API

  1. 在自定义检测中
  2. 跟踪异常
  3. 监控代码块
  4. 将自定义参数添加到跟踪
  5. 自定义事务名称

1. 使用 Java 代理 API 的自定义检测:

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

自定义检测可以通过 Java 代理 API 或使用配置文件来完成。 

Java 代理 API 为您提供注释以检测您的方法和类。

2. 使用 Java 代理 API(3.5 版)跟踪异常: 

尽管您可以在代理的帮助下跟踪异常,但 Java 代理 API 为监控/调试目的提供了更多可见性和自定义选项。

通常,代理会捕获已记录或未捕获的异常。在大多数情况下,开发人员倾向于捕获异常并在代码中处理它们而不传播它们。可以使用此 API 跟踪此类异常。使用 Java 代理 API,您可以提供自定义消息和实际的可抛出异常对象,并在异常发生时跟踪它们。 

您可以在应用程序代码中添加 API 以提供错误消息和异常。然后由代理跟踪并与其各自的事务相关联。

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

语法:

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

示例输入:

Java agent API Input

 

示例输出:

Java agent API Output


3. 监控一段代码:

您还可以使用 Java 代理 API 来监视方法级别内的特定代码块。要监视代码块,请将代码块包含在CustomTracker的新对象中并停止方法。

您可以将名称、组件和异常与块相关联。截至目前,名称仅支持空格、连字符、下划线和字母数字字符。块名称最多可包含 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
}

示例输出:

Sample Output

 

4.添加自定义参数进行跟踪

要为跟踪赋予上下文意义,您可以添加其他参数来帮助您识别事务跟踪的上下文。
上下文指标可以是任何东西,会话 ID、用户 ID 或某些方法参数,它们可以帮助您识别有关事务跟踪的特定信息。
一个事务跟踪最多可以添加 10 个参数,这些参数可以在 Trace Summary 下查看

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

语法:

CustomTracker.addParameter("key", value);

Key - 参数的名称

Value - 值的参数。它可以是任何类型,内部代理使用 Object.toString() 将它们转换为字符串

示例:

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

Output:

Output

 

 5. 自定义事务名称

如果您想为事务定义一个唯一名称以便于跟踪和识别,您可以使用我们的代理 API。

语法

CustomTracker.setTransactionName("name");
name - 事务的所需名称

例子:

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

输出:

API Output