我在用这个普罗米修斯舵图。
我想知道是否可以设置prometheus操作符来自动监视集群或命名空间中的每个服务,而不必为每个服务创建一个ServiceMonitor。
使用当前的设置,当我想监视一个服务时,我必须创建一个带有标签ServiceMonitor的release: prometheus。
编辑:
带有monitoring: "true"标签的服务
apiVersion: v1
kind: Service
metadata:
name: issue-manager-service
labels:
app: issue-manager-app
monitoring: "true"
spec:
selector:
app: issue-manager-app
ports:
- protocol: TCP
name: http
port: 80
targetPort: 7200“随叫随到”服务者:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: service-monitor-scraper
labels:
release: prometheus
spec:
endpoints:
- port: metrics
interval: 30s
path: /metrics
jobLabel: monitoring
namespaceSelector:
any: true
selector:
matchLabels:
monitoring: "true"发布于 2020-10-20 18:15:50
只有在所有服务上都有公共标签的情况下
# for example:
org: "my-company"
# or
monitoring: "true"
# or
app.kubernetes.io/managed-by: "Helm" # <- in most cases this represents all然后定义一个跨名称空间的ServiceMonitor,它涵盖所有标记的服务:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: common-monitor
namespace: monitoring
spec:
endpoints:
- port: metrics
interval: 30s
path: /metrics
jobLabel: monitoring
namespaceSelector:
any: true # <- important
selector:
matchLabels:
monitoring: "true" # <- should match what you've chosen as common然后,为了确保Prometheus操作符发现了这个ServiceMonitor,您可以这样做:
ServiceMonitor:https://github.com/prometheus-community/helm-charts/blob/4164ad5fdb6a977f1aba7b65f4e65582d3081528/charts/kube-prometheus-stack/values.yaml#L2008serviceMonitorSelector ServiceMonitor https://github.com/prometheus-community/helm-charts/blob/4164ad5fdb6a977f1aba7b65f4e65582d3081528/charts/kube-prometheus-stack/values.yaml#L1760的Prometheus操作符和ServiceMonitor之间的这个额外的显式链接是有意完成的-这样,如果集群中有2个Prometheus实例(例如Infra和Prometheus ),您可以分离哪个Prometheus将获得哪个Pods的刮取配置。
从您的问题中,听起来您已经有了一个基于serviceMonitorSelector标签的release: prometheus --尝试将它添加到您的catch-all ServiceMonitor上。
https://stackoverflow.com/questions/64445937
复制相似问题