跳转至

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成为更加强大的工具。