首页 > 解决方案 > 将指标从具有多个 docker 容器的多个 VM 推送到 Grafana Cloud

问题描述

我有一个基于云的多虚拟机设置,具有相同服务的多个 docker 容器。

在每个 VM 上,一个 nginx 容器充当反向代理,以在服务容器之间进行负载平衡并充分利用 VM 资源。

这是一个 node.js 服务,我在应用程序中集成了 Prometheus 指标,并在container-ip:portXYZ/metrics 发出指标。如果我在主机上进行 sshed 时卷曲,我可以看到我发出的自定义指标。

在应用程序代码中使用以下包生成自定义指标

https://github.com/willsoto/nestjs-prometheus

https://github.com/siimon/prom-client

我还在虚拟机上设置了 Grafana 代理(Linux 集成),目前能够在 Grafana Cloud 中查看主机级别的指标。我认为代理使它们可用@host :12345/metrics

回到自定义指标,如果查询 api enpoint 即api.org.com/metrics,它会从多个 VM 中的任何一个容器返回指标。

如何将这些自定义指标整理到每个主机级别并推送到 Grafana 云?

因此,如果我选择一个 VM,我应该能够看到所有容器中的整理数据。

标签: node.jsdockerprometheusgrafana

解决方案


推荐阅读