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
: 使用reqwest
HTTP 客户端发送跨度。
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