spring-boot - 使用 Spring Boot Micrometer 指标显示 HTTP 请求 API 延迟
问题描述
我们使用 Prometheus 来抓取 Spring Boot 2.0.0 的指标,然后将它们保存在 InfluxDB 中。然后我们使用 Grafana 从 InfluxDB 可视化它们。
我们的千分尺依赖是
micrometer-core
micrometer-registry-prometheus
我希望能够显示我们的 REST API 的延迟指标。
从我们的 Prometheus scraper 中,我可以看到这些指标是为 HTTP 请求生成的。
http_server_requests_seconds_count
http_server_requests_seconds_sum
http_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-测量,所以我无法在 InfluxDB 中实现该功能。
我是否需要在 Spring Boot 组件中提供我自己的此延迟指标的实现,或者他们是我可以实现此目标的更简单方法?
解决方案
您基本上可以在 Kapacitor 中加入您的测量,这是 Influxdata TICK 堆栈的另一个组件。
使用JoinNode将非常简单,可能后跟 Eval 来计算您想要的正确位置。在文档中有大量的例子。
尽管那里的问题有所不同:您不必要地过度设计了您的解决方案,而且 - 您正在尝试组合两种具有相同目的但使用不同方法的产品。这有多聪明?
你已经在用普罗米修斯刮东西了?美好的!坚持下去,在那里做数学,这很简单。Grafana 也可以与 Prometheus 一起使用,开箱即用!
你想把你的数据放在 Influx 中(我可以理解,它肯定更先进)?美好的!千分尺可以直接将其发送到 Influx 开箱即用 - 至少有两种方式!
我个人认为没有任何理由去做你想做的事,你能分享一个吗?
推荐阅读
- math - 给定二维空间中的一组线,如何截断它们以使其在范围内?
- firebase - Firestore 请求时间。toMillis() 不返回以毫秒为单位的数字
- php - 使用 Zend_Barcode 生成条形码,而不是在 PDF 中打印
- node.js - JSON 的吸气剂
- android - 加速度计,计算 1 米
- vba - Wscript.Quit 在 VBA 中给出错误 424 for word
- javascript - 如何选择带空格的json响应项
- r - 具有离散因变量和连续自变量的多元线性回归建模
- java - Java - 在新窗口/标签中转到新网址
- c# - 无论如何可以访问另一个类中的变量吗?