【问题标题】:Showing HTTP Request API latency using the Spring Boot Micrometer metrics使用 Spring Boot Micrometer 指标显示 HTTP 请求 API 延迟
【发布时间】: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_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-measurements, 所以我无法在 InfluxDB 中实现该功能。

我是否需要在 Spring Boot 组件中提供我自己的延迟指标实现,或者他们是我可以实现这一点的更简单方法?

【问题讨论】:

  • 如果您使用 Prometheus 收集数据 - 为什么不使用 Prometheus 存储和处理数据?反之亦然,如果您打算在 Influx 中存储和处理您的数据 - 为什么不直接将其发送给 Influx?
  • 这是我们从集群中的微服务收集指标的常用模式。我们使用 prometheus 从服务中抓取指标并将数据直接导出到 influxdb。我们可以按照您的描述实施,但不会遵循我们的共同模式。
  • 我从你的初始文本中就知道你就是这样使用它的,没有必要重复它。我在问 - 你为什么这样做?看,事实上,你不必要地过度设计了你的解决方案(并且雪上加霜——你试图将产品与两种截然不同的方法结合起来)——这就是你偶然发现这样一个问题的唯一方式和原因。

标签: spring-boot influxdb prometheus micrometer spring-micrometer


【解决方案1】:

您基本上可以在 Kapacitor 中加入您的测量,这是 Influxdata TICK 堆栈的另一个组件。

使用JoinNode 会非常简单,之后可能会使用 Eval 来计算您想要的正确位置。文档中有大量关于它的示例。

尽管问题有所不同:您不必要地过度设计了您的解决方案,而且 - 您正在尝试将两种具有相同目的但使用不同的产品结合起来strong> 接近它。这有多聪明?

你已经在用 Prometheus 刮东西了?美好的!坚持下去,在那里做数学,这很简单。 Grafana 也可以与 Prometheus 一起使用,开箱即用!

您想在 Influx 中保存您的数据(我可以理解,它肯定更高级)? 美好的! Micrometer 可以直接将其发送到 Influx 开箱即用 - 至少有两种方式!

我个人认为没有任何理由去做你想做的事,你能分享一个吗?

【讨论】:

  • 感谢您的建议。我们使用 Prometheus 服务器从不同的服务中提取指标,然后用特定于环境的额外信息(如角色、IP、实例)来装饰它们。等并将它们转发到 InfluxDB。但是正如您所强调的,它们是两种不同的产品,每种产品都有不同的重点。我们的选择是改变我们发送到 InfluxDB 的方式或暂时解决它。
  • 您只需在 Kapacitor 中加入您的点,无需进一步的聚合/计算并将其作为一项测量流回 Influx,您将从 Grafana 查询。除了提供 Kapacitor (尽管安装本身必须非常简单) - 如果您坚持保持当前的工作流程,这似乎是最不痛苦的方式。
猜你喜欢
  • 2020-07-14
  • 2020-12-13
  • 2021-05-07
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 1970-01-01
相关资源
最近更新 更多