你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 Java 的 Azure Monitor OpenTelemetry 导出程序客户端库 - 版本 1.0.0-beta.12

此客户端库支持将 OpenTelemetry 数据导出到 Azure Monitor。 此包假定已按照 OpenTelemetry 规范使用 OpenTelemetry SDK 检测应用程序

源代码 | 包 (Maven) | API 参考文档 | 产品文档 | 样品

入门

先决条件

有关详细信息,请阅读 Application Insights 简介

包括包

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-monitor-opentelemetry-exporter</artifactId>
  <version>1.0.0-beta.8</version>
</dependency>

Authentication

从门户获取检测密钥

若要将遥测数据导出到 Azure Monitor,需要 Application Insights 资源的检测密钥。 若要获取检测密钥,请转到 Azure 门户,搜索资源。 在资源的概述页上,可以在右上角找到检测密钥。

为 Azure Monitor 创建导出器生成器

AzureMonitorExporterBuilder azureMonitorExporterBuilder = new AzureMonitorExporterBuilder()
    .connectionString("{connection-string}");

导出范围数据

以下示例演示如何通过 将跟踪数据导出到 Azure Monitor AzureMonitorTraceExporter

设置 OpenTelemetry SDK 以使用 Azure Monitor 导出程序
// Create Azure Monitor exporter and initialize OpenTelemetry SDK
// This should be done just once when application starts up
AutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();

new AzureMonitorExporterBuilder()
    .connectionString("{connection-string}")
    .build(sdkBuilder);

OpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();

Tracer tracer = openTelemetry.getTracer("Sample");
创建范围
// Make service calls by adding new parent spans
ConfigurationClient client = new ConfigurationClientBuilder()
    .connectionString("{app-config-connection-string}")
    .buildClient();

Span span = tracer.spanBuilder("user-parent-span").startSpan();
final Scope scope = span.makeCurrent();
try {
    // Thread bound (sync) calls will automatically pick up the parent span and you don't need to pass it explicitly.
    client.setConfigurationSetting("hello", "text", "World");
} finally {
    span.end();
    scope.close();
}

关键概念

Azure Monitor 导出程序的某些关键概念包括:

  • OpenTelemetry:OpenTelemetry 是一组库,用于收集和导出遥测数据, (指标、日志和跟踪) 进行分析,以了解软件的性能和行为。

  • 检测:通过检测,可以通过任何应用程序直接调用 OpenTelemetry API。 为另一个库启用 OpenTelemetry 可观测性的库称为检测库。

  • 跟踪:跟踪是指分布式跟踪。 可以将其视为 spans (DAG) 的有向无环图,其中 Span 之间的边缘定义为父/子关系。

  • 跟踪提供程序:提供 Tracer 供给定检测库使用的 。

  • 范围处理器:范围处理器允许对 SDK 的 Span 开始和结束方法调用进行挂钩。 有关详细信息,请单击链接。

  • 采样:采样是一种通过减少收集并发送到后端的跟踪样本数来控制 OpenTelemetry 引入的噪音和开销的机制。

有关 OpenTelemetry 项目的详细信息,请查看 OpenTelemetry 规范

示例

可以在 示例中找到更多示例。

疑难解答

启用日志记录

适用于 Java 的 Azure SDK 提供一致的日志记录案例,可帮助排查应用程序错误并加快解决。 生成的日志会在到达终端状态之前捕获应用程序的流,以帮助查找根本问题。 查看 日志记录 Wiki,获取有关启用日志记录的指南。

后续步骤

详细了解 开放遥测

贡献

本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。

提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。

此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。

曝光数