Измерение HTTP-трафика на основе URI и пользовательских заголовков

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

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

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

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

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

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

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

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

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

1 ответ

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

Другие вопросы по тегам