如何解决每个客户的时间序列指标
我们通过 API 网关公开了多个 API,并使用客户从平台获取的 API 密钥对其进行保护。我们目前使用 Prometheus 从 API 网关收集指标,例如 number of requests
、request duration
等。这一切正常。
我现在想要的是获取每个客户(或每个 API 密钥)的见解,例如
- 每月有多少请求
- 最常用的端点
- 查看是否有大量 5xx 或 4xx 错误代码的 HTTP 响应代码数量
等等,这是为了深入了解我们的 API 的使用方式,以便我们可以根据用户的兴趣采取行动,了解什么是重要的。我们还希望在他们登录时在网络平台的一些漂亮的图表中显示这些数据。
我考虑过使用 Prometheus 以及我们以时间序列方式提供计数器。所以我想添加例如API 密钥作为特定指标的标签。
一个计算成功请求总数的例子:
service_apikey_requests_total{apikey="ABCD",code="200",method="GET",protocol="http",service="my-api"} 10
但是看到这篇文章:https://www.robustperception.io/cardinality-is-key 他们提到了以下行:
需要注意的一些特别事项是使用每个客户的标签来分解指标。当您拥有数十个客户时,这通常可以正常工作,但是当您拥有数百个甚至数千个客户时,这往往不会有好的结果。
但这正是我通过向指标添加 API 密钥所做的。所以我想这不是去这里的方式。
是否有其他解决方案可以通过某种客户 ID(在我的情况下是 API 密钥)来衡量数据,因为时间序列数据库似乎不适合这里?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。