SYSTEM Cited by 1 source
Prometheus Blackbox Exporter¶
The Prometheus Blackbox Exporter (BBE) —
github.com/prometheus/blackbox_exporter
— is the official Prometheus-ecosystem prober for black-box
(request-shaped, from-outside) monitoring of network endpoints. It
exposes a /probe HTTP endpoint that accepts a target URL and a
module name (pre-configured probe type) and returns Prometheus
metrics describing the probe outcome: success boolean, phase
timings, TLS certificate expiry, response body match, and
protocol-specific fields.
It is the canonical synthetic-monitoring component in a Prometheus-native observability stack, pairing with Prometheus's scrape model: Prometheus scrapes BBE instances with a target URL as a scrape parameter, and BBE performs the actual outbound probe and returns metrics.
Modules (probe types)¶
- http — HTTP/1.1 and HTTP/2 over TCP. Configurable method, headers, expected status codes, body-regex match, TLS options.
- tcp — raw TCP connect + optional line-oriented query/response.
- icmp — ICMP echo (ping).
- dns — DNS resolution with expected answer matching.
- http3 — HTTP/3 over QUIC/UDP. Added in the contribution
described in the 2026-03-31 Slack ingest (Source:
sources/2026-03-31-slack-from-custom-to-open-scalable-network-probing-and-http3-readiness).
See
CONFIGURATION.mdL196–L200` at the pinned ref.
Why it shows up on this wiki¶
BBE is the canonical substrate for client-side black-box probing in Prometheus-native stacks. It is the piece that notices "is the edge answering correctly from outside?" — distinct from in-process metric emission.
The 2026-03-31 Slack ingest canonicalises BBE as the anchor for an instructive architectural failure mode: existing BBE modules were TCP-shaped, so when HTTP/3 rolled out on the edge (QUIC over UDP), BBE had no way to probe the new transport. This is the concepts/http-3-probing-gap — the first-order observability hole that blocks safe HTTP/3 rollout.
Slack's intern Sebastian Feliciano closed the gap by open-sourcing HTTP/3 support into BBE upstream, using systems/quic-go as the underlying QUIC client:
http3Transport := &http3.Transport{
TLSClientConfig: tlsConfig,
QUICConfig: &quic.Config{},
}
client = &http.Client{Transport: http3Transport}
The architectural discipline the article highlights: "had to add this new logic while following the Blackbox Exporter's existing architecture, ensuring the new features maintained the tool's configuration patterns" — composability-with-existing-shape is the upstream-merge-predictor in mature OSS projects.
Operational shape¶
- Stateless prober. BBE holds no state across scrapes; each probe is a fresh request.
- Run many instances, scrape all of them. Typical deployment is N BBE replicas across regions / POPs, each scraped by Prometheus with the target URL as a scrape param — per-POP-view of endpoint health.
- Metric shape.
probe_success,probe_duration_seconds,probe_http_status_code,probe_http_duration_seconds{phase="…"},probe_ssl_earliest_cert_expiry, etc. — thephaselabel on HTTP probes surfaces DNS-lookup / connect / TLS / processing / transfer timings independently.
Seen in¶
- sources/2026-03-31-slack-from-custom-to-open-scalable-network-probing-and-http3-readiness — "a cornerstone of our monitoring" at Slack; did not have native QUIC support pre-Sebastian; is where the HTTP/3 probing gap was closed via upstream contribution + parallel in-house integration.
Stub¶
This page canonicalises BBE as a wiki system. Expand with deployment-topology patterns, large-fleet operational retrospectives, and the BBE-vs-commercial-synthetic-monitoring trade-off as future ingests provide them.
Related¶
- systems/prometheus — the TSDB + scrape engine BBE feeds.
- systems/quic-go — the QUIC library underpinning BBE's
post-Sebastian
http3module. - systems/grafana — where BBE metrics are dashboarded.
- concepts/client-side-black-box-probe — the concept BBE implements.
- concepts/http-3-probing-gap — the failure class BBE's
http3module resolves. - concepts/http-3 — the protocol being probed.
- patterns/upstream-fixes-to-community — Slack's BBE HTTP/3 contribution as the whole-new-feature altitude instance.
- patterns/upstream-contribution-parallel-to-in-house-integration — the shape Slack used to ship HTTP/3 probing before upstream merge.
- companies/slack — the adopter who filed the upstream PR.