【问题标题】:Prometheus + Kubernetes metrics coming from wrong scrape jobPrometheus + Kubernetes 指标来自错误的抓取作业
【发布时间】:2019-01-30 10:50:56
【问题描述】:

我通过prometheus helm chart使用图表的默认值部署了prometheus服务器(+ kube state metrics + node exporter + alertmanager),包括图表的默认scrape_configs。问题是我希望某些指标来自特定的工作,而不是来自不同的工作。

例如,node_cpu_seconds_totalkubernetes-service-endpoints 作业提供,但我希望它来自kubernetes-nodes 作业,即node-exporter。返回的指标值是准确的,但问题是我没有通常来自kubernetes-nodes 的标签(因为kubernetes-nodes 工作有role: noderole: endpoint 对于role: endpointkubernetes-service-endpoints。我需要这些缺失的标签高级查询 + 仪表板。

node_cpu_seconds_total{mode="idle"}的输出:

node_cpu_seconds_total{app="prometheus",chart="prometheus-7.0.2",component="node-exporter",cpu="0",heritage="Tiller",instance="10.80.20.46:9100",job="kubernetes-service-endpoints",kubernetes_name="get-prometheus-node-exporter",kubernetes_namespace="default",mode="idle",release="get-prometheus"} | 423673.44 node_cpu_seconds_total{app="prometheus",chart="prometheus-7.0.2",component="node-exporter",cpu="0",heritage="Tiller",instance="10.80.20.52:9100",job="kubernetes-service-endpoints",kubernetes_name="get-prometheus-node-exporter",kubernetes_namespace="default",mode="idle",release="get-prometheus"} | 417097.16

日志中没有错误,我确实有其他 kubernetes-nodes 指标,例如 upstorage_operation_errors_total 所以 node-exporter 正在被删除。

我还手动验证了 node-exporter 有这个特定的指标 node_cpu_seconds_totalcurl <node IP>:9100/metrics | grep node_cpu 并且它有结果。

工作订单定义重要吗?如果它们具有相同的名称,一项工作会覆盖另一个工作的指标吗?我应该放弃kubernetes-service-endpoints 工作的指标吗?我是 prometheus 的新手,因此感谢您提供任何详细的帮助。

【问题讨论】:

    标签: kubernetes prometheus


    【解决方案1】:

    通过导航到 prometheus 服务发现状态 UI 页面,我能够弄清楚如何添加“缺失”标签。该页面显示了所有可以通过 relabel_configs 处理和保存的“发现的标签”。处理/保留的内容显示在“目标标签”下的“发现的标签”旁边。因此,只需修改scrape_configs 中的kubernetes-service-endpoints 作业配置,因此我添加了更多标签。下面正是我在图表的scrape_configs 中所做的更改。有了这个新配置,如果指标还没有 namespaceservicepodnode,我会在所有指标中添加它们(请参阅 honor_labels)。

           - job_name: 'kubernetes-service-endpoints'
    +        honor_labels: true
    
             kubernetes_sd_configs:
               - role: endpoints
    
             relabel_configs:
               - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
                 action: keep
                 regex: true
               - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
                 action: replace
                 target_label: __scheme__
                 regex: (https?)
               - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
                 action: replace
                 target_label: __metrics_path__
                 regex: (.+)
               - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
                 action: replace
                 target_label: __address__
                 regex: ([^:]+)(?::\d+)?;(\d+)
                 replacement: $1:$2
               - action: labelmap
                 regex: __meta_kubernetes_service_label_(.+)
               - source_labels: [__meta_kubernetes_namespace]
                 action: replace
    -            target_label: kubernetes_namespace
    +            target_label: namespace
               - source_labels: [__meta_kubernetes_service_name]
                 action: replace
    -            target_label: kubernetes_name
    +            target_label: service
    +          - source_labels: [__meta_kubernetes_pod_name]
    +            action: replace
    +            target_label: pod
    +          - source_labels: [__meta_kubernetes_pod_node_name]
    +            action: replace
    +            target_label: node
    

    【讨论】:

      【解决方案2】:

      从抓取配置中,kubernetes-nodes 作业探测 https://kubernetes.default.svc:443/api/v1/nodes/${node_name}/proxy/metrics,而 kubernetes-service-endpoints 作业探测那些定义了 prometheus.io/scrape: true 的服务的每个端点,其中包括 node-exporter。因此,在您的配置中,node_cpu_seconds_total 指标肯定来自 kuberenetes-service-endpoints 作业。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-27
        • 1970-01-01
        • 2018-10-15
        • 2021-04-30
        • 2021-05-26
        • 2020-02-05
        相关资源
        最近更新 更多