Hi everyone,
I’d like to share a new exporter I’ve been working on: the Synthetic Exporter.
While blackbox_exporter is a great fit for HTTP and network-level probing, I ran into a gap when I needed to monitor multi-step UI flows that depend on DOM rendering and JavaScript.
Instead of setting up separate browser automation infrastructure or writing custom scripts that expose their own metrics, I built a standalone exporter in Go using Playwright. It’s intended as a complementary tool for this specific use case.
Key design choices:
Declarative: UI journeys (goto, fill, click, wait_for_selector) are defined in a simple YAML config.
Safe scraping: Browser scenarios run through background workers, decoupling Playwright execution from the /metrics scrape path and avoiding scrape timeouts.
All-in-one: Also supports basic HTTP status checks and SSL certificate expiration monitoring, keeping related checks in a single configuration.
Repository: https://github.com/aizik-fridman/synthetic-exporter
Docs PR: https://github.com/prometheus/docs/pull/3061
Grafana Dashboard: 25651
I built this to solve a specific operational gap in my environment. I’ve also opened a PR to add it to the external exporters list, and would appreciate it if a maintainer could take a look when time permits.
Thanks,
Aizik