使用 API 扩展仪器
结合使用 OpenTelemetry API 和 Java Agent,通过自定义 span 和 metrics 扩展自动生成的遥测数据。
简介
除了开箱即用的仪器外,您还可以使用 OpenTelemetry API 通过自定义的手动仪器来扩展 Java Agent。这允许您为自己的代码创建 span 和 metrics,而无需进行太多代码更改。
依赖项
添加对 opentelemetry-api 库的依赖。
Maven
<dependencies>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
<version>1.57.0</version>
</dependency>
</dependencies>
Gradle
dependencies {
implementation('io.opentelemetry:opentelemetry-api:1.57.0')
}
OpenTelemetry
Java Agent 是一个特殊情况,其中 GlobalOpenTelemetry 由 Agent 设置。只需调用 GlobalOpenTelemetry.getOrNoop() 即可访问 OpenTelemetry 实例。
Span
注意
对于最常见的用例,请使用 @WithSpan 注解而不是手动仪器。有关更多信息,请参阅 Annotations。
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.trace.Tracer;
Tracer tracer = GlobalOpenTelemetry.getTracer("application");
使用 Tracer 创建 span,如 Span 部分所述。
完整的示例可以在 示例仓库 中找到。
Meter
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.metrics.Meter;
Meter meter = GlobalOpenTelemetry.getMeter("application");
使用 Meter 创建计数器、仪表盘或直方图,如 Meter 部分所述。
完整的示例可以在 示例仓库 中找到。