我使用图表的默认值(包括图表的默认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_total
和node-exporter
具有此特定指标node-exporter
并得出了结果。
工作单定义重要吗?如果一个作业具有相同的名称,是否会覆盖另一个作业的度量?我应该删除node_cpu_seconds_total
工作的指标吗?我是Prometheus的新手,所以感谢您提供任何详细的帮助。
答案 0 :(得分:2)
通过导航到Prometheus服务发现状态UI页面,我能够弄清楚如何添加“缺失”标签。此页面显示了可以通过relabel_configs处理和保留的所有“发现的标签”。处理/保留的内容显示在“目标标签”下的“发现的标签”旁边。因此,仅需修改kubernetes-service-endpoints
中的scrape_configs
作业配置,以便添加更多标签标签。以下正是我在图表的scrape_configs
中所做的更改。使用此新配置,如果度量标准还没有将namespace
,service
,pod
和node
添加到所有度量标准(请参阅{{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作业。