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