如何为pgbouncer-exporter指标添加Kubernetes ServiceMonitor
通过Kubernetes ServiceMonitor接入pgbouncer-exporter指标到Prometheus
1. 创建对应Service
ServiceMonitor需要依托Service定位到运行pgbouncer-exporter的Pod,先定义一个Service确保能选中你的Deployment Pod:
apiVersion: v1 kind: Service metadata: name: pgbouncer-exporter labels: app: pgbouncer-exporter spec: selector: app: pgbouncer # 这里要和你的pgbouncer Deployment的labels完全匹配,才能选中目标Pod ports: - name: metrics port: 9100 targetPort: 9100 protocol: TCP
执行命令应用:
kubectl apply -f pgbouncer-exporter-service.yaml
2. 定义ServiceMonitor资源
ServiceMonitor是Prometheus Operator提供的CRD,用来告知Prometheus要采集哪些服务的指标,配置如下:
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: pgbouncer-exporter labels: release: prometheus # 这个标签要和你的Prometheus实例的serviceMonitorSelector匹配,确保Prometheus能发现它 spec: selector: matchLabels: app: pgbouncer-exporter # 匹配上面创建的Service的标签 endpoints: - port: metrics # 对应Service里定义的端口名称 interval: 30s # 采集间隔,按需调整 path: /metrics # pgbouncer-exporter默认指标路径就是/metrics,无需修改
执行命令应用:
kubectl apply -f pgbouncer-exporter-servicemonitor.yaml
3. 确认Prometheus能发现ServiceMonitor
检查你的Prometheus CR配置,确保serviceMonitorSelector能匹配到ServiceMonitor的标签。示例配置片段:
apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: prometheus spec: serviceMonitorSelector: matchLabels: release: prometheus # 和ServiceMonitor的metadata.labels里的release值一致 # 其他配置(如存储、副本数等)...
若之前未配置过,更新Prometheus CR后等待滚动更新即可。
4. 验证采集状态
- 登录Prometheus UI,进入「Targets」页面,搜索
pgbouncer-exporter,查看目标是否处于UP状态 - 也可用命令查看ServiceMonitor状态:
kubectl get servicemonitor pgbouncer-exporter -o wide
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

