Prometheus适配器-无法从外部指标获取数据

时间:2020-08-12 18:47:58

标签: kubernetes rabbitmq prometheus kubernetes-helm

我无法通过运行以下命令来获取项目:kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/rabbitmq_queue_messages_ready" | jq

您将在下面的输出项中看到一个空数组:

{
  "kind": "ExternalMetricValueList",
  "apiVersion": "external.metrics.k8s.io/v1beta1",
  "metadata": {
    "selfLink": "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/rabbitmq_queue_messages_ready"
  },
  "items": []
}

但是,我在Prometheus端点中获得了正确的数据: 普罗米修斯网址:http:// :9090 / api / v1 / series?match%5B%5D =%7B__name __%3D〜%22%5Erabbitmq_queue _。%2A%22%7D&start = 1597255421.51 响应:

{
"status":"success",
"data":[
    {
        "__name__":"rabbitmq_queue_messages_ready",
        "app":"prometheus-rabbitmq-exporter",
        "durable":"true",
        "instance":"10.2.0.73:9419",
        "job":"kubernetes-pods",
        "namespace":"default",
        "pod_name":"rabbitmq-exporter-prometheus-rabbitmq-exporter-754c845847-gzlrq",
        "pod_template_hash":"754c845847",
        "queue":"test",
        "release":"rabbitmq-exporter",
        "vhost":"/"
    },
    {
        "__name__":"rabbitmq_queue_messages_ready",
        "app":"prometheus-rabbitmq-exporter",
        "durable":"true",
        "instance":"10.2.0.73:9419",
        "job":"kubernetes-pods",
        "namespace":"default",
        "pod_name":"rabbitmq-exporter-prometheus-rabbitmq-exporter-754c845847-gzlrq",
        "pod_template_hash":"754c845847",
        "queue":"test1",
        "release":"rabbitmq-exporter",
        "vhost":"/"
    }
]
}

我使用以下头盔值安装了stable/prometheus-adapter

rules:
  default: false
  external:
    - seriesQuery: '{__name__=~"^rabbitmq_queue_.*"}'
      resources:
        #template: <<.Resource>>
        overrides:
          namespace:
            resource: namespace
          service:
            resource: service
          pod:
            resource: pod
      name:
        matches: ""
        as: "rabbitmq_queue_messages_ready"
      metricsQuery: 'rate(<<.Series>>{<<.LabelMatchers>>}[1m])'

Helm和Kubernetes的版本

客户端:&version.Version {SemVer:“ v2.16.9”,GitCommit:“ 8ad7037828e5a0fca1009dabe290130da6368e39”,​​GitTreeState:“ clean”} 服务器:&version.Version {SemVer:“ v2.16.7”,GitCommit:“ 5f2584fd3d35552c4af26036f0c464191287986b”,GitTreeState:“ clean”}

客户端版本:version.Info {主要:“ 1”,次要:“ 16”,GitVersion:“ v1.16.1”,GitCommit:“ d647ddbd755faf07169599a625faf302ffc34458”,GitTreeState:“干净”,构建日期:“ 2019-10-02T17 :01:15Z“,GoVersion:” go1.12.10“,编译器:” gc“,平台:” darwin / amd64“} 服务器版本:version.Info {主要:“ 1”,次要:“ 15”,GitVersion:“ v1.15.11”,GitCommit:“ ec831747a3a5896dbdf53f259eafea2a2595217c”,GitTreeState:“干净”,构建日期:“ 2020-05-29T19:56: 10Z”,GoVersion:“ go1.12.17”,编译器:“ gc”,平台:“ linux / amd64”}

预期结果: 它应该从Prometheus获取指标

如何复制: 使用上述配置安装stable/prometheus-rabbitmq-exporterstable/prometheus-adapter舵图。

我正在遵循本指南:https://nuvalence.io/building-a-k8s-autoscaler-with-custom-metrics/

1 个答案:

答案 0 :(得分:2)

首先要进一步解决您的问题,我会在舞会适配器设置中检查几件事:

  1. 使用"kubectl get --raw ..."命令直接获取指标时,您在Prometheus适配器日志中是否看到任何错误?
  2. 您已将prometheus-adapter安装到哪个命名空间? (询问,因为当我将其部署到“ kube-system”以外的另一个ns时,我曾经在适配器日志中观察到RBAC相关的错误)
  3. 能否请您粘贴最终的“ prom-adapter” /etc/adapter/config.yaml配置的内容(来自prom-adapter的Pod)

我正在使用适配器公开相同的外部Rabbitmq指标,没有任何问题,请检查同一命令的输出:

{
  "kind": "ExternalMetricValueList",
  "apiVersion": "external.metrics.k8s.io/v1beta1",
  "metadata": {
    "selfLink": "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/rabbitmq_queue_messages_ready"
  },
  "items": [
    {
      "metricName": "rabbitmq_queue_messages_ready",
      "metricLabels": {
        "endpoint": "metrics",
        "instance": "10.64.1.97:9419",
        "job": "rabbitmq",
        "namespace": "default",
        "pod": "rabbitmq-0",
        "service": "rabbitmq"
      },
      "timestamp": "2020-08-13T23:50:29Z",
      "value": "174160m"
    }
  ]
}

使用的舞会适配器版本directxman12/k8s-prometheus-adapter-amd64:v0.6.0

///使用社区Wiki帖子以提高清晰度(代码段格式等)