Высокочастотные метрики в PHP с TCP-сокетамиЗдесь описывается решение для высокочастотного логирования в среде с большим количеством запросов на сервере, использующем PHP. В
статье объясняется, как отслеживать метрики производительности, такие как API и запросы к базе данных, с минимальным влиянием на работу системы.
Структура логирования: Приводится стандартизированная запись логов, где указывается название метрики, тип, значение и продолжительность выполнения.
Примеры логирования:🔸API-запросы.
🔸SQL-запросы.
🔸Логирование файла и строки вызова через debug_backtrace.
Логирование через TCP сокет: Предпочтительно отправлять логи напрямую в агрегатор через TCP-сокет, а не сохранять их. Используется формат NDJSON для передачи данных, а метрики агрегируются с помощью инструментов, таких как Prometheus.
Минимизация нагрузки: Описаны методы минимизации влияния логирования на систему:
✔️Логирование должно потреблять минимальные ресурсы (RAM, CPU, диск, сеть).
✔️Логирование можно включать/выключать без перезагрузки сервера.
✔️Логирование должно корректно работать даже в случае недоступности сервера для логов.
Метод обработки трех возможных состояний TCP-порта: Порт может быть открыт, закрыт или заблокирован брандмауэром, и система должна обрабатывать эти случаи без блокировки приложения.