Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
普罗米修斯+;Kubernetes度量来自错误的刮削作业_Kubernetes_Prometheus - Fatal编程技术网

普罗米修斯+;Kubernetes度量来自错误的刮削作业

普罗米修斯+;Kubernetes度量来自错误的刮削作业,kubernetes,prometheus,Kubernetes,Prometheus,我通过使用图表的默认值(包括图表的默认值)部署了prometheus服务器(+kube state metrics+节点导出器+alertmanager)。问题是,我期望某些指标来自于某个特定的工作,而不是来自另一个工作 例如,kubernetes服务端点作业提供了node\u cpu\u seconds\u total,但我希望它来自kubernetes节点作业,即节点导出器。返回的度量值是准确的,但问题是我没有通常来自kubernetes节点的标签(由于kubernetes节点作业对kube

我通过使用图表的默认值(包括图表的默认值)部署了prometheus服务器(+kube state metrics+节点导出器+alertmanager)。问题是,我期望某些指标来自于某个特定的工作,而不是来自另一个工作

例如,
kubernetes服务端点
作业提供了
node\u cpu\u seconds\u total
,但我希望它来自
kubernetes节点
作业,即
节点导出器
。返回的度量值是准确的,但问题是我没有通常来自
kubernetes节点的标签
(由于
kubernetes节点
作业对
kubernetes服务端点
具有
role:node
vs
role:endpoint
。我需要这些缺少的标签用于高级查询+仪表板

节点cpu秒数总计{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节点
度量,例如
up
storage\u operation\u errors\u total
因此
节点导出器
正在被删除

我还手动验证了
node exporter
具有此特定度量,
node\u cpu\u seconds\u total
,具有
curl:9100/metrics | grep node\u cpu
,并且它具有结果


作业顺序定义是否重要?如果一个作业具有相同的名称,是否会覆盖另一个作业的指标?我是否应该删除
kubernetes服务终结点
作业的指标?我是普罗米修斯的新手,因此非常感谢任何详细的帮助。

从scrape配置中,kubernetes节点作业探测
https://kubernetes.default.svc:443/api/v1/nodes/${node_name}/proxy/metrics
,而kubernetes service endpoints作业使用定义的
prometheus.io/scrap:true
探测这些服务的每个端点,其中包括节点导出器。因此,在您的配置中,节点cpu秒数的总度量肯定来自kubernetes service endpoints作业。

我能够找到如何添加导航到prometheus service discovery status UI页面可显示“丢失”标签。此页面显示可通过relabel_configs处理和保留的所有“已发现标签”。处理/保留的内容显示在“目标标签”下的“已发现标签”旁边"因此,接下来只需修改
scrape_configs
中的
kubernetes服务端点
作业配置,我就添加了更多的taget标签。下面就是我在图表的
scrape_configs
中所做的更改。通过这个新配置,我获得了
名称空间
服务
pod
,以及
节点de>添加到所有指标中,如果该指标尚未包含它们(请参见
荣誉标签

       - 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