finds.dev← search

// the find

ncabatoff/process-exporter

★ 2,155 · Go · MIT · updated Apr 2025

Prometheus exporter that mines /proc to report on selected processes

A Prometheus exporter that scrapes /proc to produce per-process-group metrics (CPU, memory, I/O, fds, thread states) without requiring the target application to expose any instrumentation itself. Aimed at ops/SRE folks who need visibility into processes they don't control or can't easily instrument, like third-party binaries or legacy services.

The grouping model (comm/exe/cmdline matchers with named capture groups feeding Go templates) is genuinely flexible and solves the real problem of naming ephemeral or multi-instance processes without blowing up cardinality. worst_fd_ratio is a smart derived metric — it catches an fd-starved process in a group that sum-based math would hide. It ships static binaries via GoReleaser plus a Dockerfile, and TLS/basic-auth is handled via the standard exporter-toolkit web-config rather than a bespoke implementation.

Needs -privileged and a bind-mount of /proc to run in Docker, which is a rough requirement for anyone running hardened containers. read_bytes_total/write_bytes_total are explicitly caveated as unreliable by the author, and /proc/[pid]/io permissions mean you often need root just to get non-zero I/O numbers. -recheck being off by default is a real footgun: processes that rename themselves after start (common with pooled workers) can get stuck in the wrong group until restarted, and the workaround (-recheck-with-time-limit) isn't well documented in the README. No native support for relabeling/filtering at scrape time — all grouping logic has to be encoded upfront in the YAML matchers.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →