菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow otelcolbreadcrumb arrow otelcol.exporter.datadog
开源

社区

otelcol.exporter.datadog

社区:此组件由 Alloy 用户社区开发、维护和支持。Grafana 不为此组件提供商业支持。要启用和使用社区组件,您必须将 --feature.community-components.enabled 标志 设置为 true

otelcol.exporter.datadog 接受来自其他 otelcol 组件的指标和跟踪遥测数据,并将其发送到 Datadog。

注意

otelcol.exporter.datadog 是对来自 otelcol-contrib 发行版的上游 OpenTelemetry Collector datadog 导出器的封装。错误报告或功能请求将在必要时重定向到上游存储库。

您可以通过为多个 otelcol.exporter.datadog 组件提供不同的标签来指定它们。

用法

alloy
otelcol.exporter.datadog "LABEL" {
    api {
        api_key = "YOUR_API_KEY_HERE"
    }
}

参数

支持以下参数

名称类型描述默认值必需
hostnamestring用于没有主机名识别属性的有效负载的回退主机名。
only_metadatabool是否仅发送元数据。false

如果未设置 hostname,则主机名将自动确定。有关更多信息,请参阅 Datadog 回退主机名逻辑 文档。如果指标或跟踪已经具有主机名识别属性,则此选项不会更改应用于它们的主机名。

otelcol.exporter.datadog 的定义中支持以下块

层次结构描述必需
apiapi配置与 Datadog 的身份验证
tracestraces跟踪导出器特定配置。
logslogs日志导出器特定配置。
metricsmetrics指标导出器特定配置。
metrics > exporterexporter指标导出器特定配置。
metrics > histogramshistograms直方图特定配置。
metrics > sumssums总和特定配置
metrics > summariessummaries摘要特定配置
host_metadatahost_metadata主机元数据特定配置。
clientclient配置用于发送遥测数据的 HTTP 客户端。
retry_on_failureretry_on_failure配置失败请求的重试机制。
queuequeue配置发送前的数据批处理。
debug_metricsdebug_metrics配置此组件生成的用于监视其状态的指标。

> 符号表示更深层次的嵌套。例如,metrics > summaries 指的是在 metrics 块内定义的 summaries 块。

api 块

api 块配置与 Datadog API 的身份验证。这是向 Datadog 发送遥测数据所必需的。如果您不提供 api 块,则无法向 Datadog 发送遥测数据。

支持以下参数

名称类型描述默认值必需
api_keysecretDatadog 的 API 密钥
sitestring要将 Agent 数据发送到的 Datadog 接收站点。"datadoghq.com"
fail_on_invalid_keybool是否在启动时因无效 API 密钥而退出false

traces 块

traces 块配置跟踪导出器设置。

支持以下参数

名称类型描述默认值必需
endpointstring要将跟踪发送到的 Datadog 接收服务器的主机。"https://trace.agent.datadoghq.com"
ignore_resourceslist(string)可以提供正则表达式的阻止列表,以根据其资源名称禁用跟踪。
span_name_remappingsmap(string)Datadog span 操作名称键和首选名称值的映射,用于将这些名称更新为首选名称值。
span_name_as_resource_namebool使用 OpenTelemetry 语义约定进行 span 命名true
compute_stats_by_span_kindbool启用基于 span.kind 的 APM 统计信息计算true
compute_top_level_by_span_kindbool启用基于 span.kind 的顶级 span 识别false
peer_tags_aggregationbool在 Datadog 导出器中启用对等相关标签的聚合false
peer_tagslist(string)超出默认值的补充对等标签列表。
trace_buffernumber指定在丢弃之前要缓冲的传出跟踪有效负载的数量10

如果禁用 compute_stats_by_span_kind,则仅顶级 span 和已测量的 span 将计算统计信息。如果您正在发送 OTel 跟踪并希望获得非顶级 span 的统计信息,则必须将此标志设置为 true。如果您正在发送 OTel 跟踪并且不希望按 span 类型计算统计信息,则必须禁用此标志并禁用 compute_top_level_by_span_kind

如果未设置 endpoint,则该值通过 api 部分中的 site 参数获得。

logs 块

logs 块配置日志导出器设置。

支持以下参数

名称类型描述默认值必需
endpointstring要将日志发送到的 Datadog 接收服务器的主机。"https://http-intake.logs.datadoghq.com"false
use_compressionbool通过 HTTPS 发送日志时可用。如果启用,则压缩日志。true
compression_levelintcompression_level 参数接受从 0(无压缩)到 9(最大压缩但资源使用率更高)的值。仅在将 use_compression 设置为 true 时使用。6
batch_waitint日志代理在发送之前等待填充每个日志批次的最长时间(秒)。5

如果禁用 use_compression,则 compression_level 无效。

如果未设置 endpoint,则该值通过 api 部分中的 site 参数获得。

metrics 块

metrics 块配置指标特定导出器设置。

支持以下参数

