アプリケーションのすべてのインスタンスには異なるURLがあります。ホスト名とともにターゲットのパスを取るようにprometheus.ymlを構成するにはどうすればよいですか?
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'
現在、ジョブ内でターゲットごとにmetrics_path
を構成することはできませんが、ターゲットごとにmetrics_path
を定義できるように、ターゲットごとに個別のジョブを作成できます。
設定ファイルは次のようになります。
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'
file_sd_config オプションを使用してこれを達成しました。すべてのターゲットは個別のファイルで記述され、YMLまたはJSON形式のいずれかです。
prometheus.yml:
scrape_configs:
- job_name: 'dummy' # This will be overridden in targets.yml
file_sd_configs:
- files:
- targets.yml
targets.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
これは、プロメテウスを起動して実行するために使用した構成です。
プロメテウスエンドポイント:http://localhost:8080/appcontext/v1/actuator/prometheus
構成:/etc/prometheus/prometheus.yml
の下に以下の構成を追加します
- job_name: 'appdev'
scrape_interval: 5s
metrics_path: /appcontext/v1/actuator/prometheus
static_configs:
- targets: ['localhost:8082']
labels:
group: 'appdev'