使用 OpenTelemetry Collector 来收集应用痕迹

如何结合 Dapr 和 OpenTelemetry Collector 实现跟踪事件的推送

当 OpenTelemetry 项目进入到 GA(General Availability, 正式发布的版本)阶段时,Dapr 将会以 OpenTelemetry 的格式规范导出应用的痕迹信息。 同时,可以使用 Zipkin 要求的格式导出应用痕迹信息。 与 OpenTelemetry Collector 结合一起使用,你可以将应用的痕迹信息发送到许多流行的分布式追踪后端程序中(例如 Azure AppInsights,AWS X-Ray ,StackDriver 等)

使用 OpenTelemetry 收集器与别的后端进行集成

必备条件

  1. 在 Kubernetes 上安装 Dapr

  2. 您已经设置好了分布式追踪后端程序用以接受应用痕迹信息

  3. 点击 这里这里 去查看你的分布式追踪程序是否支持 OpenTelemetry Collector。 在这些外链的页面上,找到您要使用的应用痕迹导出工具,并阅读其文档以查找所需的参数。

使用 OpenTelemetry Collector

运行 OpenTelemetry Collector 推送到您的分布式应用跟踪后端程序

  1. 签出这个文件 open-telemetry-collector-generic.yaml 并将标记为 <your-exporter-here> 的部分替换成您正在正确使用的追踪导出器的设置。 再次提醒,请参阅前提条件中的关于 OpenTelemetry Collector 的链接以确定您的设置是正确的。

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

设置 Dapr 从而将应用痕迹信息发送到 OpenTelemetry Collector

在 Dapr 中启用应用痕迹追踪功能

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

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

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

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

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

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. ...
  5. spec:
  6. ...
  7. template:
  8. metadata:
  9. ...
  10. annotations:
  11. dapr.io/enabled: "true"
  12. dapr.io/app-id: "MyApp"
  13. dapr.io/app-port: "8080"
  14. dapr.io/config: "appconfig"

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

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

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

部署并运行一些应用程序。 等待应用痕迹信息推送到您的分布式跟踪后端中,并在那里查看它们。

相关链接