Prometheus + Kubernetes指标来自错误的抓取工作

时间:2018-08-24 01:25:53

标签: kubernetes prometheus

我使用图表的默认值(包括图表的默认prometheus helm chart)通过scrape_configs部署了Prometheus服务器(+ kube状态指标+节点导出器+ Alertmanager)。问题是我希望某些指标来自一项特定的工作,而并非来自另一项工作。

例如,node_cpu_seconds_total作业提供了kubernetes-service-endpoints,但我希望它来自kubernetes-nodes作业,即node-exporter。返回的指标值是准确的,但是问题是我没有通常来自kubernetes-nodes的标签(因为kubernetes-nodes的{​​{1}}与role: node 1}}。我需要这些缺少的标签来进行高级查询和信息中心。

role: endpoint的输出:

kubernetes-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,因此up被废弃了。

我还手动验证了storage_operation_errors_totalnode-exporter具有此特定指标node-exporter并得出了结果。

工作单定义重要吗?如果一个作业具有相同的名称,是否会覆盖另一个作业的度量?我应该删除node_cpu_seconds_total工作的指标吗?我是Prometheus的新手,所以感谢您提供任何详细的帮助。

2 个答案:

答案 0 :(得分:2)

通过导航到Prometheus服务发现状态UI页面,我能够弄清楚如何添加“缺失”标签。此页面显示了可以通过relabel_configs处理和保留的所有“发现的标签”。处理/保留的内容显示在“目标标签”下的“发现的标签”旁边。因此,仅需修改kubernetes-service-endpoints中的scrape_configs作业配置,以便添加更多标签标签。以下正是我在图表的scrape_configs中所做的更改。使用此新配置,如果度量标准还没有将namespaceservicepodnode添加到所有度量标准(请参阅{{1} }。

honor_labels

答案 1 :(得分:0)

从scrape配置中,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作业。