名称类型描述默认值必需
delta_ttlnumber将值保留在内存中以计算增量的时间(秒)。3600
endpointstring要将指标发送到的 Datadog 接收服务器的主机。"https://api.datadoghq.com"

语义映射列表中资源属性的任何子集都会转换为 Datadog 约定,并设置为指标标签,无论是否启用 resource_attributes_as_tags

如果未设置 endpoint,则该值通过 api 部分中的 site 参数获得。

exporter 块

exporter 块配置指标导出器设置。

支持以下参数

名称类型描述默认值必需
resource_attributes_as_tagsbool设置为 true 以将指标的资源属性添加到其指标标签。false
instrumentation_scope_metadata_as_tagsbool设置为 true 以添加有关创建指标的检测范围的元数据。false

histograms 块

histograms 块配置直方图设置。

支持以下参数

名称类型描述默认值必需
modestring如何报告直方图。"distributions"
send_aggregation_metricsbool是否将总和、计数、最小值和最大值作为单独的直方图指标报告。false

mode 的有效值包括

  • "distributions":将指标报告为 Datadog 分布(推荐)。
  • "nobuckets":不报告 bucket 指标。
  • "counters":每个直方图 bucket 报告一个指标。

sums 块

sums 块配置总和设置。

支持以下参数

名称类型描述默认值必需
cumulative_monotonic_modestring如何报告累积单调总和。"to_delta"
initial_cumulative_monotonic_valuestring如何报告累积单调总和的初始值。"auto"

cumulative_monotonic_mode 的有效值包括

  • "to_delta":在客户端计算总和的增量,并作为 Datadog 计数报告。
  • "raw_value":将原始值作为 Datadog 仪表报告。

initial_cumulative_monotonic_value 的有效值包括

  • "auto":如果设置了初始值的开始时间戳,并且发生在进程启动之后,则报告初始值。
  • "drop":始终丢弃初始值。
  • "keep":始终报告初始值。

summaries 块

summaries 块配置摘要设置。

支持以下参数

名称类型描述默认值必需
modestring如何报告摘要。"gauges"

mode 的有效值包括

  • "noquantiles":不报告分位数指标。
  • "gauges":每个分位数报告一个仪表指标。

host_metadata 块

host_metadata 块配置主机元数据配置。主机元数据是用于填充基础设施列表和主机地图的信息,并在 Datadog 应用程序中提供主机标签功能。

支持以下参数

名称类型描述默认值必需
enabledbool启用主机元数据功能true
hostname_sourcestring主机元数据的主机名来源。"config_or_system"
tagslist(string)要作为主机元数据一部分发送的主机标签列表。

默认情况下,导出器将仅发送单个主机的元数据,该主机的名称根据 host_metadata::hostname_source 选择。

hostname_source 的有效值包括

  • "first_resource":从到达导出器的第一个 OTLP 有效负载的资源属性中选择主机元数据主机名。如果第一个有效负载缺少类似主机名的属性,它将回退到“config_or_system”行为。如果从多个主机接收数据,请勿使用此主机名来源
  • "config_or_system":从“hostname”设置中选择主机元数据主机名,回退到系统和云提供商 API。

client 块

client 块配置组件使用的 HTTP 客户端。并非所有字段都受 Datadog 导出器支持。

支持以下参数

名称类型描述默认值必需
read_buffer_sizestringHTTP 客户端用于读取服务器响应的读取缓冲区大小。
write_buffer_sizestringHTTP 客户端用于写入请求的写入缓冲区大小。
timeoutduration将请求标记为失败之前等待的时间。"15s"
max_idle_connsint限制客户端可以保持打开状态的空闲 HTTP 连接数。100
max_idle_conns_per_hostint限制主机可以保持打开状态的空闲 HTTP 连接数。5
max_conns_per_hostint限制每个主机的连接总数(拨号、活动和空闲)。
idle_conn_timeoutduration空闲连接自行关闭之前等待的时间。"45s"
disable_keep_alivesbool禁用 HTTP Keep-Alive。
insecure_skip_verifyboolean忽略不安全的服务器 TLS 证书。

retry_on_failure 块

retry_on_failure 块配置如何重试对 Datadog 的失败请求。

支持以下参数

名称类型描述默认值必需
enabledboolean启用重试失败的请求。true
initial_intervalduration重试失败请求之前等待的初始时间。"5s"
max_elapsed_timeduration丢弃失败批次之前等待的最长时间。"5m"
max_intervalduration重试之间等待的最长时间。"30s"
multipliernumber增加重试前等待时间的因子。1.5
randomization_factornumber随机化重试前等待时间的因子。0.5

enabledtrue 时,失败的批次将在给定的时间间隔后重试。initial_interval 参数指定第一次重试尝试之前等待的时间。如果请求继续失败,则重试前等待的时间将按 multiplier 参数指定的因子增加,该因子必须大于 1.0max_interval 参数指定重试之间等待时间上限。

randomization_factor 参数对于在重试 Alloy 实例之间添加抖动非常有用。如果 randomization_factor 大于 0,则重试前等待时间将乘以范围 [ I - randomization_factor * I, I + randomization_factor * I] 中的随机因子,其中 I 是当前间隔。

