当前位置: 首页 > ai >正文

prometheus通过Endpoints自定义grafana的dashboard模块

1、prometheus自定义的dashboard模块
文件路径/etc/prometheus/config_out/prometheus-env.yaml

- job_name: serviceMonitor/monitoring/pfil/0honor_labels: falsekubernetes_sd_configs:- role: endpointsnamespaces:names:- monitoringrelabel_configs:- source_labels:- jobtarget_label: __tmp_prometheus_job_name- action: keepsource_labels:- __meta_kubernetes_service_label_app- __meta_kubernetes_service_labelpresent_appregex: (pfil);true- action: keepsource_labels:- __meta_kubernetes_service_label_source- __meta_kubernetes_service_labelpresent_sourceregex: (external);true- action: keepsource_labels:- __meta_kubernetes_endpoint_port_nameregex: metrics- source_labels:- __meta_kubernetes_endpoint_address_target_kind- __meta_kubernetes_endpoint_address_target_nameseparator: ;regex: Node;(.*)replacement: ${1}target_label: node- source_labels:- __meta_kubernetes_endpoint_address_target_kind- __meta_kubernetes_endpoint_address_target_nameseparator: ;regex: Pod;(.*)replacement: ${1}target_label: pod- source_labels:- __meta_kubernetes_namespacetarget_label: namespace- source_labels:- __meta_kubernetes_service_nametarget_label: service- source_labels:- __meta_kubernetes_pod_nametarget_label: pod- source_labels:- __meta_kubernetes_pod_container_nametarget_label: container- action: dropsource_labels:- __meta_kubernetes_pod_phaseregex: (Failed|Succeeded)- source_labels:- __meta_kubernetes_service_nametarget_label: jobreplacement: ${1}- source_labels:- __meta_kubernetes_service_label_jobnametarget_label: jobregex: (.+)replacement: ${1}- target_label: endpointreplacement: metrics- source_labels:- __address__target_label: __tmp_hashmodulus: 1action: hashmod- source_labels:- __tmp_hashregex: 0action: keep

注释

Prometheus 配置文件 (/etc/prometheus/config_out/prometheus-env.yaml) 使用的是 Kubernetes 服务发现(kubernetes_sd_configs),并且指定了 role: endpoints。这意味着 Prometheus 会自动去查找 Kubernetes 集群里的 Endpoints(端点) 对象来发现监控目标。

根据配置,Prometheus 只会抓取满足以下所有条件的目标:

命名空间(Namespace): 目标必须位于 monitoring 这个命名空间内。
服务标签(Service Labels): 与目标关联的 Kubernetes Service(服务) 必须 同时 具有 app=pfil 和 source=external 这两个标签。
端口名称(Port Name): 在 Service 定义中,目标所使用的那个端口,其 名称(name) 必须是 metrics。
Pod 状态(Pod Phase): 不会抓取状态是 Failed (失败) 或 Succeeded (成功) 的 Pod 对应的目标

2、创建ServiceMonitor
注意标签selector

  selector:matchLabels:app: pfilsource: external
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:annotations: {}labels:app: pfilrelease: kube-prometheussource: externalname: pfilnamespace: monitoringresourceVersion: '308908134'
spec:endpoints:- port: metricsjobLabel: jobnamenamespaceSelector:matchNames:- monitoringselector:matchLabels:app: pfilsource: external

3、创建Endpoints
Endpoints1

apiVersion: v1
kind: Endpoints
metadata:labels:app: pfiljobname: pfilsource: externalname: pfilnamespace: monitoringresourceVersion: "552235238"uid: dbd41ece-caf3-4b7b-8510-3c6eda714f7a
subsets:
- addresses:- hostname: test-mainip: 1.1.1.1- hostname: test-east-1ip: 2.2.2.2- hostname: test-west-1ip: 3.3.3.3ports:- name: metricsport: 9002protocol: TCP

Endpoints2

apiVersion: v1
kind: Endpoints
metadata:name: parasail-minernamespace: monitoringlabels:app: pfilsource: externalcomponent: parasail-miner
subsets:
- addresses:- ip: 1.1.1.1hostname: parasail-minerports:- name: metrics port: 8002protocol: TCP

4、创建Service
service1

---
apiVersion: v1
kind: Service
metadata:annotations: {}labels:app: pfilcomponent: parasail-minersource: externalname: parasail-minernamespace: monitoringresourceVersion: '552542525'
spec:clusterIP: 10.100.103.0clusterIPs:- 10.100.103.0internalTrafficPolicy: ClusteripFamilies:- IPv4ipFamilyPolicy: SingleStackports:- name: metricsport: 8002protocol: TCPtargetPort: 8002sessionAffinity: Nonetype: ClusterIP
status:loadBalancer: {}

service2

---
apiVersion: v1
kind: Service
metadata:annotations: {}labels:app: pfiljobname: pfilsource: externalname: pfilnamespace: monitoringresourceVersion: '552219945'
spec:clusterIP: 10.100.78.9clusterIPs:- 10.100.78.9internalTrafficPolicy: ClusteripFamilies:- IPv4ipFamilyPolicy: SingleStackports:- name: metricsport: 9002protocol: TCPtargetPort: 9002- name: metrics-8002port: 8002protocol: TCPtargetPort: 8002sessionAffinity: Nonetype: ClusterIP
http://www.xdnf.cn/news/1919.html

相关文章:

  • C++23中if consteval / if not consteval (P1938R3) 详解
  • PySide与PyQt对比:为何PySide是更优选择
  • google ads超额投放解决策略
  • RFID使用指南
  • 大模型备案对模型训练语料的要求
  • 用 LangChain 手搓 RAG 系统:从原理到实战
  • 嵌入式鸿蒙系统环境搭建与配置要求实现01
  • WebUI可视化:第5章:WebUI高级功能开发
  • 【专题刷题】二分查找(二)
  • 附赠二张图,阐述我对大模型的生态发展、技术架构认识。
  • Cesium实现地形可视域分析
  • 基于CATIA参数化管道建模的自动化插件开发实践——NX建模之管道命令的参考与移植
  • POLARIS土壤相关数据集
  • HDFS 的硬链接 详解
  • 数字化技术的五个环节:大数据、云计算、人工智能、区块链、移动互联网
  • LeetCode 1780 判断一个数字是否可以表示成三的幂的和
  • 2023年第十四届蓝桥杯Scratch02月stema选拔赛真题——算式题
  • 中国矿业大学iGMAS分析中心介绍
  • Verilog 语法 (二)
  • SEO长尾关键词布局实战
  • 【设计】接口幂等性设计
  • Docker Macvlan网络配置实战:解决“network already exists“错误
  • ECMAScript 1(ES1):JavaScript 的开端
  • Nginx解决跨域问题
  • 信创时代开发工具选择指南:国产替代背景下的技术生态与实践路径
  • GPT-4.1模型引发独立测试中的严重对齐性问题担忧
  • Git 核心命令学习总结
  • Java后端MySQL动态语句编写
  • 淘宝店如何实现7*16小时高效运营?
  • ArkTS中的空安全:全面解析与实践