使用 OpenTelemetry Collector 来收集追踪信息,发送至 AppInsights

如何使用 OpenTelemetry Collector 将追踪事件推送到 Azure Application Insights。

Dapr 使用 Zipkin API 与OpenTelemetry Collector 进行集成。 本指南通过一个示例,使用 Dapr 通过 OpenTelemetry Collector 将跟踪事件推送到 Azure Application Insights。

必备条件

在 Kubernetes 上安装 Dapr

如何配置分布式跟踪与 Application Insights

设置 Application Insights

  1. 首先,您需要一个 Azure 帐户。 请参阅 此处 申请 免费 Azure 帐户的说明。
  2. 请按照 此处 的说明创建新的 Application Insights 资源。
  3. 从 Application Insights 页面获取 Application Insights Intrumentation key。

运行 OpenTelemetry Collector 来推送到您的 Application Insights 实例

安装 OpenTelemetry Collector 到您的 Kubernetes 集群,将事件推送到 Application Insights 实例中

  1. 查看 open-telemetry-collector-appinsights.yaml文件 ,用您的 Application Insights Instrumentation key替换 <INSTRUMENTATION-KEY> 占位符。

  2. 使用 kubectl apply -f open-telemetry-collector-appinsights.yaml 来应用配置。

接下来,设置 Dapr 的配置文件以启用应用分布式追踪并部署一个使用 OpenTelemetry Collector 的应用追踪信息导出组件。

  1. 创建具有此内容的 的 collector-config.yaml 文件

  2. 使用 kubectl apply -f collector-config.yaml来应用配置

部署你的应用,并启用应用跟踪功能

在 Kubernetes 模式下运行时,通过将 dapr.io/config 注解添加到要参与分布式跟踪的容器中,从而来应用 appconfig 配置,示例配置如下所示

apiVersion: apps/v1
kind: Deployment
metadata:
  ...
spec:
  ...
  template:
    metadata:
      ...
      annotations:
        dapr.io/enabled: "true"
        dapr.io/app-id: "MyApp"
        dapr.io/app-port: "8080"
        dapr.io/config: "appconfig"

一些快速入门案例,例如分布式计算器已经配置了这些设置,因此,如果您在使用这些时,则不需要进行其他的设置

就这么简单! 没有必要包含任何的 SDK 或分析您的应用程序代码来确定是否能够支持。 Dapr 自动为您的程序负责了分布式跟踪。

备注: 您可以同时注册多个的应用痕迹跟踪导出器,并且跟踪日志转发到所有已注册的导出器中。

部署并运行一些应用程序。 几分钟后,您应该看到在 Application Insights 资源中出现追踪日志。 您也可以使用 Application Map 来检查您服务的拓扑,如下所示:

Application map

:只有通过 Dapr sidecar 暴露的 Dapr API 操作(如服务调用或事件发布)才会显示在 Application Map 拓扑中。

相关链接