跳转至

opentelemetry-java Version 1.44.0

为什么要使用opentelemetry-java

在当今复杂的微服务架构中,开发者面临着前所未有的挑战:如何有效地监控和追踪应用程序的性能?传统的监控工具往往无法提供足够的细节,导致问题的根源难以定位。opentelemetry-java的出现,正是为了填补这一空白。它不仅能够提供全面的可观察性,还能帮助开发者快速识别和解决性能瓶颈。选择opentelemetry-java,意味着选择了一条通往更高效、更可靠的应用程序监控之路。

opentelemetry-java是什么

opentelemetry-java是一个开源项目,旨在为Java应用程序提供统一的可观察性解决方案。它支持分布式追踪、指标收集和日志记录,使开发者能够轻松地监控和分析应用程序的性能。通过opentelemetry-java,开发者可以实现对应用程序的全面监控,从而提高系统的可维护性和可靠性。

入门示例

假设你正在开发一个电子商务平台,用户在下单时需要经过多个服务(如库存检查、支付处理和订单确认)。使用opentelemetry-java,你可以在每个服务中集成追踪代码,以便记录每个请求的处理时间和状态。例如,在库存服务中,你可以使用以下代码来创建一个追踪:

import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.api.trace.Span;

public class InventoryService {
    private static final Tracer tracer = OpenTelemetry.getGlobalTracer("inventory-service");

    public void checkInventory(String productId) {
        Span span = tracer.spanBuilder("checkInventory").startSpan();
        try {
            // 检查库存逻辑
        } finally {
            span.end();
        }
    }
}

通过这种方式,你可以清晰地追踪每个请求的流转,快速定位潜在的问题。

opentelemetry-java Version 1.44.0版本更新了什么

在1.44.0版本中,opentelemetry-java进行了多项重要更新,包括修复了ConfigUtil#getString方法中的并发修改异常,稳定了ExceptionEventData,优化了指标的内部结构,增强了导出器的功能,并改进了文档中的配置说明。这些更新旨在提升性能和用户体验,使开发者能够更高效地使用该工具。

更新日志

API

  • 修复了ConfigUtil#getString方法中的并发修改异常。

SDK

跟踪
  • 稳定了ExceptionEventData。
指标
  • 稳定了指标基数限制。
  • 重构了指标内部结构,移除了MeterSharedState。
导出器
  • 为标准输出导出器添加了内存模式选项。
  • 如果OTLP端点端口与协议不符,则记录警告。
  • 修复了OTLP gRPC在HTTP响应不成功时的重试机制。
  • 添加了ByteBuffer字段类型的序列化支持。
  • 修复了标准输出导出器格式,确保每次导出后添加换行符。
  • 默认启用OtlpGrpc{Signal}Exporter、OtlpHttp{Signal}Exporter、OtlpStdout{Signal}Exporter和PrometheusHttpServer的可重用数据内存模式。
扩展
  • 在文档中将文件配置重新命名为声明式配置。
  • 修复了声明式配置的file_format验证。
  • 通过禁止默认值中的'}'来修复声明式配置的环境替换。
  • 将声明式配置的默认OTLP协议设置为http/protobuf。
  • 稳定了通过otel.resource.disabled.keys禁用资源键的自动配置。

工具

  • 在Java 23上运行测试。
  • 在CI中测试Windows。
  • 为内部javadoc和私有构造函数添加了错误检查。

总结

在1.44.0版本的更新中,opentelemetry-java通过修复bug、优化性能和增强功能,进一步提升了开发者的使用体验。这些改进不仅使得监控和追踪变得更加高效,也为开发者提供了更强大的工具,以应对日益复杂的应用程序环境。