如果批次尚未成功发送,则在 max_elapsed_time 指定的时间过后将被丢弃。如果 max_elapsed_time 设置为 "0s",则将无限期重试失败的请求,直到成功为止。

queue 块

queue 块配置在将数据发送到 HTTP 服务器之前,批次的内存缓冲区。

支持以下参数

名称类型描述默认值必需
enabledboolean启用在将数据发送到客户端之前,使用内存缓冲区。true
num_consumersnumber并行发送写入队列的批次的读取器数量。10
queue_sizenumber队列中允许同时存在的未写入批次的最大数量。1000

enabledtrue 时,数据首先写入内存缓冲区,然后再发送到配置的服务器。发送到组件的 input 导出字段的批次会添加到缓冲区,只要未发送批次的数量不超过配置的 queue_size

queue_size 确定端点中断的容忍时间。假设每秒 100 个请求,默认队列大小 1000 提供大约 10 秒的中断容忍度。要计算 queue_size 的正确值,请将平均每秒传出请求数乘以容忍中断的时间(秒)。非常高的值可能会导致内存不足 (OOM) 终止。

num_consumers 参数控制有多少读取器从缓冲区读取数据并并行发送数据。num_consumers 的值越大,数据发送速度越快,但会增加网络流量。

debug_metrics 块

debug_metrics 块配置此组件生成的用于监视其状态的指标。

支持以下参数

名称类型描述默认值必需
disable_high_cardinality_metricsboolean是否禁用某些高基数指标。true
levelstring控制包装的收集器发出的指标的详细程度。"detailed"

disable_high_cardinality_metrics 是 Grafana Alloy 等效于 OpenTelemetry Collector 中的 telemetry.disableHighCardinalityMetrics 功能门。它会删除可能导致高基数指标的属性。例如,删除了有关 HTTP 和 gRPC 连接的指标中包含 IP 地址和端口号的属性。

注意

如果已配置,则 disable_high_cardinality_metrics 仅适用于 otelcol.exporter.*otelcol.receiver.* 组件。

level 是 Alloy 等效于 OpenTelemetry Collector 中的 telemetry.metrics.level 功能门。可能的值为 "none""basic""normal""detailed"

导出的字段

导出以下字段,并且可以被其他组件引用

名称类型描述
inputotelcol.Consumer其他组件可用于将遥测数据发送到此组件的值。

input 接受任何遥测信号(指标、日志或跟踪)的 otelcol.Consumer 数据。

组件运行状况

仅当 otelcol.exporter.datadog 配置无效时,才将其报告为不健康。

调试信息

otelcol.exporter.datadog 不会公开任何特定于组件的调试信息。

示例

转发 Prometheus 指标

此示例通过接收器转发来自 Alloy 的 Prometheus 指标,以转换为 Open Telemetry 格式,最后将其发送到 Datadog。如果您正在使用美国 Datadog API,则导出器需要 api 字段才能运行。

alloy
prometheus.exporter.self "default" {
}

prometheus.scrape "metamonitoring" {
  targets    = prometheus.exporter.self.default.targets
  forward_to = [otelcol.receiver.prometheus.default.receiver]
}

otelcol.receiver.prometheus "default" {
  output {
    metrics = [otelcol.exporter.datadog.default.input]
  }
}


otelcol.exporter.datadog "default" {
    api {
        api_key = "API_KEY"
    }

     metrics {
        endpoint = "https://api.ap1.datadoghq.com"
        resource_attributes_as_tags = true
    }
}

完整 OTel 管道

此示例将以 Datadog 格式接收的指标和跟踪转发到 Alloy,将其转换为 OTel 格式,然后将其导出到 Datadog。

alloy
otelcol.receiver.datadog "default" {
	output {
		metrics = [otelcol.exporter.otlp.default.input, otelcol.exporter.datadog.default input]
		traces  = [otelcol.exporter.otlp.default.input, otelcol.exporter.datadog.default.input]
	}
}

otelcol.exporter.otlp "default" {
	client {
		endpoint = "database:4317"
	}
}

otelcol.exporter.datadog "default" {
	client {
		timeout = "10s"
	}

	api {
		api_key             = "abc"
		fail_on_invalid_key = true
	}

	traces {
		endpoint             = "https://trace.agent.datadoghq.com"
		ignore_resources     = ["(GET|POST) /healthcheck"]
		span_name_remappings = {
			"instrumentation:express.server" = "express",
		}
	}

	metrics {
		delta_ttl = 1200
		endpoint  = "https://api.datadoghq.com"

		exporter {
			resource_attributes_as_tags = true
		}

		histograms {
			mode = "counters"
		}

		sums {
			initial_cumulative_monotonic_value = "keep"
		}

		summaries {
			mode = "noquantiles"
		}
	}
}

兼容组件

otelcol.exporter.datadog 具有可以被以下组件使用的导出项

  • 使用 OpenTelemetry otelcol.Consumer 的组件

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。