【发布时间】:2018-12-14 10:07:13
【问题描述】:
我们使用 Prometheus 来抓取 Spring Boot 2.0.0 指标,然后将它们保存在 InfluxDB 中。 然后我们使用 Grafana 从 InfluxDB 可视化它们。
我们的千分尺依赖是
-
micrometer-core micrometer-registry-prometheus
我希望能够显示我们的 REST API 的延迟指标。
从我们的 Prometheus 抓取工具中,我可以看到这些指标是针对 HTTP 请求生成的。
http_server_requests_seconds_counthttp_server_requests_seconds_sumhttp_server_requests_seconds_max
我从千分尺文档https://micrometer.io/docs/concepts#_client_side 了解到,延迟可以通过结合上述生成的两个指标来完成:totalTime / count。
但是我们的数据源是 InfluxDB,它不支持组合测量,https://docs.influxdata.com/influxdb/v1.7/troubleshooting/frequently-asked-questions/#how-do-i-query-data-across-measurements, 所以我无法在 InfluxDB 中实现该功能。
我是否需要在 Spring Boot 组件中提供我自己的延迟指标实现,或者他们是我可以实现这一点的更简单方法?
【问题讨论】:
-
如果您使用 Prometheus 收集数据 - 为什么不使用 Prometheus 存储和处理数据?反之亦然,如果您打算在 Influx 中存储和处理您的数据 - 为什么不直接将其发送给 Influx?
-
这是我们从集群中的微服务收集指标的常用模式。我们使用 prometheus 从服务中抓取指标并将数据直接导出到 influxdb。我们可以按照您的描述实施,但不会遵循我们的共同模式。
-
我从你的初始文本中就知道你就是这样使用它的,没有必要重复它。我在问 - 你为什么这样做?看,事实上,你不必要地过度设计了你的解决方案(并且雪上加霜——你试图将产品与两种截然不同的方法结合起来)——这就是你偶然发现这样一个问题的唯一方式和原因。
标签: spring-boot influxdb prometheus micrometer spring-micrometer