Адаптер Prometheus K8S — Метрика Кафки не создана

#kubernetes #apache-kafka #prometheus

Вопрос:

У меня есть кластер K8S, в котором работает K8S v1.17.6, с prometheus и адаптером prometheus, а также сервером пользовательских метрик. Мне удалось реализовать HPA для одной конкретной метрики кафки, которую я беру с сервера Prometheus, но когда я пытаюсь использовать другую метрику, она просто не работает….

Конфигурационная карта для рабочей метрики:

 data:
  config.yaml: |
    externalRules:
- seriesQuery: '{__name__=~"kafka_server_brokertopicmetrics_bytesin_total",topic="nice_name_for_a_topic"}'
      resources:
        overrides:
          namespace:
            resource: namespace
          pod:
            resource: pod
      name:
        matches: "^(.*)_total"
        as: "${1}_cool_name"
      metricsQuery: 'sum without(instance)(rate(kafka_server_brokertopicmetrics_bytesin_total{job="kafka-brokers-Lalala",topic="nice_name_for_a_topic"}[5m]))'
 

Я могу видеть эту метрику на сервере api пользовательских метрик:

 {
  "kind": "APIResourceList",
  "apiVersion": "v1",
  "groupVersion": "external.metrics.k8s.io/v1beta1",
  "resources": [
    {
      "name": "kafka_server_brokertopicmetrics_bytesin_cool_name",
      "singularName": "",
      "namespaced": true,
      "kind": "ExternalMetricValueList",
      "verbs": [
        "get"
      ]
    }
}
 

Что касается следующей конфигурации, я ничего не получаю…. независимо от того, как я играю с синтаксисом:

 data:
  config.yaml: |
    externalRules:
    - seriesQuery: '{__name__=~"kafka_consumergroup_lag",topic="nice_name_for_a_topic"}'
      resources:
        overrides:
          namespace: {resource: "namespace"}
          pod: {resource: "pod"}
      name:
        matches: ""
        as: "laglaglag"
      metricsQuery: 'sum by(topic) (kafka_consumergroup_lag{cluster_name="Lalala",group="barcelona",topic="nice_name_for_a_topic"})'
 

Важно: запрос metricsQuery работает, когда я выполняю его на сервере Prometheus

пожалуйста, помогите, я обыскал всю сеть…..

Также в журнале пользовательского сервера-метрик-apiserver я вижу эту строку:

 I0702 11:26:15.224834 1 api.go:74] GET http://11.11.11.111:9090/api/v1/series?match[]={__name__=~"kafka_consumergroup_lag",topic=%nice_name_for_a_topic"}amp;start=1625225115.222 200 OK
I0702 11:26:15.224974 1 api.go:93] Response Body: {"status":"success","data":[]}