使用库贝-普罗米修斯-堆栈头盔图,35.2.0版。到目前为止,我通过helm自定义值添加了我的自定义PrometheusRules、PodMonitor和ServiceMonitor。
helm install my-kubpromstack prometheus-community/kube-prometheus-stack -n monitoring \
-f my-AlertRules.yaml \
-f my-PodMonitor.yaml或者在PrometheusRules或PodMonitor发生更改时,我使用helm upgrade。自定义值是基于库贝-普罗米修斯-堆栈/价值定义的。其中,我在单独的YAML文件中定义了prometheus.additionalPodMonitors和additionalPrometheusRulesMap
helm upgrade my-kubpromstack -n monitoring \
--reuse-values \
-f my-AlertRules.yaml \
-f my-PodMonitor.yaml问题:如何使Prometheus服务器从kube-prometheus-stack中了解在舵机值之外创建的规则、podmonitor、servicemonitor?
例如,下面的PodMonitor定义不是由Prometheus获取的(即没有出现在Prometheus中的目标中)。
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要监视的吊舱有一个标签strimzi.io/kind: cluster-operator,位于my-strimzi命名空间中。我希望上面的podmonitor能被普罗米修斯自动识别。因为Kube-Prometheus堆栈/ Because .says中的默认podMonitorSelector:{}有一条注释:
## PodMonitors to be selected for target discovery.
## If {}, select all PodMonitors编辑:看起来这个问题对很多人很有用。最简单的解决办法是周星驰在下面提出的建议。将自定义helm值设置如下:
prometheus:
prometheusSpec:
podMonitorSelectorNilUsesHelmValues: false
probeSelectorNilUsesHelmValues: false
ruleSelectorNilUsesHelmValues: false
serviceMonitorSelectorNilUsesHelmValues: false发布于 2021-06-29 10:25:32
如果将prometheus.prometheusSpec.podMonitorSelectorNilUseHelmValues定义为false (在values.yaml中,默认设置为true ),则可以实现目标。因为值是true,所以它只是尝试为匹配PodMonitor设置一个release标签,而您自己的定义并不包括这个标签。
或者,您可以将其保留为true,并将prometheus.prometheusSpec.podMonitorSelector设置为:
matchLabels:
prometheus: "true"并在您的prometheus: "true"中添加标签podmonitor.yaml。
单击“这里”检查代码,如果您有详细信息的话。
请注意,此链接中的图表版本为15.4.4,您应该更改为您正在使用的版本,以防有任何更新。
发布于 2021-08-20 13:06:48
添加此答案,以解决OP中的评论者提出的问题。下面是我使用的PodMonitor定义+ kube-prometheus-stack舵机图表的自定义舵值,以便让Prometheus操作符发现pod作为目标。重点是标签app: strimzi。注释部分展示了如何配置helm以使Prometheus识别该标签。
#--------------------------------------------------------------------------------
# The kube-prometheus-stack helm chart must have the value
# podMonitorSelector.matchLabels set to match the label `app: strimzi` of the PodMonitors below.
# Otherwise Prometheus operator will not scrape the metrics of the corresponding pods
#
# prometheus:
# prometheusSpec:
# podMonitorSelector:
# matchLabels:
# app: strimzi
#--------------------------------------------------------------------------------
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: strimzi-cluster-operator-metrics
labels:
app: strimzi
spec:
selector:
matchLabels:
strimzi.io/kind: cluster-operator
namespaceSelector:
matchNames:
- strimzi
podMetricsEndpoints:
- path: /metrics
port: httphttps://stackoverflow.com/questions/68085831
复制相似问题