web-dev-qa-db-fra.com

uRL de récupération différente pour chaque cible

Chaque instance de mon application a une URL différente. Comment puis-je configurer prometheus.yml afin qu’il prenne le chemin d’une cible avec le nom de l’hôte?

scrape_configs:
- job_name:       'example-random'

# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s

static_configs:
  - targets: ['localhost:8090','localhost:8080']
    labels:
      group: 'dummy'
5
poojabh

Vous ne pouvez actuellement pas configurer le metrics_path par cible dans un travail, mais vous pouvez créer des travaux distincts pour chacune de vos cibles afin de pouvoir définir metrics_path par cible.

Votre fichier de configuration ressemblerait à ceci:

scrape_configs:
- job_name:       'example-target-1'
  scrape_interval: 5s
  metrics_path: /target-1-path-to-metrics
  static_configs:
    - targets: ['localhost:8090']
      labels:
        group: 'dummy'

- job_name:       'example-target-2'
  scrape_interval: 5s
  metrics_path: /totally-different-path-for-target-2
  static_configs:
    - targets: ['localhost:8080']
      labels:
        group: 'dummy-2'
5
Oliver

Je pense que vous devez modifier l’étiquette du jeu d’étiquettes __metrics_path__ afin d’inclure les divers chemins de vos applications.

Les documents Prometheus de configuration vous seront utiles ici et cet article devrait vous aider à comprendre un peu mieux la réétiquetage.

4
ConorB

J'ai réalisé cela en utilisant file_sd_config option. Toutes les cibles sont décrites dans des fichiers séparés, qui peuvent être au format YML ou JSON.

prometheus.yml :

scrape_configs:
  - job_name: 'dummy'  # This will be overridden in targets.yml
    file_sd_configs:
      - files:
        - targets.yml

cibles.yml :

- targets: ['Host1:9999']
  labels:
    job: my_job
    __metrics_path__: /path1

- targets: ['Host2:9999']
  labels:
    job: my_job  # can belong to the same job
    __metrics_path__: /path2
1