Назад | Перейти на главную страницу

Базовое измерение HTTP-трафика по URI и настраиваемым заголовкам

В настоящее время я работаю над службой API, и одно из требований состоит в том, чтобы мы измеряли объем данных, используемых каждым пользователем системы, и отслеживали, сколько раз они используют API. Итак, использование полосы пропускания и статистика того, к каким частям API они обращаются и как часто.

Эти пользователи получают доступ к API с помощью специального Authorization HTTP-заголовок с их уникальным токеном.

Один из способов сделать это - реализовать эти измерения в коде API, однако, поскольку веб-сервер сжимает все ответы, объекты JSON, которые мы измеряем в коде, будут намного меньше с точки зрения использования полосы пропускания при отправке клиенту.

Мне было интересно, существуют ли существующие инструменты (Linux), которые мы могли бы использовать для отслеживания этого трафика и разбиения его с помощью уникального HTTP-заголовка? Я бегло рассмотрел несколько инструментов, а именно ntopng и PRTG, но они, похоже, больше ориентированы на мониторинг в реальном времени (с возможностью хранения исторической записи) и, похоже, не могут разделить статистику на основе заголовков HTTP.

Итак, меня интересуют несколько вещей:

(А) Как лучше всего выполнить эту задачу? (внутренний код или внешний инструмент мониторинга)

(В) Существуют ли какие-либо существующие инструменты, которые могут с этим справиться?

(С) Есть ли какие-то другие способы сделать это, о которых я не знаю?

Кажется, это очень распространенная проблема, поэтому я надеялся, что уже есть что-то, что мы могли бы настроить. Приветствуется любое понимание.

Я бы сказал, что вам лучше всего будет пропускать трафик через какую-нибудь службу обратного прокси, которая может предложить эту возможность. Вероятно, вы могли бы легко добиться этого, используя ACL и счетчики в haproxy.