«Выдайте каждому пользователю десять гигабайт» звучит точно, пока два отчёта не разойдутся. Один суммировал ответы, отправленные клиентам; другой считал байты, полученные от вышестоящего сервера. Оба могут правильно сообщать выбранное поле.

Формат журнала Squid содержит отдельные счётчики:

ПолеДокументированное измерение
%<stОбщий трафик ответов, отправленных клиенту, после адаптации
%>stОбщий размер запроса, полученного от клиента, без байтов блочного кодирования
%<bsБайты тела сообщения в эквиваленте HTTP, полученные от следующего узла, с документированными исключениями

Столбец bytes в собственном журнале Squid использует счётчик ответов клиенту. Это не обещание, что значение равно длине сохранённого файла, и не измерение каждого байта Ethernet или IP, за который берёт плату провайдер.

Попадания в кэш показывают разницу: Squid может отправить ответ, не делая свежего запроса к вышестоящему серверу. Работа с большой отдачей показывает другое: если считать только ответы, направление запросов остаётся вне бюджета.

Для CONNECT прокси может учитывать переданный трафик, не разбирая каждый зашифрованный файл или страницу внутри туннеля. Он не может превратить суммарные байты туннеля в точную опись загруженных объектов приложения.

Запишите контракт квоты рядом со счётчиком: направление, точка наблюдения, учётный период и идентификатор. Затем храните версию формата журнала вместе с отчётами. Разногласие о том, что означает байт, не следует «исправлять», умножая каждое значение на угаданный поправочный коэффициент. Для применения итоги завершённых транзакций могут отставать от текущего использования.

Похожие статьи