使用kube-prometheus-stack helm chart,版本 16.10.0。到目前为止,我添加了我的 custom PrometheusRules
,PodMonitor
并ServiceMonitor
通过 helm 自定义值。
helm install my-kubpromstack prometheus-community/kube-prometheus-stack -n monitoring \
-f my-AlertRules.yaml \
-f my-PodMonitor.yaml
PrometheusRules
或者,如果or发生变化PodMonitor
,我使用helm upgrade
. 自定义值是基于kube-prometheus-stack/values.yaml 定义的。我在哪里定义prometheus.additionalPodMonitors
和additionalPrometheusRulesMap
在单独的 YAML 文件中
helm upgrade my-kubpromstack -n monitoring \
--reuse-values \
-f my-AlertRules.yaml \
-f my-PodMonitor.yaml
问题:如何让 Prometheus 服务器kube-prometheus-stack
了解在 helm 值之外创建的规则、podmonitor、servicemonitor?
例如,PodMonitor
Prometheus 不会采用下面的定义(即不会出现在 Prometheus UI 的目标中)。
kubectl apply -f - << EOF
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: cluster-operator-metrics
labels:
app: strimzi
spec:
selector:
matchLabels:
strimzi.io/kind: cluster-operator
namespaceSelector:
matchNames:
- my-strimzi
podMetricsEndpoints:
- path: /metrics
port: http
EOF
要监控的 pod 有一个标签strimzi.io/kind: cluster-operator
,并且位于my-strimzi
命名空间中。我希望podmonitor
普罗米修斯能够自动识别上述内容。因为 kube-prometheus-stack/values.yaml 中默认的podMonitorSelector: {}有一条注释说:
## PodMonitors to be selected for target discovery.
## If {}, select all PodMonitors