В настоящее время я работаю над службой API, и одно из требований состоит в том, чтобы мы измеряли объем данных, используемых каждым пользователем системы, и отслеживали, сколько раз они используют API. Итак, использование полосы пропускания и статистика того, к каким частям API они обращаются и как часто.
Эти пользователи получают доступ к API с помощью специального Authorization
HTTP-заголовок с их уникальным токеном.
Один из способов сделать это - реализовать эти измерения в коде API, однако, поскольку веб-сервер сжимает все ответы, объекты JSON, которые мы измеряем в коде, будут намного меньше с точки зрения использования полосы пропускания при отправке клиенту.
Мне было интересно, существуют ли существующие инструменты (Linux), которые мы могли бы использовать для отслеживания этого трафика и разбиения его с помощью уникального HTTP-заголовка? Я бегло рассмотрел несколько инструментов, а именно ntopng
и PRTG
, но они, похоже, больше ориентированы на мониторинг в реальном времени (с возможностью хранения исторической записи) и, похоже, не могут разделить статистику на основе заголовков HTTP.
Итак, меня интересуют несколько вещей:
(А) Как лучше всего выполнить эту задачу? (внутренний код или внешний инструмент мониторинга)
(В) Существуют ли какие-либо существующие инструменты, которые могут с этим справиться?
(С) Есть ли какие-то другие способы сделать это, о которых я не знаю?
Кажется, это очень распространенная проблема, поэтому я надеялся, что уже есть что-то, что мы могли бы настроить. Приветствуется любое понимание.
Я бы сказал, что вам лучше всего будет пропускать трафик через какую-нибудь службу обратного прокси, которая может предложить эту возможность. Вероятно, вы могли бы легко добиться этого, используя ACL и счетчики в haproxy.