我有一个包含多个实例的集群服务,我的 REST 客户端正在通过 Micrometer 的摘要收集请求持续时间(在我的例子中称为 http_rest_call_time_bucket)。
我想知道如何显示图表,该图表将为集群中的每个请求路径显示百分位数 0.9 并计算它们的百分位数。这可能吗?
到目前为止我有以下疑问:
histogram_quantile(0.9, sum by(le, method, url) ( rate(http_rest_call_time_bucket{}[5m])))
但是,我不能 100% 确定正确性,因为我的集群当前没有提供太多数据来验证。我可以放弃实例并只关注 le、方法、url 吗?
我想知道如何显示图表,该图表将为集群中的每个请求路径显示百分位数 0.9 并计算它们的百分位数。这可能吗?
是的,是的。您需要按 uri 聚合并计算百分位数。此外,您还可以创建热图。这是一个兼具这两种功能的示例项目:https://github.com/jonatan-ivanov/teahouse
tea-api.json
,示例查询可能如下所示(通过 uri 应用):
histogram_quantile(0.99, sum(rate(http_server_requests_seconds_bucket{application=~\"$application\", uri=~\"$uri\"}[$__rate_interval])) by (le))
您可以在本次会议演讲中看到它的实际应用:https://www.youtube.com/watch?v=HQHuFnKvk_U&t=39m2s (我建议观看整个演讲。)
另请确保您的 uri 已模板化,并且不使用原始 url,以免遇到高基数问题:https://develotters.com/posts/high-cardinality/