问题描述
我们通过 API 网关公开了多个 API,并使用客户从平台获取的 API 密钥对其进行保护。我们目前使用 Prometheus 从 API 网关收集指标,例如 number of requests
、request duration
等。这一切正常。
我现在想要的是获取每个客户(或每个 API 密钥)的见解,例如
等等,这是为了深入了解我们的 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 (将#修改为@)