我目前正在开发一个 API 服务,其中一个要求是,我们需要测量系统每个用户使用的数据量,并跟踪他们使用 API 的次数。因此,我们需要统计带宽使用情况,以及他们访问 API 的哪些部分以及访问频率。
这些用户访问 API 的方式是使用Authorization
带有其唯一令牌的特殊 HTTP 标头。
其中一种方法是在 API 代码中实现这些测量,但是由于 Web 服务器会压缩所有响应,因此我们在代码中测量的 JSON 对象在发送到客户端时所占用的带宽会小得多。
我想知道是否有现有的工具(Linux)可用于监控此流量并使用唯一的 HTTP 标头将其分解?我粗略地浏览了一些工具,即ntopng
和PRTG
,但这些工具似乎更适合实时监控(具有存储历史记录的选项),并且似乎无法根据 HTTP 标头拆分统计数据。
因此,我想知道以下几件事:
(A)完成这项任务的最佳方法是什么?(内部代码或外部监控工具)
(二)是否有任何现有的工具可以解决这个问题?
(C)还有其他我不知道的解决此问题的方法吗?
似乎这是一个很常见的问题,所以我希望已经有了可以设置的方案。任何见解都将不胜感激。
答案1
我认为最好的选择是通过可以提供此功能的某些反向代理服务传递流量。使用 haproxy 中的 ACL 和计数器可能可以轻松实现这一点。