Herakles

Linux Monitoring that stays fast at scale

High-performance Prometheus exporter with extended system and process metrics.

Default port: 9215
πŸ¦€ Built with Rust β†’ Quickstart

Extended System & Process Metrics

Metrics

  • CPU usage
  • Memory (RSS, PSS, USS)
  • Filesystem
  • Network
  • Process-level insights
  • Group and subgroup classification
  • Top-N process analysis

eBPF (Optional)

  • Per-process IO tracking
  • TCP state tracking
  • Kernel-level visibility
  • Requires: root, or CAP_BPF + CAP_PERFMON

Production Installation

Recommended Installation:

sudo herakles-node-exporter install

Creates: systemd service, proper directory structure, root execution context

Verify:

systemctl status herakles-node-exporter curl http://localhost:9215/metrics

Why Herakles? – Concepts & Diagnostic Endpoints

Traditional exporters force you to choose: either expose millions of raw metrics (Prometheus suffers) β€” or report coarse aggregates with no real insight. Herakles solves this with intelligent classification: Groups (db, java, web…) + Subgroups (postgres, redis…) = meaningful aggregates + Top-N analysis + leak detection β€” at minimal cardinality.

Groups & Subgroups – Meaningful Process Grouping

Herakles classifies processes into configurable groups and subgroups. For example, all database processes can be assigned to one group, with their CPU, memory, and IO usage monitored in aggregate – without individual process PIDs appearing as labels in your metrics. This keeps cardinality low and Prometheus fast.

Loaded groups and their process assignments are always visible via /subgroups and /details – deliberately kept outside of /metrics to avoid creating high-cardinality time series.

Endpoints – Find Issues Fast, Directly via curl

All diagnostic endpoints are accessible from the command line:

Endpoint Purpose Format
GET /metrics Prometheus scrape endpoint with all metrics Text (Prometheus)
GET /health Exporter status – is it running, is it ready? Shows internal counters and scrape statistics Text / JSON
GET /config The live configuration – which groups, thresholds, and settings are currently loaded HTML
GET /subgroups The loaded subgroups – which processes are assigned to which group HTML
GET /doc Quick help: documentation of all metrics and configuration options in plain text – readable directly in the terminal Plain text
GET /details Runtime details: process assignments, internal counters, transient states – deliberately not in /metrics to avoid high cardinality HTML

curl Commands for Diagnostics

# Check exporter status curl http://localhost:9215/health # View live configuration curl http://localhost:9215/config # View loaded subgroups curl http://localhost:9215/subgroups # Quick help – metrics and options curl http://localhost:9215/doc # Runtime details (groups, process assignments) curl http://localhost:9215/details # All Prometheus metrics curl http://localhost:9215/metrics

/health, /config, /subgroups, and /details are HTML pages also accessible directly in a browser. /doc delivers documentation as plain text – ideal for quick terminal help with curl … | less. This dual interface (metrics + HTML endpoints) makes Herakles suitable for automated monitoring, debugging, configuration verification, and production audits.

Prometheus Integration

scrape_configs: - job_name: herakles static_configs: - targets: ["your-host:9215"]

Commercial Support

Monitoring Environment Audit (Fixed Price)

Independent technical review of your complete monitoring stack. Fixed price, no hidden costs, vendor-neutral.

Deployment & Performance Optimization

Installation, scaling, production hardening, cardinality tuning, performance troubleshooting.

Custom eBPF Development

Custom metrics, tailored tracing, specialized IO or network tracking, production-safe implementations.

Monitoring Architecture Consulting

Monitoring redesign, high-scale environments, multi-datacenter setups, VictoriaMetrics integration, alert strategy refinement, cost-performance balance.

β†’ View all support services