Skip to content

Custom target labels

Mikhail Grigorev edited this page Feb 25, 2025 · 8 revisions

Starting with pgSCV 0.13.0, it has become possible to use custom labels in /targets endpoint.

Version 0.10.0 introduces support for the Prometheus (VictoriaMetrics) discovery service. You can read about this in detail on the documentation page.

Support for custom labels in the /targets endpoint was a major improvement.

Below I will give an example of pgscv.yaml configuration using this functionality and what results we will see with it.

listen_address: 0.0.0.0:9890
services:
  "postgres1":
    service_type: "postgres"
    conninfo: "postgres://pgscv:XXXXX@postgres1:5432/db1"
    target_labels:
        - name: __scrape_interval__
          value: 5m
        - name: __scrape_timeout__
          value: 2m
        - name: datacenter
          value: dc1
  "postgres2":
    service_type: "postgres"
    conninfo: "postgres://pgscv:XXXXX@postgres2:5432/db2"
    target_labels:
        - name: __scrape_interval__
          value: 2m
        - name: __scrape_timeout__
          value: 5m
        - name: datacenter
          value: dc2

For example, a /targets output

[
    {
        "targets": ["X.X.X.X:9890/metrics?target=system:0"]
    },
    {
        "targets": ["X.X.X.X:9890/metrics?target=postgres1"],
        "labels": {
            "datacenter": "dc1",
            "__scrape_interval__": "5m",
            "__scrape_timeout__": "2m"
        }
    },
    {
        "targets": ["X.X.X.X:9890/metrics?target=postgres2"],
        "labels": {
            "datacenter": "dc2",
            "__scrape_interval__": "2m",
            "__scrape_timeout__": "5m"
        }
    }
]

After Prometheus (VictoriaMetrics) performs service discovery, each service (postgres1 and postgres2) will have its own scrape_interval and scrape_timeout parameters set, and the datacenter label will be added to each postgres_ metric.

Clone this wiki locally