Возникла необходимость в написании собственной программы обработки лога (access.log) SQUID-а, в связи с чем хотелось бы обговорить и уточнить у общественности несколько принципиальных моментов, а именно.
Нужно разделить запросы пользователей, дабы считать только реальный входящий трафик, ориентируясь при этом на Squid result codes в строке запроса, при нахождении запрашиваемого пользователем объекта в кэше и при обращении за ним к первоисточнику на сайт.
Как я понимаю, при получении данных из кэша мы ориентируемся на следующие result codes в строке:
TCP_HIT
TCP_IMS_HIT
TCP_MEM_HIT
TCP_REFRESH_HIT (не уверен на счет этого, т.к. запрос то к первоисточнику производится все равно, значит все же какие-то данные о "304 Not Modified" получаются, хотя сам объект берется из кэша)
Записи с вышеперечисленными result codes при подсчете не будут учитываться, вернее будут учитываться как эффективность кэша, а не входящий трафик пользователей. Может в этот список еще нужно добавить некие result codes, типа TCP_NEGATIVE_HIT и TCP_OFFLINE_HIT, что скажете?
Result codes вида:
NONE
TCP_DENIED
не учитываются при подсчете трафика (либо TCP_DENIED выбирается для анализа попыток доступа пользователей к запрещенным ресурсам).
Все же остальное считается как входящий трафик пользователей. Нужно ли отслеживать Request methods, то есть GET, HEAD, POST, OPTIONS, CONNECT, если отправку данных через SQUID у нас никто не осуществляет.