Skip to content

Add custom labels support in /targets endpoint #74

@cherts

Description

@cherts

To support custom labels and metrics collection intervals (scrape_interval) for different services, we would like to implement the ability to set

Example of the /targets endpoint:

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

Example of config file:

services:
  "service1":
    service_type: "postgres"
    conninfo: "postgres://postgres_exporter:XXXXX@Z.Z.Z.Z:5432/db1"
    target_labels:
        - name: __scrape_interval__
          value: 5m
        - name: __scrape_timeout__
          value: 2m
        - name: __no_stale_markers__
          value: true
        - name: datacenter
          value: dc1
  "service2":
    service_type: "postgres"
    conninfo: "postgres://postgres_exporter:XXXXX@Y.Y.Y.Y:5432/db2"
    target_labels:
        - name: __scrape_interval__
          value: 2m
        - name: __scrape_timeout__
          value: 5m
        - name: __no_stale_markers__
          value: true
        - name: datacenter
          value: dc2

or

discovery:
  yandex_mdb:
    type: yandex-mdb
    config:
      - authorized_key: /etc/pgscv_yandex.json
        folder_id: "ZZZZZZ"
        user: "pgscv"
        password: "YYYYYY"
        refresh_interval: 5
        target_labels:
            - name: __scrape_interval__
              value: 2m
            - name: __scrape_timeout__
              value: 5m
            - name: __no_stale_markers__
              value: true
        clusters:
          - name: ".*"
            db:
            exclude_name:
            exclude_db:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions