opentelemetry-java Version 1.42.0¶
为什么要使用opentelemetry-java¶
在当今快速发展的软件世界中,监控和追踪应用程序的性能变得至关重要。然而,许多开发者在选择合适的工具时面临着困惑:是选择复杂的解决方案,还是接受功能的局限?opentelemetry-java的出现,正是为了解决这一矛盾。它不仅提供了强大的监控能力,还能与多种后端系统无缝集成,帮助开发者轻松获取应用的运行状态。想象一下,您可以在几行代码内实现全面的追踪和监控,这正是opentelemetry-java所带来的便利。
opentelemetry-java是什么¶
opentelemetry-java是一个开源的监控和追踪库,旨在帮助开发者收集、处理和传输应用程序的性能数据。它支持多种语言和平台,提供了一致的API,使得开发者能够轻松集成到现有的应用程序中。通过opentelemetry-java,您可以实时监控应用的健康状况,快速定位问题,提升用户体验。
入门示例¶
假设您正在开发一个电子商务网站,用户在结账时遇到延迟。通过集成opentelemetry-java,您可以在结账流程中添加追踪代码:
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.api.trace.Span;
public class CheckoutService {
private static final Tracer tracer = OpenTelemetry.getGlobalTracer("ecommerce");
public void checkout(User user, Cart cart) {
Span span = tracer.spanBuilder("checkout").startSpan();
try {
// 处理结账逻辑
} finally {
span.end();
}
}
}
通过这种方式,您可以追踪结账过程中的每一步,及时发现并解决性能瓶颈。
opentelemetry-java Version 1.42.0版本更新了什么¶
在1.42.0版本中,opentelemetry-java引入了对AnyValue日志支持的稳定化,重命名为Value,并将其从opentelemetry-api-incubator提升至opentelemetry-api。此外,增加了对SpanProcessor OnEnding回调的实验性支持,移除了SdkTracer.tracerEnabled的final修饰符,并对zipkin导出器进行了抑制。最后,OTLP导出器现在通过CompletableResultCode返回状态代码异常。
更新日志¶
API¶
- 重大更新:稳定化AnyValue日志支持,重命名为Value,并提升至opentelemetry-api。
- 当opentelemetry-api-incubator存在时,Noop实现会返回扩展的Noop实现。
SDK¶
- 增加了对SpanProcessor OnEnding回调的实验性支持。
- 移除了SdkTracer.tracerEnabled的final修饰符。
Exporters¶
- 抑制zipkin导出器的仪器。
- OTLP导出器通过CompletableResultCode返回状态代码异常。
- 使GrpcSender合同与HttpSender对齐。
Extensions¶
- 为ns和us持续时间添加自动配置支持。
- 为资源、处理器、采样器和传播者添加声明性配置ComponentProvider支持。
- 将jaeger远程采样器的自动配置属性从pollingInterval更改为pollingIntervalMs,以匹配规范。
Testing¶
- 为日志记录体字段添加断言。
总结¶
在1.42.0版本中,opentelemetry-java进行了多项重要更新,包括对日志支持的稳定化、SpanProcessor的实验性支持以及对导出器和扩展的改进。这些更新将进一步提升开发者在监控和追踪应用性能时的体验,使得opentelemetry-java成为更加强大的工具。