Eva*_*eri 5 grafana prometheus prometheus-operator
当我部署这个时:
kind: ServiceMonitor
apiVersion: monitoring.coreos.com/v1
metadata:
labels:
app: complaints-monitor
release: prometheus # <---------
name: complaints-monitor-svc-monitor
namespace: default
spec:
endpoints:
- path: /metrics
port: web
namespaceSelector:
matchNames:
- default
selector:
matchLabels:
app: complaints-monitor
Run Code Online (Sandbox Code Playgroud)
我的服务显示在普罗米修斯目标下并正确运行。
如果我应用以下命令,目标就会消失:
kind: ServiceMonitor
apiVersion: monitoring.coreos.com/v1
metadata:
labels:
app: complaints-monitor
name: complaints-monitor-svc-monitor
namespace: default
spec:
endpoints:
- path: /metrics
port: web
namespaceSelector:
matchNames:
- default
selector:
matchLabels:
app: complaints-monitor
Run Code Online (Sandbox Code Playgroud)
values.yaml检查后才发现这个问题kube-prometheus-stack
## If true, a nil or {} value for prometheus.prometheusSpec.serviceMonitorSelector will cause the
## prometheus resource to be created with selectors based on values in the helm deployment,
## which will also match the servicemonitors created
##
serviceMonitorSelectorNilUsesHelmValues: true
## ServiceMonitors to be selected for target discovery.
## If {}, select all ServiceMonitors
##
serviceMonitorSelector: {}
## Example which selects ServiceMonitors with label "prometheus" set to "somelabel"
# serviceMonitorSelector:
# matchLabels:
# prometheus: somelabel
Run Code Online (Sandbox Code Playgroud)
当您使用 helm 安装时kube-prometheus-stack,它会release: <prometheus-installed-namespace>为 Kubernetes 资源添加标签。
如果设置serviceMonitorSelectorNilUsesHelmValues是true选择器,则将添加到prometheus.prometheusSpec.serviceMonitorSelector,在您的情况下是release: prometheus。
您应该能够看到 prometheus 使用命令选择 serviceMonitor 的选择器
kubectl -n <prometheus-installed-namespace> get prometheus -o yaml
Run Code Online (Sandbox Code Playgroud)
并搜索serviceMonitorSelector.
release您有两种选择可以在不添加标签的情况下使其正常工作
设置serviceMonitorSelectorNilUsesHelmValues为false,那么prometheus会选择所有serviceMonitor
或者,设置serviceMonitorSelector为您喜欢的任何标签。
| 归档时间: |
|
| 查看次数: |
3452 次 |
| 最近记录: |