指定 Metricbeat Prometheus 字段名称

Specify Metricbeat Prometheus Field Names

我是 运行 我的应用程序和 K8s 上的 metricbeat。 我的应用程序有一个导出 prometheus 指标的端点,metricbeat 能够获取指标并将它们添加到弹性。

问题在于,对于使其成为弹性的给定文档,字段名称添加了 k8 命名空间。例如,给定的文档将有一个名为 prometheus.my-namespace-1.runtime_memory_max_heap.value

的字段

这会产生一个问题,因为这意味着我添加到我的集群的每个应用程序都会强制在 Kibana 上重建索引以检测字段类型。此外,这意味着我无法为我的指标制作一个通用仪表板,然后在命名空间上进行过滤,因为每个应用程序都有自定义字段名称。

我希望字段名称只被称为 prometheus.runtime_memory_max_heap.value

事实证明问题出在我的配置上。我有以下内容:

        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"