Appearance
如何在 Java 中将 OpenTelemetry 数据导出到 Azure Monitor
通过配置 Azure Monitor OpenTelemetry 导出器,让 Java 应用程序能够将标准化的 OpenTelemetry 遥测数据(Traces, Metrics, Logs)发送到 Azure Application Insights,实现分布式链路追踪与性能监控。
为什么需要这个技能
在微服务架构中,定位请求在多个服务间的传递路径及性能瓶颈至关重要。OpenTelemetry 提供了统一的观测标准,而 Azure Monitor 提供了强大的分析平台。
通过此技能,开发者无需编写厂商特定的 SDK 代码,即可将符合 OTel 标准的遥测数据接入 Azure 平台。值得注意的是,原有的 azure-monitor-opentelemetry-exporter 包已进入弃用阶段,目前推荐迁移至 azure-monitor-opentelemetry-autoconfigure 以获得更简单的自动配置体验。
适用场景
- 需要将 Java 应用的性能指标和请求链路集成到 Azure Application Insights 时。
- 正在从传统的 App Insights SDK 迁移到 OpenTelemetry 标准时。
- 需要在复杂分布式系统中实现端到端的可观测性分析。
核心工作流
1. 依赖配置(推荐使用 Autoconfigure)
在 pom.xml 中引入自动配置包:
xml
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-monitor-opentelemetry-autoconfigure</artifactId>
<version>LATEST</version>
</dependency>2. 环境配置
设置连接字符串,以便 SDK 知道将数据发送到哪个 Azure 资源:
bash
APPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=xxx;IngestionEndpoint=https://xxx.in.applicationinsights.azure.com/3. 初始化 SDK
使用 AutoConfiguredOpenTelemetrySdk 快速构建:
java
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder;
import io.opentelemetry.api.OpenTelemetry;
import com.azure.monitor.opentelemetry.exporter.AzureMonitorExporter;
AutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();
AzureMonitorExporter.customize(sdkBuilder);
OpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();4. 创建追踪(Spans)与记录异常
在业务代码中定义 Span 来记录操作耗时:
java
Tracer tracer = openTelemetry.getTracer("com.example.myapp");
Span span = tracer.spanBuilder("processOrder").startSpan();
try (Scope scope = span.makeCurrent()) {
// 业务逻辑
span.setAttribute("order.id", "12345");
doWork();
} catch (Exception e) {
span.recordException(e);
span.setStatus(StatusCode.ERROR, e.getMessage());
throw e;
} finally {
span.end();
}下载和安装
下载 azure-monitor-opentelemetry-exporter-java 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