使用 API 扩展仪器
使用 OpenTelemetry API 结合 Spring Boot starter,扩展自动生成的遥测数据,添加自定义 span 和 metric
简介
除了开箱即用的 instrumentation,您还可以使用 OpenTelemetry API 通过自定义手动 instrumentation 来扩展 Spring starter。这允许您为自己的代码创建 span 和 metric,而无需进行太多代码更改。
所需的依赖项已包含在 Spring Boot starter 中。
OpenTelemetry
Spring Boot starter 是一个特殊情况,其中 OpenTelemetry 可作为 Spring bean 使用。只需将 OpenTelemetry 注入到您的 Spring 组件中即可。
Span
注意
对于最常见的用例,请使用 @WithSpan 注解,而不是手动 instrumentation。有关更多信息,请参阅 Annotations。
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Tracer;
@Controller
public class MyController {
private final Tracer tracer;
public MyController(OpenTelemetry openTelemetry) {
this.tracer = openTelemetry.getTracer("application");
}
}
使用 Tracer 创建 span,具体请参阅 Span 部分。
完整的示例可以在 示例仓库 中找到。
Meter
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.metrics.Meter;
@Controller
public class MyController {
private final Meter meter;
public MyController(OpenTelemetry openTelemetry) {
this.meter = openTelemetry.getMeter("application");
}
}
使用 Meter 创建计数器、Gauge 或直方图,具体请参阅 Meter 部分。
完整的示例可以在 示例仓库 中找到。