Kubernetes 普罗米修斯不刮额外的刮痕

Kubernetes 普罗米修斯不刮额外的刮痕,kubernetes,prometheus,prometheus-operator,Kubernetes,Prometheus,Prometheus Operator,我正在使用稳定/普罗米修斯操作员图表部署普罗米修斯。它安装在监视命名空间中。在default名称空间中,我有一个名为mypod的pod,其中包含三个副本。这个pod在端口9009上吐出度量值(我通过执行k port forward并验证localhost:9009中显示的度量值来验证这一点)。我想让普罗米修斯操作员来获取这些指标。因此,我将下面的配置添加到values.yaml prometheus: prometheusSpec: additionalScrapeConfigs:

我正在使用稳定/普罗米修斯操作员图表部署普罗米修斯。它安装在
监视
命名空间中。在
default
名称空间中,我有一个名为
mypod
的pod,其中包含三个副本。这个pod在端口9009上吐出度量值(我通过执行k port forward并验证localhost:9009中显示的度量值来验证这一点)。我想让普罗米修斯操作员来获取这些指标。因此,我将下面的配置添加到
values.yaml

prometheus:
  prometheusSpec:
    additionalScrapeConfigs:
    - job_name: 'my-pod-job'
      scrape_interval: 15s
      kubernetes_sd_configs:
      - role: pod
        namespaces:
          names:
          - default
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_name]
        action: keep   
        regex: 'my-pod'  
然后,我使用以下命令安装普罗米修斯:

helm upgrade --install prometheus stable/prometheus-operator \
--set kubeEtcd.enabled=false \
--set kubeControllerManager.enabled=false \
--set kubeScheduler.enabled=false \
--set prometheusOperator.createCustomResource=true \
--set grafana.smtp.existingSecret=smtp-secret \
--set kubelet.serviceMonitor.https=true \
--set kubelet.enabled=true \
-f values.yaml --namespace monitoring
但是,当我转到
/service discover
时,我看到

my-pod-job (0/40 active targets)
问题


如何配置prometheus,使其从默认命名空间中运行的POD中提取度量值,并在端口9009上吐出度量值?

要告诉prometheus提取POD,请添加以下注释:

...
  template:
    metadata:
      annotations:
        prometheus.io/scrape: 'true'
        prometheus.io/port: '9009'

正如@gears已经提到的,如果您想从特定的pod或服务中获取度量,那么必须对其应用prometheus scrape注释。例如:

...
spec:
  replicas: 1
  template:
    metadata:
      annotations:
        prometheus.io/path: <path_to_scrape>
        prometheus.io/port: "80"
        prometheus.io/scrape: "true"
...
。。。
规格:
副本:1份
模板:
元数据:
注释:
prometheus.io/path:
prometheus.io/port:“80”
普罗米修斯:真的
...
然而,如前所述:

prometheus运算符不支持基于注释的数据发现 服务,使用 CRD提供了更多的配置选项

现在,如果我理解正确,那么应该在应用程序所在的同一命名空间中创建
ServiceMonitor
对象。您需要确保
serviceMonitorNamespaceSelector
选择该名称空间,并且Prometheus服务器具有访问该名称空间中的服务/端点/Pod对象的适当权限


如果有帮助,请告诉我

这是普罗米修斯的接线员吗@安东尼·普罗米修斯接线员…-“…普罗米修斯运营商不支持基于注释的服务发现”。这将是针对prometheus-operator的。这就是我正在使用的,并且正在努力弄清楚如何使用
additionalScrapeConfigs
将其配置为指向特定pod和特定端口。