Search code examples
prometheusprometheus-blackbox-exporter

Prometheus blackbox exporter citing several modules per job


What is the semantics of a job for a Prometheus blackbox exporter that cites more than one module under params.module?

I guess it means that all modules are tried and the probe only succeeds if all of them succeed. All the examples I have come across employ only single modules (typically module: [http_2xx]), and I have not configured an example nor looked it up in the source code so far. Maybe someone here knows already/definitely from direct experience.


Solution

  • Based on the blackbox_exporter source code it would seem that every probe only ever executes a single test / module. Either you provide the module name in the request (as suggested by the documentation) or else it defaults to http_2xx.

    The only way you could execute multiple modules would appear to be to define a separate Prometheus job, with a different module parameter value.

    The only reason Prometheus' params is an array rather than a single value is that it's not limited to blackbox_exporter, it's a general way of sending HTTP parameters to a target (e.g. one might use something like /metrics?module=foo&module=bar to instruct the target to only return metrics for modules foo and bar).

    I just tested from the browser and what happens if you query blackbox_exporter with multiple module parameter values, is that blackbox_exporter will ignore everything but the first value.