Prometheus配置通过file_sd_configs中每个目标的module标签信息重置每个目标的metrics_path

news/2024/5/19 0:30:53 标签: prometheus

配置方式如下:

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 从 addressport 标签生成 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:

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:替换值


http://www.niftyadmin.cn/n/451079.html

相关文章

大数据面试题:Hive的cluster by 、sort by、distribute by 、order by 区别?

面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 参考答案: 可回答:1)Hive的排序函数;2)Hive的排序,以及各自的区别&#xff1…

计算机组成原理-复习大纲(期末版)

目录 第一章 计算机系统概论 1.1 冯诺依曼型计算机 1.2 计算机的硬件组成 第二章 运算方法和运算器 2.1 ieee754标准、32位浮点数 2.2 补码运算 2.3 运算器的基本结构形式 第三章 存储系统 3.1 主存与cache的地址映射 3.1.1 全相联映射方式 3.1.2 直接映射方式 3.1.3 组…

CNAPPs投资热度持续攀升 腾讯云被Gartner评为全球案例厂商

近日,Gartner发布《新兴技术:在三重挤压中蓬勃发展—对云安全风险投资的关键洞察》(Emerging Tech: Thriving Amid the Triple Squeeze— Critical Insights on VC Funding for Cloud Security)(以下简称《报告》&…

Python 错误 Indentationerror: Unindent Does Not Match Any Outer Indentation Level

在本文中,我们将学习如何解决在代码执行期间发生的 IndentationError。 我们将查看导致此错误的不同原因。 我们还将找到在 Python 中解决此错误的方法。 让我们从 Python 中的 IndentationError 开始。最后我们再详细讨论一下Python中的缩进规则。 缩进是 Python 语言的重要…

电力通信实用小技巧,一看就懂!

随着电力通信技术的快速发展,电力通信机房扮演着至关重要的角色,确保电力系统的正常运行和通信网络的稳定连接。 然而,电力通信机房的环境和设备面临着各种潜在的风险和挑战,如温度过高、湿度异常、电力故障等。为了有效监控和管理…

Android动态配置network_security_config

相信目前Android开发中,基本上网络请求都是使用https协议的了,这样对我们的数据安全有了一定的保障。但是通常在测试阶段,测试人员往往需要进行抓包测试,可以实时查看数据请求情况。这就需要我们需要区分好生产环境和测试环境的网…

sqoop导入实战

Sqoop导入实战 Sqoop-import 案例1 表没有主键,需要指定map task的个数为1个才能执行 Sqoop导入原理: ​ Sqoop默认是并行的从数据库源导入数据。您可以使用-m或--num-mappers参数指定用于执行导入的map任务(并行进程)的数量。每个参数都取一个整数值&#xff0…

【AUTOSAR】UDS协议的代码分析与解读(十四)----UDS 控制 DTC 设置 85h

8.22 控制 DTC 设置 ControlDTCSetting (85h) 诊断工具使用此服务启用或禁用ECU中的诊断故障码(DTC) 设置。 8.22.1 报文格式 表 91 控制 DTC 设置服务的请求报文 Byte Name Cvt Value (Hex) #1 RequestServiceIdentifier M 85 #2 Subfunction[DTCSettingType] M 0…