使用 OpenTelemetry Collector 来收集应用痕迹
如何结合 Dapr 和 OpenTelemetry Collector 实现跟踪事件的推送
当 OpenTelemetry 项目进入到 GA(General Availability, 正式发布的版本)阶段时,Dapr 将会以 OpenTelemetry 的格式规范导出应用的痕迹信息。 同时,可以使用 Zipkin 要求的格式导出应用痕迹信息。 与 OpenTelemetry Collector 结合一起使用,你可以将应用的痕迹信息发送到许多流行的分布式追踪后端程序中(例如 Azure AppInsights,AWS X-Ray ,StackDriver 等)
必备条件
在 Kubernetes 上安装 Dapr
您已经设置好了分布式追踪后端程序用以接受应用痕迹信息
点击 这里 和 这里 去查看你的分布式追踪程序是否支持 OpenTelemetry Collector。 在这些外链的页面上,找到您要使用的应用痕迹导出工具,并阅读其文档以查找所需的参数。
使用 OpenTelemetry Collector
运行 OpenTelemetry Collector 推送到您的分布式应用跟踪后端程序
签出这个文件 open-telemetry-collector-generic.yaml 并将标记为
<your-exporter-here>
的部分替换成您正在正确使用的追踪导出器的设置。 再次提醒,请参阅前提条件中的关于 OpenTelemetry Collector 的链接以确定您的设置是正确的。使用
kubectl apply -f open-telemetry-collector-generic.yaml
来应用配置。
设置 Dapr 从而将应用痕迹信息发送到 OpenTelemetry Collector
在 Dapr 中启用应用痕迹追踪功能
接下来,设置 Dapr 的配置文件以启用应用分布式追踪并部署一个使用 OpenTelemetry Collector 的应用追踪信息导出组件。
创建具有此内容的 的 collector-config.yaml 文件
使用
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 自动为您的程序负责了分布式跟踪。
备注: 您可以同时注册多个的应用痕迹跟踪导出器,并且跟踪日志转发到所有已注册的导出器中。
部署并运行一些应用程序。 等待应用痕迹信息推送到您的分布式跟踪后端中,并在那里查看它们。