Carbonizer¶
The PowerDNS Platform Filter Carbonizer (pdns-carbonizer) scrapes
Prometheus /metrics endpoints from other services, converts each sample
to a dotted Carbon path, and forwards the result to one or more
Graphite-compatible servers over the Carbon line protocol.
It exists so the services on a deployed box can stay Prometheus-native while a Graphite-based monitoring system on the other end keeps working. Adding, removing, or re-routing metric flows is then a Carbonizer config change rather than a change to every service.
What it does¶
- Scrapes Prometheus endpoints on the configured
scrape_interval, following the samescrape_configsshape as Prometheus (a strict subset of options). - Converts every successful scrape into Carbon lines using a per-job template that maps Prometheus labels onto a dotted path.
- Forwards the converted lines to every destination listed in
carbonizer.destinationsover TCP. - Exposes a status page at
/and Prometheus metrics about its own behaviour at/metrics. - Records scrapes to disk (optionally) so that real traffic can be replayed later — for backfills, demos, or capacity tests.
- Streams scrapes live to debugging clients over TCP and over an
HTTP
/tapendpoint.
It runs alongside Prometheus or entirely without it. It does not need a Prometheus server to function.
Companion tools¶
The pdns-carbonizer-record subpackage ships two extra binaries:
pdns-carbonizer-record— reuses the Carbonizer config to scrape targets, but writes the raw scrapes to a single recording file (or stdout) instead of forwarding them as Carbon.pdns-carbonizer-load— replays a recording into a PostgreSQL Prometheus storage backend, or converts it to a Prometheus text metrics file with rewrittenjob/instancelabels and original timestamps.
Together they let you capture a window of real metric traffic and replay it elsewhere.
Who this documentation is for¶
This site is for operators diving into a running deployment — the service has already been installed by Ansible (or equivalent tooling) and you need to understand how it behaves and what each YAML knob does. There is no installation walkthrough here.
Next steps¶
- Architecture: the scrape pipeline, the internal hub that fans scrapes out to senders and debug surfaces, the template language, and the on-disk recording format.
- Configuration: full YAML reference, one section at a time.
- Operations: systemd, CLI flags, HTTP endpoints, and the recorder / loader companion tools.
- Metrics: the Prometheus metrics the Carbonizer exposes about itself, organised around the questions operators ask.