Skip to content

Info

License: Free — part of the universal collection tier.

Prometheus Scrape Probe

The prometheus_scrape probe pulls Prometheus /metrics endpoints — node_exporter, appliance exporters, any application exposing the text format — and ingests the samples through the agent pipeline, out to every configured output. It is the pull-side twin of the OTLP receiver: one agent per site collects both push (OTLP) and pull (Prometheus) sources.

Quick start

# probes.d/10-prometheus-scrape.yaml — each file under probes.d/ is a YAML array of probes
- name: exporters
  type: prometheus_scrape
  params:
    targets:
      - "http://localhost:9100/metrics"      # node_exporter
      - "http://10.0.0.5:9117/metrics"       # appliance exporter
    interval: 60

Parameters

Parameter Must set Default Description
targets Yes - Exposition URLs. Example: http://localhost:9100/metrics
interval No 60 Seconds between scrapes
timeout No 10 Whole-request budget in seconds
metric_match No - Regular expression on metric family names
bearer_token No - Sent as Authorization: Bearer. A secret: reference it with ${secret:…}, ${env:…} or ${file:…} rather than writing it in the file
insecure_skip_verify No false Accept self-signed exporter certificates

The timeout applies to each target's request. Metric families that do not match metric_match are skipped.

Targets are scraped in parallel (bounded). An unreachable exporter is a measurement (senhub.promscrape.up = 0), never a probe failure.

Behavior

  • Pass-through naming. Scraped metric names and labels are forwarded unchanged; counter/gauge semantics are preserved. Untyped samples are treated as gauges.
  • Scalars only. Counter, gauge and untyped series are ingested. Histogram and summary series are dropped and counted in senhub.promscrape.dropped — the same contract as the OTLP receiver.
  • Size cap. A scrape response is read up to 32 MiB; a runaway exporter cannot exhaust the agent's memory.

Self-metrics

One series per target (target tag).

Metric Description
senhub.promscrape.up 1 when the target answered with a parseable exposition
senhub.promscrape.scrape.duration Scrape wall-clock time
senhub.promscrape.samples Scalar series ingested in the last scrape
senhub.promscrape.dropped Histogram/summary series dropped in the last scrape

Operational notes

  • Use metric_match on big exporters. A full node_exporter exposes 1000+ series; metric_match: "^node_(cpu|memory|filesystem|network)" keeps cardinality under control.
  • Re-exporting to Prometheus. Scraped series flowing back out the agent's own Prometheus endpoint are prefixed senhub_, so they never collide with a direct scrape of the same exporter.
  • PRTG / Nagios outputs. These sinks key series per target; finer per-label splits are carried on the Prometheus and OTLP outputs.

Metric reference

Every metric this probe can emit. Metric is the OpenTelemetry name the OTLP, Prometheus and Zabbix outputs derive theirs from. Name is what a Nagios check and the API metrics= filter match. PRTG channel is the label PRTG shows, placeholders filled from the series' tags.

Metric Name PRTG channel Unit Description
senhub.promscrape.up senhub.promscrape.up Scrape {target} Up # 1 when the target answered with a parseable exposition
senhub.promscrape.scrape.duration senhub.promscrape.scrape.duration Scrape {target} Duration ms Wall-clock time of the scrape including parsing
senhub.promscrape.samples senhub.promscrape.samples Scrape {target} Samples # Scalar series ingested from the last scrape
senhub.promscrape.dropped senhub.promscrape.dropped Scrape {target} Dropped Series # Series in unsupported families (histogram/summary) dropped by the last scrape