prometheus dynamic metrics_path
You can use relabel_config in Prometheus config to change __metrics_path__
label config.
The principe is to provide the metrics path in your targets under the form host:port/path/of/metrics
(note: drop the http://
, it is in scheme
parameter of scrape_config
)
[ { "targets": [ "node1:8080/first-metrics", "node2:8080/second-metrics" ] }]
And then replace the related meta-labels with the parts
- job_name: 'kube-metrics' file_sd_configs: - files: - 'targets.json' relabel_configs: - source_labels: [__address__] regex: '[^/]+(/.*)' # capture '/...' part target_label: __metrics_path__ # change metrics path - source_labels: [__address__] regex: '([^/]+)/.*' # capture host:port target_label: __address__ # change target
You can reuse this method on any label known at configuration time to modify the config of the scrape.
On Prometheus, use the service discovery page to check your config has been correctly modified.
The official list of service discovery is in the configuration documentation: look for the *_sd_config
in the index.