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

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

相关文章:

  • 时序数据库IoTDB在航空航天领域的解决方案
  • 对Mac文字双击或三击鼠标左键没有任何反应
  • Mac 「brew」快速安装MySQL
  • 河道流量监测,雷达流量计赋能水安全智慧守护
  • 4.26 世界知识产权日|CRMEB与您共筑知识产权保护铠甲
  • 【playwright】 page.wait_for_timeout() 和time.sleep()区别
  • 【华为HCIP | 华为数通工程师】821—多选解析—第十七页
  • Spring 与 ActiveMQ 的深度集成实践(一)
  • 告别进度失控:用燃尽图补上甘特图的监控盲区
  • 第100+39步 ChatGPT学习:R语言实现Xgboost SHAP
  • (三) Trae 调试C++ 基本概念
  • 《AI大模型趣味实战》构建基于Flask和Ollama的AI助手聊天网站:分布式架构与ngrok内网穿透实现
  • 数字人民币杠杆破局预付乱象 XBIT智能合约筑牢资金安全防线
  • 基于Java,SpringBoot,Vue,HTML宠物相亲配对婚恋系统设计
  • 如何实现Android屏幕和音频采集并启动RTSP服务?
  • 【Linux内核设计与实现】第三章——进程管理04
  • 多模态大语言模型(MLLM)- kimi-vl technical report论文阅读
  • UWA DAY 2025 正式启动|十年筑基,驱动游戏未来引擎
  • 临床试验中安全性估计策略与应用
  • 白鲸开源与亚马逊云科技携手推动AI-Ready数据架构创新
  • 钱学森数据服务中心在沪上线,十万个数字资源向公众开放
  • 文昌市委原书记龙卫东已任海南省人社厅党组书记
  • 记录发生真相,南沙岛礁生态调查纪实片《归巢》发布
  • 外卖口水战四天,京东美团市值合计蒸发超千亿港元
  • 帕力旦·吐尔逊已任喀什大学党委副书记、校长
  • 中国天主教组织发唁电对教皇去世表示哀悼