Prometheus:基于通配符 dns 的发现

Prometheus: wildcard dns - based discovery

prometheusdocumentation中,有一个使用dns进行服务发现的示例,其中应将以下代码片段添加到配置文件中:

scrape_configs:
- job_name: 'myjob'

  dns_sd_configs:
  - names:
    - 'telemetry.eu-west.api.srv.example.org'
    - 'telemetry.us-west.api.srv.example.org'
    - 'telemetry.eu-west.auth.srv.example.org'
    - 'telemetry.us-east.auth.srv.example.org'

我的问题是是否可以应用基于通配符的模式,例如:

scrape_configs:
- job_name: 'myjob'

  dns_sd_configs:
  - names:
    - '*.eu-west.api.srv.example.org'

如果不是,是否使用 A 记录解析所有需要抓取的 IP 地址(即由 prometheus 监控)?

这是不可能的,因为通配符不是 DNS 网络协议的一部分。 ($GENERATE 是 Bind 之类的内部模板功能,不会出现在网络上)。

If not, is the usage of an A record that resolves to all the IP addresses that need to be scraped (i.e. monitored by prometheus) the way around this?

是的,这是一种方式,不过您只能在那时获得 IP 地址。如果您需要更多的元数据,最好使用不同的 SD。