Skip to content

Prometheus

Status: available · package wg-flow-plugin-prometheus · provider prometheus · category monitoring.

The plugin reads the Prometheus HTTP API (/api/v1/targets) and turns scrape targets into inventory resources. It does not ingest metrics: WaveGrid gets identity and labels, not timeseries.

Install

bash
docker compose exec agent wg-flow-agent plugin install prometheus
# or
wg-flow-agent plugin install prometheus

Then the local UIPlugins → prometheus, or YAML.

What lands in inventory

Each active target becomes a resource. Type is inferred from job/labels (hostname, port, exporter name):

Typical targetresource_typeExample provider_resource_id
node_exporter / hostserverhost:{ipv4} or node:{hostname}
postgres / mysql / redisdatabasefrom job/instance labels
nginx / haproxy / traefikload_balancerscrape URL / instance
blackbox / FQDN probedomainhostname
other processes / VMsinstanceinstance label

Several targets on one IP collapse in the agent into one server (host:{ip}) when IPv4 is present. domain subdomains are grouped by apex in the console.

provider is always prometheus. Several Prometheus servers = different provider_account.

YAML

yaml
plugins:
  prometheus:
    enabled: true
    sources:
      - id: prod
        provider_account: "prom-prod"
        sync_interval_seconds: 300
        url: "https://prometheus.example.com"
        auth_type: bearer
        token: "…"
        verify_tls: true

Source fields

FieldRequiredDescription
idyesKey in logs (prometheus/prod)
provider_accountyesAccount label in inventory
urlyesPrometheus base without /api/v1
auth_typenonone, bearer, basic
tokenif bearerBearer token
username / passwordif basicHTTP Basic
verify_tlsnoHTTPS certificate check
sync_interval_secondsnoMinimum 300

The agent calls {url}/api/v1/targets. If Prometheus sits behind a reverse-proxy prefix, include that prefix in url.

Check

bash
wg-flow-agent status
wg-flow-agent dry-run

JSON should contain provider: prometheus. In the console, filter provider Prometheus. Domains: Domains tab (apex groups).

Common errors

SymptomCheck
401 / 403auth_type and token; Prometheus ACL
Connection refusedURL from the agent host, not the container's localhost if Prom is outside
Empty listtargets unknown / nothing discovered
Duplicates with Proxmoxdifferent provider is expected; merge in the console