相关文章推荐
文武双全的铁链  ·  C# ...·  6 月前    · 
深沉的蚂蚁  ·  Adding Files to ...·  1 年前    · 

本文介绍如何启用和配置基于 OpenTelemetry 的数据收集,以便为 Azure Monitor Application Insights 中的体验提供支持。 我们会演练如何安装“Azure Monitor OpenTelemetry 发行版”。 分发版将跨应用程序及其依赖项 自动收集 跟踪、指标、日志和异常。 若要详细了解如何使用 OpenTelemetry 收集数据,请参阅 数据收集基础知识 OpenTelemetry 常见问题解答

OpenTelemetry 发布状态

OpenTelemetry 产品/服务适用于 .NET、Node.js、Python 和 Java 应用程序。

  • ✅ 1 :OpenTelemetry 适用于享受正式支持的所有客户。
  • ⚠️ 2 :OpenTelemetry 作为公共预览版提供。 Microsoft Azure 预览版补充使用条款
  • 有关每项功能的发布状态,请参阅 常见问题解答

    遵循本部分提供的步骤使用 OpenTelemetry 检测应用程序。

  • 一个 Azure 订阅: 免费创建 Azure 订阅
  • 一个 Application Insights 资源: 创建 Application Insights 资源
  • 我们尚未测试与 OpenTelemetry 社区包并行运行的 Azure Monitor OpenTelemetry 发行版。 建议在安装发行版之前卸载任何与 OpenTelemetry 相关的包。

    安装客户端库

    ASP.NET Core Node.js Python
    npm install @opentelemetry/api
    npm install @opentelemetry/sdk-metrics
    npm install @opentelemetry/resources
    npm install @opentelemetry/semantic-conventions
    npm install @opentelemetry/sdk-trace-base
    

    启用 Azure Monitor Application Insights

    要启用 Azure Monitor Application Insights,需对应用程序进行少量修改,并设置“连接字符串”。 连接字符串会告知你的应用程序应将发行版收集的遥测数据发送到何处,此信息是对你唯一的。

    修改你的应用程序

    ASP.NET Core Node.js Python

    UseAzureMonitor() 添加到你的应用程序启动中。 根据你的 .NET 的版本,它在你的 startup.csprogram.cs 类中。

    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddOpenTelemetry().UseAzureMonitor();
    var app = builder.Build();
    app.Run();
    

    在应用程序启动时,将 Azure Monitor 添加到每个 OpenTelemetry 信号中。 根据你的 .NET 的版本,它在你的 startup.csprogram.cs 类中。

    var tracerProvider = Sdk.CreateTracerProviderBuilder()
        .AddAzureMonitorTraceExporter();
    var metricsProvider = Sdk.CreateMeterProviderBuilder()
        .AddAzureMonitorMetricExporter();
    var loggerFactory = LoggerFactory.Create(builder =>
        builder.AddOpenTelemetry(options =>
            options.AddAzureMonitorLogExporter();
    

    有关详细信息,请参阅 OpenTelemetry .NET 入门教程

    Java 自动检测通过配置更改启用,无需更改代码。

    通过将 -javaagent:"path/to/applicationinsights-agent-3.4.14.jar" 添加到应用程序的 JVM 参数,使 JVM 指向 jar 文件。

    有关特定于场景的指南,请参阅入门(补充)

    如果你要开发 Spring Boot 应用程序,可以选择性地使用编程配置替换 JVM 参数。 有关详细信息,请参阅将 Azure Monitor Application Insights 与 Spring Boot 配合使用

    const { ApplicationInsightsClient, ApplicationInsightsConfig } = require("applicationinsights");
    const config = new ApplicationInsightsConfig();
    const appInsights = new ApplicationInsightsClient(config);
    
    from azure.monitor.opentelemetry import configure_azure_monitor
    from opentelemetry import trace
    configure_azure_monitor(
        connection_string="<Your Connection String>",
    tracer = trace.get_tracer(__name__)
    with tracer.start_as_current_span("hello"):
        print("Hello, World!")
    input()
    

    如果你还没有资源,现在是创建 Application Insights 资源的绝佳时机。 建议在以下情况下创建新的 Application Insights 资源,而不是使用现有资源

    若要复制你唯一的连接字符串:

  • 转到 Application Insights 资源的“概述”窗格。
  • 查找你的连接字符串
  • 将鼠标指针悬停在连接字符串上,并选择“复制到剪贴板”图标。
  • 将连接字符串粘贴到你的环境中

    要粘贴连接字符串,请从以下选项中进行选择:

    A. 通过环境变量设置(推荐)

    将以下命令中的 <Your Connection String> 替换为你的唯一连接字符串。

    APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
    

    B. 通过配置文件设置 - 仅 Java(推荐)

    创建包含以下内容的、名为 applicationinsights.json 的配置文件,并将其置于 applicationinsights-agent-3.4.14.jar 所在的同一目录:

    "connectionString": "<Your Connection String>"

    将之前的 JSON 中的 <Your Connection String> 替换为你的唯一连接字符串。

    C. 通过代码设置 - ASP.NET Core、Node.js 和 Python(不推荐)

    有关通过代码设置连接字符串的示例,请参阅连接字符串配置

    如果在多个位置设置连接字符串,我们遵循以下优先顺序:

    确认有数据流

    运行应用程序,然后打开 Azure 门户中的“Application Insights 资源”选项卡。 数据可能在数分钟后才会显示在门户中。

    就这么简单。 你的应用程序现在受到 Application Insights 的监视。 下面的其他所有内容都是可选的,可进一步自定义。

    不起作用? 请查看 ASP.NET CoreJavaNode.jsPython 的故障排除页。

    如果有两个或更多服务向同一 Application Insights 资源发出遥测数据,则需要设置云角色名称以在应用程序映射中正确表示这些服务。

    在使用 Application Insights 检测的过程中,我们会收集诊断数据并将其发送给 Microsoft。 这些数据可帮助我们运行和改进 Application Insights。 若要了解更多信息,请参阅 Azure Application Insights 中的 Statsbeat

    ASP.NET Core Node.js Python
  • 有关 Azure 支持问题,可打开 Azure 支持票证
  • 有关疑难解答的帮助,请参阅疑难解答步骤
  • 有关 OpenTelemetry 问题,请直接与 OpenTelemetry 社区联系。
  • 有关与 Azure Monitor Java 自动检测相关的未解决问题列表,请参阅 GitHub 问题页
  • 填写 OpenTelemetry 社区的客户反馈调查
  • 加入 OpenTelemetry 早期采用者社区,告诉 Microsoft 有关你本人的信息。
  • Microsoft 技术社区与其他 Azure Monitor 用户联系。
  • Azure 反馈论坛中发出功能请求。
  • ASP.NET Core Node.js Python
  • 有关添加和修改 Azure Monitor OpenTelemetry 的详细信息,请参阅添加和修改 Azure Monitor OpenTelemetry
  • 若要进一步配置 OpenTelemetry 发行版,请参阅 Azure Monitor OpenTelemetry 配置
  • 若要查看源代码,请参阅 Azure Monitor AspNetCore GitHub 存储库
  • 若要安装 NuGet 包、检查更新或查看发行说明,请参阅 Azure Monitor AspNetCore NuGet 包页面。
  • 若要进一步了解 Azure Monitor 和 OpenTelemetry,请参阅 Azure Monitor 示例应用程序
  • 若要详细了解 OpenTelemetry 及其社区,请参阅 OpenTelemetry .NET GitHub 存储库
  • 若要开启使用体验,请参阅启用 Web 或浏览器用户监视
  • 有关添加和修改 Azure Monitor OpenTelemetry 的详细信息,请参阅添加和修改 Azure Monitor OpenTelemetry
  • 若要进一步配置 OpenTelemetry 发行版,请参阅 Azure Monitor OpenTelemetry 配置
  • 若要查看源代码,请参阅 Azure Monitor 导出器 GitHub 存储库
  • 若要安装 NuGet 包、检查更新或查看发行说明,请参阅 Azure Monitor 导出器 NuGet 包页面。
  • 若要进一步了解 Azure Monitor 和 OpenTelemetry,请参阅 Azure Monitor 示例应用程序
  • 若要详细了解 OpenTelemetry 及其社区,请参阅 OpenTelemetry .NET GitHub 存储库
  • 若要开启使用体验,请参阅启用 Web 或浏览器用户监视
  • 有关添加和修改 Azure Monitor OpenTelemetry 的详细信息,请参阅添加和修改 Azure Monitor OpenTelemetry
  • 查看 Java 自动检测配置选项
  • 若要查看源代码,请参阅 Azure Monitor Java 自动检测 GitHub 存储库
  • 若要详细了解 OpenTelemetry 及其社区,请参阅 OpenTelemetry Java GitHub 存储库
  • 若要开启使用体验,请参阅启用 Web/浏览器用户监视
  • 在 GitHub 上查看发行说明
  • 有关添加和修改 Azure Monitor OpenTelemetry 的详细信息,请参阅添加和修改 Azure Monitor OpenTelemetry
  • 若要查看源代码,请参阅 Application Insights Beta GitHub 存储库
  • 要安装 npm 包并检查更新,请参阅 applicationinsights npm 包页面。
  • 若要进一步了解 Azure Monitor Application Insights 和 OpenTelemetry,请参阅 Azure Monitor 示例应用程序
  • 若要详细了解 OpenTelemetry 及其社区,请参阅 OpenTelemetry JavaScript GitHub 存储库
  • 若要开启使用体验,请参阅启用 Web 或浏览器用户监视
  • 有关添加和修改 Azure Monitor OpenTelemetry 的详细信息,请参阅添加和修改 Azure Monitor OpenTelemetry
  • 若要查看源代码和额外文档,请参阅 Azure Monitor 发行版 GitHub 存储库
  • 若要查看额外示例和用例,请参阅 Azure Monitor 发行版示例
  • 在 GitHub 上查看发行说明
  • 若要安装 PyPI 包、检查更新或查看发行说明,请参阅 Azure Monitor Distro PyPI 包页面。
  • 若要进一步了解 Azure Monitor Application Insights 和 OpenTelemetry,请参阅 Azure Monitor 示例应用程序
  • 若要详细了解 OpenTelemetry 及其社区,请参阅 OpenTelemetry Python GitHub 存储库
  • 若要查看可用的 OpenTelemetry 检测和组件,请参阅 OpenTelemetry 参与者 Python GitHub 存储库
  • 若要开启使用体验,请参阅启用 Web 或浏览器用户监视
  •