12 个版本 (破坏性)
| 1.0.0 |
|
|---|---|
| 0.11.0 | 2023年3月14日 |
| 0.10.0 | 2023年3月9日 |
| 0.9.0 | 2022年11月22日 |
| 0.4.1 | 2022年7月20日 |
#388 in 性能分析
每月下载量 2,082
39KB
714 行代码(不含注释)

OpenTelemetry Datadog Cloudflare
概述
此 crate 提供了额外的传播器和导出器,用于直接将遥测数据发送到 Datadog,而不需要通过 Datadog-agent。
特性
opentelemetry-datadog-cloudflare 支持以下特性
reqwest-client: 使用reqwestHTTP 客户端发送跨度。
lib.rs:
OpenTelemetry Datadog 导出器(用于 Cloudflare)
为 Cloudflare 实现的 OpenTelemetry datadog 导出器
问题
目前 Datadog 和 OpenTelemetry 之间存在一些不兼容性,这在该导出器中表现为一些小的怪异行为。
首先,Datadog 使用 operation_name 来描述 OpenTracing 会称为组件的内容。或者换句话说,在 OpenTracing 中,操作/跨度名称相对细粒度,可能会用于识别特定的端点。在 Datadog 中,然而,它们更少粒度 - 在 Datadog 中,预期一个服务将有一个单一的、主要的跨度名称,它是该服务内所有跟踪的根,还有一个称为 resource_name 的附加元数据提供粒度。请参阅 此处
Datadog Golang API采用了一种使用resource.name OpenTelemetry属性来设置resource_name的方法。请参阅此处
不幸的是,这与其他期望更细粒度操作名称的OpenTelemetry导出器不兼容,这符合OpenTracing规范。
因此,此导出器采用不同的方法,使用跟踪提供者的名称来命名跨度,并使用跨度名称来设置resource_name。这通常会导致用户期望的行为。
Datadog还有一个会改变Web UI中跨度渲染的span_type字符串。这可以设置为span.type OpenTelemetry跨度属性。
标准值请参阅此处
携带自己的http客户端
用户可以选择合适的http客户端来与其运行时相匹配。
根据启用的功能。可用的唯一客户端是reqwest,请随意实现其他http客户端。
请注意,异步http客户端可能需要特定的运行时,否则会引发panic。用户应确保http客户端在适当的运行时中运行。
用户可以通过实现HttpClient特质始终使用自己的http客户端。
依赖项
~5–22MB
~294K SLoC