Укажите имена полей Metricbeat Prometheus

Я запускаю свое приложение и metricbeat на K8s. В моем приложении есть конечная точка, которая экспортирует метрики prometheus, а metricbeat может собирать метрики и добавлять их в эластичный.

Проблема в том, что для данного документа, который делает его эластичным, к имени поля добавляется пространство имен k8. Например, данный документ будет иметь поле с именем prometheus.my-namespace-1.runtime_memory_max_heap.value.

Это создает проблему, поскольку это означает, что каждое приложение, которое я добавляю в свой кластер, будет принудительно переиндексировать Kibana, чтобы определить тип поля. Кроме того, это означает, что я не могу создать общую информационную панель для своих показателей, а затем фильтровать пространства имен, потому что каждое приложение имеет собственные имена полей.

Я бы хотел, чтобы имя поля называлось просто prometheus.runtime_memory_max_heap.value


person ssc327    schedule 19.09.2019    source источник


Ответы (1)


Как выяснилось, проблема была в моей конфигурации. У меня было следующее:

        config:
          - module: prometheus
            period: 15s
            metricsets: ["collector"]
            enabled: true
            hosts: ["${data.host}:9273"]
            ssl.verification_mode: "none"
            namespace: "${data.kubernetes.namespace}"

Как только я обновил пространство имен, все заработало. Я пытался полностью удалить пространство имен, но это не сработало, поэтому я использовал статическое значение.

        config:
          - module: prometheus
            period: 15s
            metricsets: ["collector"]
            enabled: true
            hosts: ["${data.host}:9273"]
            ssl.verification_mode: "none"
            namespace: "metric"
person ssc327    schedule 23.09.2019