发现:DNS
discovery.dns
从 DNS 记录中发现抓取目标。
用法
discovery.dns "LABEL" {
names = [NAME_1, NAME_2, ...]
}
参数
以下参数被支持
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
names | list(string) | 要查找的 DNS 名称。 | yes | |
port | number | 用于收集指标的端口。对于 SRV 记录不使用。 | 0 | no |
refresh_interval | duration | 查询 DNS 更新的频率。 | "30s" | no |
type | string | 要查询的 DNS 记录类型。必须是 SRV、A、AAAA、MX 或 NS 之一。 | "SRV" | no |
导出字段
以下字段被导出,其他组件可以引用
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 从 docker API 发现的目标集合。 |
每个目标包括以下标签
__meta_dns_name
: 生成发现目标的记录的名称。__meta_dns_srv_record_target
: SRV 记录的目标字段。__meta_dns_srv_record_port
: SRV 记录的端口字段。__meta_dns_mx_record_target
: MX 记录的目标字段。__meta_dns_ns_record_target
: NS 记录的目标字段。
组件健康状态
discovery.dns
只有在给定无效配置时才会报告为不健康。在这种情况下,导出字段会保留它们的最后健康值。
调试信息
discovery.dns
不暴露任何特定于组件的调试信息。
调试度量
discovery.dns
不暴露任何特定于组件的调试度量。
示例
此示例从 A 记录中发现目标。
discovery.dns "dns_lookup" {
names = ["myservice.example.com", "myotherservice.example.com"]
type = "A"
port = 8080
}
prometheus.scrape "demo" {
targets = discovery.dns.dns_lookup.targets
forward_to = [prometheus.remote_write.demo.receiver]
}
prometheus.remote_write "demo" {
endpoint {
url = PROMETHEUS_REMOTE_WRITE_URL
basic_auth {
username = USERNAME
password = PASSWORD
}
}
}
替换以下
PROMETHEUS_REMOTE_WRITE_URL
: 向其发送指标的 Prometheus remote_write 兼容服务器的 URL。USERNAME
: 用于远程_write API 认证的用户名。PASSWORD
: 用于远程_write API 认证的密码。
兼容组件
discovery.dns
的出口可以由以下组件消费
- 消费 目标 的组件
注意
连接某些组件可能没有意义,或者组件可能需要进一步配置才能正确地建立连接。有关更多详细信息,请参阅链接的文档。