配置方式如下:
scrape_configs:
- job_name: 'file_sd'
file_sd_configs:
- files:
- targets.json
relabel_configs:
- source_labels: [__address__]
regex: (http://)([^:]+)
target_label: __address__
replacement: http://${2}
- source_labels: [__port__]
regex: (\d+)
target_label: __port__
replacement: ':${1}'
- source_labels: [__module__]
regex: ([a-z0-9-]+)
target_label: __module__
replacement: /${1}
- source_labels: [__module__]
target_label: metrics_path
这里:
- 通过前 3 个 relabel_config 从 address 和 port 标签生成 host 和 port
- module 标签的值通过最后一个 relabel_config 直接作为 metrics_path
- 所以 module 标签的值会覆盖通过 regex 生成的默认路径
例如,targets.json 中有以下目标:
[
{
"targets": ["http://host1:9090"],
"labels": {
"__module__": "app1"
}
},
{
"targets": ["http://host2:9091"],
"labels": {
"__module__": "app2"
}
}
]
那么 Prometheus 最终会使用以下 metrics_path:
- /app1
- /app2
因为 module 标签的值会直接作为 metrics_path,覆盖 regex 生成的默认值。
具体我的配置示例:
JSON文件中:
[
{
"targets": [
"127.0.0.1:8080"
],
"labels": {
"module": "customer"
}
},
{
"targets": [
"127.0.0.1:8081"
],
"labels": {
"module": "web"
}
}
]
Prometheus中scrape_configs中配置file_sd_config:文章来源:https://www.toymoban.com/news/detail-497640.html
scrape_configs:
- job_name: 'App-service_job'
file_sd_configs:
- files:
- /xxx/targets.json
relabel_configs:
- target_label: __metrics_path__
source_labels: [module]
replacement: /${1}/actuator/prometheus
source_labels: 源标签名称 [module]是用于获取JSON文件中配置目标的标签“target”
target_label:目标标签名称
replacement:替换值文章来源地址https://www.toymoban.com/news/detail-497640.html
到了这里,关于Prometheus配置通过file_sd_configs中每个目标的module标签信息重置每个目标的metrics_path的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!