Skip to content

Prometheus remote-write

Already running Prometheus? Point its remote-write at Ultraviolet and every metric it scrapes shows up in the Metrics explorer and is available for dashboards and alerts — no need to re-instrument anything or swap out exporters.

Because it’s a receiver, this works exactly the same connected or air-gapped: Prometheus pushes to your core, and nothing leaves your environment.

The receiver is off by default. Enable it in your Helm values:

ingestGateway:
promRemoteWrite:
enabled: true
port: 19291 # the port Prometheus will send to

This adds a POST /api/v1/write endpoint on the ingest gateway. Upgrade the release to apply it.

Add a remote_write block to your prometheus.yml:

remote_write:
- url: http://<ingest-gateway-host>:19291/api/v1/write

Reload Prometheus and samples start flowing within a scrape interval. Open the Metrics page and search for one of your metric names to confirm.

Ultraviolet keeps your metric names and labels as-is. A few well-known labels are promoted to first-class fields so they line up with the rest of your telemetry:

Prometheus label Becomes Notes
__name__ Metric name The metric you search for.
service (or job) Service service wins if both are present.
instance (or node) Node
site_id, cluster_id Site / cluster Optional — see multi-site below.

Every other label is kept as a searchable dimension on the metric. Metric names ending in _total are treated as counters; everything else is a gauge.

For a single deployment there’s nothing to set — metrics land under your default site. If you feed several environments into one core, either:

  • add site_id / cluster_id labels (for example via Prometheus external_labels), or
  • connect the Prometheus over the same secured link your remote sites use, and the site identity comes from the connection automatically.

When your core is set up for secure remote sites, the remote-write endpoint requires the same client certificate as any other remote connection — so a Prometheus sending from outside the cluster is authenticated just like an enrolled site. Inside the cluster, the in-cluster address is used directly.