菜单
开源软件

发现:DNS

discovery.dns 从 DNS 记录中发现抓取目标。

用法

alloy
discovery.dns "LABEL" {
  names = [NAME_1, NAME_2, ...]
}

参数

以下参数被支持

名称类型描述默认值必需
nameslist(string)要查找的 DNS 名称。yes
portnumber用于收集指标的端口。对于 SRV 记录不使用。0no
refresh_intervalduration查询 DNS 更新的频率。"30s"no
typestring要查询的 DNS 记录类型。必须是 SRV、A、AAAA、MX 或 NS 之一。"SRV"no

导出字段

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

名称类型描述
targetslist(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 记录中发现目标。

alloy
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 的出口可以由以下组件消费

注意

连接某些组件可能没有意义,或者组件可能需要进一步配置才能正确地建立连接。有关更多详细信息,请参阅链接的文档。