We are using the Prometheus Blackbox Exporter (blackbox_exporter, version 0.19.0) to check HTTP endpoints.
Now we need to implement a check with the fail_if_body_matches_regexp
.
The check should fail when a certain word exists inside the html body.
For that, we created the following http prob configuration:
Module configuration:
prober: http
timeout: 5s
http:
valid_http_versions:
- HTTP/1.1
- HTTP/2
- HTTP/2.0
preferred_ip_protocol: ip4
ip_protocol_fallback: true
fail_if_body_matches_regexp:
- The page is temporarily unavailable
follow_redirects: true
tcp:
ip_protocol_fallback: true
icmp:
ip_protocol_fallback: true
dns:
ip_protocol_fallback: true
Unfortunately, the check does not work as expected. Even though the website contains The page is temporarily unavailable
inside the html body, the check is still successful.
Logs for the probe:
ts=2022-02-17T09:46:31.403831228Z caller=main.go:320 module=http_2xx target=https://site.local level=info msg="Beginning probe" probe=http timeout_seconds=5
ts=2022-02-17T09:46:31.403959629Z caller=http.go:335 module=http_2xx target=https://site.local level=info msg="Resolving target address" ip_protocol=ip4
ts=2022-02-17T09:46:31.500911613Z caller=http.go:335 module=http_2xx target=https://site.local level=info msg="Resolved target address" ip=XXX.XXX.XXX.XXX
ts=2022-02-17T09:46:31.501017313Z caller=client.go:251 module=http_2xx target=https://site.local level=info msg="Making HTTP request" url=https://XXX.XXX.XXX.XXX host=site.local
ts=2022-02-17T09:46:31.614236162Z caller=main.go:130 module=http_2xx target=https://site.local level=info msg="Received HTTP response" status_code=200
Metrics that would have been returned:
# HELP probe_failed_due_to_regex Indicates if probe failed due to regex
# TYPE probe_failed_due_to_regex gauge
probe_failed_due_to_regex 0
To check, if the website is loaded correctly inside Prometheus Blackbox Exporter, I would like to check the html body which is received during the test. Does anyone know if that is possible and might have some further debug tips?