# \`nf-prometheus\`: self-hosted Prometheus/Grafana metrics for Nextflow on HPC clusters

**URL:** <https://community.seqera.io/t/nf-prometheus-self-hosted-prometheus-grafana-metrics-for-nextflow-on-hpc-clusters/2748>\
**Category:** Show & Tell\
**Tags:** nextflow\
**Created:** [August 21, 2026, 9:49am UTC](https://community.seqera.io/t/nf-prometheus-self-hosted-prometheus-grafana-metrics-for-nextflow-on-hpc-clusters/2748 "2026-08-21T09:49:51Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![mcallisto](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/mcallisto/32/2553_2.png) [@mcallisto](https://community.seqera.io/u/mcallisto)\
**Post date:** [August 21, 2026, 9:49am UTC](https://community.seqera.io/t/nf-prometheus-self-hosted-prometheus-grafana-metrics-for-nextflow-on-hpc-clusters/2748/1 "2026-08-21T09:49:51Z")

</div>

Hi all — I’ve just released the first version of **nf-prometheus** , an open-source plugin that exports workflow and task metrics to Prometheus, built specifically for on-premise HPC clusters.

The itch it scratches: on a shared Slurm cluster I couldn’t answer basic questions while a run was going — _how long are my tasks queued, per process? which process over-requests memory? is the run stuck or slow?_ — without tailing logs and running `squeue` in a loop. And the head job usually runs on a compute node your Prometheus server can’t reach, so a classic scrape endpoint doesn’t help.

So the plugin is **textfile-first** : it writes an atomically-updated `.prom` file for the node\_exporter textfile collector on a shared filesystem — zero network requirements from the head job, works on air-gapped clusters. A Pushgateway mode gives you live updates during the run, and a plain HTTP `/metrics` endpoint exists for when the head node _is_ reachable. A ready-to-import Grafana dashboard ships with it (screenshot below): per-process scheduler queue wait, requested vs used CPUs and peak RSS, task states, run history.

 ![nf-prometheus-dashboard](https://europe1.discourse-cdn.com/flex013/uploads/seqera/original/2X/6/6bc1d5d53c78d83ffea1047b336a6acb8a854816.png)

- Registry: `plugins { id 'nf-prometheus' }` — [Nextflow Registry | nf-prometheus@0.1.0](https://registry.nextflow.io/plugins/nf-prometheus)
- Source (Apache 2.0): [GitHub - mcallisto/nf-prometheus: Prometheus metrics for Nextflow on HPC clusters: queue wait, resource usage, run status. Grafana dashboard included. · GitHub](https://github.com/mcallisto/nf-prometheus)
- 5-minute setup: [https://github.com/mcallisto/nf-prometheus/docs/5-minute-setup.md](https://github.com/mcallisto/nf-prometheus/docs/5-minute-setup.md)
- Background & war stories from the test cluster: [Where did my task go? Monitoring Nextflow on Slurm without Tower · Callisto Labs](https://www.callistolabs.eu/blog/monitoring-nextflow-on-slurm-without-tower/)

Zero dependencies beyond the JDK, TraceObserverV2 API, min Nextflow 25.10. Metric export can never fail your pipeline.

If you run Nextflow on Slurm/PBS/LSF on-premise I’d genuinely like to hear whether this fits your setup — issues and feature requests very welcome, especially about metrics you’re missing.
