【发布时间】:2019-03-30 04:05:02
【问题描述】:
最近,prometheus-operator 被提升为 stable helm chart (https://github.com/helm/charts/tree/master/stable/prometheus-operator)。
我想了解如何在 k8s 集群中添加自定义应用程序以通过 prometheus-operator 进行监控。举个例子,比如 gitlab runner,它默认提供 9252 的指标,将不胜感激 (https://docs.gitlab.com/runner/monitoring/#configuration-of-the-metrics-http-server)。
我有一个基本的 yaml,它显然不起作用,但也没有提供任何关于 什么 不起作用的反馈:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: gitlab-monitor
# Change this to the namespace the Prometheus instance is running in
namespace: default
labels:
app: gitlab-runner-gitlab-runner
release: prometheus
spec:
selector:
matchLabels:
app: gitlab-runner-gitlab-runner
namespaceSelector:
# matchNames:
# - default
any: true
endpoints:
- port: http-metrics
interval: 15s
这是prometheus的配置:
> kubectl get prometheus -o yaml
...
serviceMonitorNamespaceSelector: {}
serviceMonitorSelector:
matchLabels:
release: prometheus
...
所以选择器应该匹配。 “不工作”是指端点没有出现在 prometheus UI 中。
【问题讨论】:
-
能否请您发布
kubectl get prometheus -o yaml的输出。您必须在此处指定serviceMonitorNamespaceSelector: {}和serviceMonitorSelector: {}(示例将选择所有命名空间中的所有 serviceMonitors)。您的ServiceMonitor定义对我来说很好。 -
改进了 yaml 并在上面添加了 prometheus 配置。
-
能否请您定义
serviceMonitorSelector: {}以排除此选择器无法正常工作。您还可以检查服务的注释。我有一个selector matchLabels: <key>: <value>,它确实有效。我不确定namespaceSelector: # matchNames: # - default any: true是否也有效。 -
基于 prometheus 运算符附带的监视器,我什至可以完全删除 namespaceSelector(尽管我已经尝试了这两种方法)。没有出现在普罗米修斯目标中。是否有任何日志文件可以检查服务监视器在何处被拾取?
-
头撞墙。看着github.com/coreos/prometheus-operator/blob/…我也需要服务,而不仅仅是服务监视器?
标签: kubernetes coreos kubernetes-helm