接收来自 Datadog 仪表化应用的追踪和指标
您可以配置 Alloy 来收集 Datadog 追踪和指标,并将它们转发到任何兼容 OpenTelemetry 的数据库。
本主题介绍如何
- 配置 Alloy 发送追踪和指标。
- 配置 Alloy Datadog Receiver。
- 配置 Datadog Agent 将追踪和指标转发到 Alloy Datadog Receiver。
开始之前
- 确保至少有一个 Datadog Agent 实例正在收集指标和追踪。
- 确定将收集到的遥测数据写入何处。指标可以写入 Prometheus 或任何其他兼容 OpenTelemetry 的数据库,例如 Grafana Mimir、Grafana Cloud 或 Grafana Enterprise Metrics。追踪可以写入 Grafana Tempo、Grafana Cloud 或 Grafana Enterprise Traces。
- 熟悉 Alloy 中的 组件 概念。
配置 Alloy 发送追踪和指标
在组件能够收集 Datadog 遥测信号之前,您必须有一个负责将此遥测数据写入某个位置的组件。
otelcol.exporter.otlp 组件负责将 OTLP 数据传递到兼容 OpenTelemetry 的端点。
将以下
otelcol.exporter.otlp
组件添加到您的配置文件中。otelcol.exporter.otlp "default" { client { endpoint = "<OTLP_ENDPOINT_URL>" auth = otelcol.auth.basic.auth.handler } }
替换以下内容
<OTLP_ENDPOINT_URL>
: 发送指标和追踪的兼容 OpenTelemetry 端点的完整 URL,例如https://otlp-gateway-prod-eu-west-2.grafana.net/otlp
。
如果您的端点需要基本认证,请将以下内容粘贴到
endpoint
块内。basic_auth { username = "<USERNAME>" password = "<PASSWORD>" }
替换以下内容
<USERNAME>
: 基本认证用户名。<PASSWORD>
: 基本认证密码或 API 密钥。
配置 Alloy Datadog Receiver
将以下
otelcol.processor.batch
组件添加到您的配置文件中。otelcol.processor.batch "default" { output { metrics = [otelcol.exporter.otlp.default.input] traces = [otelcol.exporter.otlp.default.input] } }
将以下
otelcol.processor.deltatocumulative
组件添加到您的配置文件中。otelcol.processor.deltatocumulative "default" { max_stale = "<MAX_STALE>" max_streams = <MAX_STREAMS> output { metrics = [otelcol.processor.batch.default.input] } }
替换以下内容
<MAX_STALE>
: 多久未接收到新样本的序列会被移除,例如 “5m”。<MAX_STREAMS>
: 跟踪的流的上限。超出此上限的新流将被丢弃。
将以下
otelcol.receiver.datadog
组件添加到您的配置文件中。otelcol.receiver.datadog "default" { endpoint = "<HOST>:<PORT>" output { metrics = [otelcol.processor.deltatocumulative.default.input] traces = [otelcol.processor.batch.default.input] } }
替换以下内容
<HOST>
: 接收器监听的主机地址。<PORT>
: 接收器监听的端口。
如果您的端点需要基本认证,请将以下内容粘贴到
endpoint
块内。basic_auth { username = "<USERNAME>" password = "<PASSWORD>" }
替换以下内容
<USERNAME>
: 基本认证用户名。<PASSWORD>
: 基本认证密码或 API 密钥。
配置 Datadog Agent 将遥测数据转发到 Alloy Datadog Receiver
您可以设置 Datadog Agent 将 Datadog 指标和追踪同时转发到 Alloy 和 Datadog。
对于希望尝试使用 Alloy 的现有 Datadog 用户,我们推荐此方法。
将以下环境变量添加到您的 Datadog Agent 安装中。
DD_ADDITIONAL_ENDPOINTS='{"http://<DATADOG_RECEIVER_HOST>:<DATADOG_RECEIVER_PORT>": ["datadog-receiver"]}' DD_APM_ADDITIONAL_ENDPOINTS='{"http://<DATADOG_RECEIVER_HOST>:<DATADOG_RECEIVER_PORT>": ["datadog-receiver"]}'
DD_ADDITIONAL_ENDPOINTS
用于转发指标,而DD_APM_ADDITIONAL_ENDPOINTS
用于转发追踪。替换以下内容
<DATADOG_RECEIVER_HOST>
: 找到 Alloy 接收器的主机名。<DATADOG_RECEIVER_PORT>
: Alloy 接收器暴露的端口。
或者,您可能只想让 Datadog Agent 将指标发送到 Alloy。您可以通过以下方式设置您的 Datadog Agent:
替换配置 YAML 中的 DD_URL
dd_url: http://<DATADOG_RECEIVER_HOST>:<DATADOG_RECEIVER_PORT>
或者通过设置环境变量
DD_DD_URL='{"http://<DATADOG_RECEIVER_HOST>:<DATADOG_RECEIVER_PORT>": ["datadog-receiver"]}'
运行 Alloy
otelcol.receiver.datadog
组件是实验性的。要使用此组件,您需要在启动 Alloy 时带上额外的命令行标志
alloy run config.alloy --stability.level=experimental