簡體   English   中英

無法從 prometheus-adapter 檢索自定義指標

[英]Unable to retrieve custom metrics from prometheus-adapter

我正在嘗試使用 HPA + 自定義指標擴展在我的樹莓派 kubernetes 集群上運行的應用程序 pod 之一,但遇到了幾個問題,盡管閱讀了https://github.com/DirectXMan12/k8s-prometheus-adapter上的文檔和過去兩天的故障排除,我仍然難以理解為什么會發生一些問題。

首先,我構建了一個與 ARM 兼容的 k8s-prometheus-adapter 映像並使用 helm 安裝它。 我可以通過檢查 pod 日志來確認它是否正常運行。

我還設置了一個腳本,將樹莓派溫度發送到 pushgateway,我可以通過這個 Prometheus 查詢node_temp進行查詢,它將返回以下系列

node_temp{job="kube4"}  42
node_temp{job="kube1"}  44
node_temp{job="kube2"}  39
node_temp{job="kube3"}  40  

現在我希望能夠使用上述溫度值作為實驗來擴展我的一個應用程序吊艙,以更好地了解它是如何工作的。

下面是我的 k8s-prometheus-adapter helm values.yml文件

image:
  repository: jaanhio/k8s-prometheus-adapter-arm
  tag: latest
logLevel: 7
prometheus:
  url: http://10.17.0.12
rules:
  default: false
  custom:
  - seriesQuery: 'etcd_object_counts'
    resources:
      template: <<.Resource>>
    name:
      as: "etcd_object"
    metricsQuery: count(etcd_object_counts)
  - seriesQuery: 'node_temp'
    resources:
      template: <<.Resource>>
    name:
      as: "node_temp"
    metricsQuery: count(node_temp)

通過 helm 安裝后,我運行kubectl get apiservices並可以看到列出的v1beta1.custom.metrics.k8s.io

然后我運行kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq並得到以下

{
  "kind": "APIResourceList",
  "apiVersion": "v1",
  "groupVersion": "custom.metrics.k8s.io/v1beta1",
  "resources": [
    {
      "name": "jobs.batch/node_temp",
      "singularName": "",
      "namespaced": true,
      "kind": "MetricValueList",
      "verbs": [
        "get"
      ]
    },
    {
      "name": "jobs.batch/etcd_object",
      "singularName": "",
      "namespaced": true,
      "kind": "MetricValueList",
      "verbs": [
        "get"
      ]
    },
   ]

然后我嘗試使用kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/jobs/*/node_temp查詢已注冊的 node_temp 指標的值,但得到以下響應Error from server (InternalError): Internal error occurred: unable to list matching resources

問題:

  1. 為什么 node_temp 指標與jobs.batch資源類型相關聯?

  2. 為什么我無法通過kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/jobs/*/node_temp檢索指標的值?

  3. 確定查詢路徑的明確方法是什么? 例如/apis/custom.metrics.k8s.io/v1beta1/jobs/*/node_temp我有點反復試驗,直到我看到一些回應。 我還在查詢中看到了一些其他帶有命名空間的路徑,例如/apis/custom.metrics.k8s.io/v1beta1/namespaces/*/metrics/foo_metrics

任何幫助和建議將不勝感激!

  1. 為什么 node_temp 指標與 jobs.batch 資源類型相關聯?

它選擇附加到普羅米修斯指標的標簽並嘗試解釋它們,在這種情況下,你顯然有“job-kube4”

  1. 為什么我無法通過 kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/jobs/*/node_temp 檢索指標的值?

指標是命名空間的,請參閱“namespaced:true”,因此您需要“/apis/custom.metrics.k8s.io/v1beta1/namespaces/ /jobs/ /node_temp”

  1. 確定查詢路徑的明確方法是什么? 例如 /apis/custom.metrics.k8s.io/v1beta1/jobs/ /node_temp 我有點反復試驗,直到我看到一些回應。 我還在查詢中看到了一些其他帶有命名空間的路徑,例如 /apis/custom.metrics.k8s.io/v1beta1/namespaces/ /metrics/foo_metrics

檢查https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/custom-metrics-api.md#api-paths

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM