对于在job
下引用多个模块的Prometheus黑盒导出器,params.module
的语义是什么?
我猜这意味着将尝试所有模块,并且只有在所有模块都成功的情况下,探测才会成功。我遇到的所有示例都仅使用单个模块(通常为module: [http_2xx]
),并且到目前为止,我还没有配置示例,也没有在源代码中查找它。也许这里的某人已经/肯定地从直接经验中了解了。
答案 0 :(得分:1)
基于blackbox_exporter
源代码,似乎每个探针都只能执行一个测试/模块。您可以在请求中提供模块名称(文档中称为suggested),否则默认为http_2xx
。
执行多个模块的唯一方法似乎是使用不同的module
参数值定义一个单独的Prometheus作业。
Prometheus的params
是数组而不是单个值的唯一原因是它不限于blackbox_exporter
,这是将HTTP参数发送到目标的一种通用方法(例如,可能使用某些东西例如/metrics?module=foo&module=bar
,指示目标对象仅返回模块foo
和bar
的指标。
我刚刚从浏览器进行了测试,如果您使用多个blackbox_exporter
参数值查询module
会发生什么,就是blackbox_exporter
将忽略除第一个值以外的所有内容。