Дашборды Grafana#

Страница описывает назначение дашбордов Grafana и смысл основных панелей. Пороговые значения помогают быстро отличить штатную нагрузку от деградации, но сами по себе не заменяют анализ тренда и корреляцию с соседними метриками.

Шкала оценки#

Приемлемо - метрика в пределах нормы, запас до порога есть, устойчивого тренда роста нет.
Проблема - метрика достигла порога или превысила его, сервис деградирует: растут задержки, ошибки, очереди или потребление ресурса.

Пороги CPU/Memory рассчитываются относительно лимитов pod/VM (requests/limits). Если лимитов нет, ориентиром служат тренды, резкие изменения и связь с пользовательской задержкой, ошибками, рестартами и очередями. Встроенные красные пороги Grafana со значением 80 на некоторых панелях являются визуальным ориентиром и не всегда означают универсальный аварийный порог.

Дашборд: System overview#

Обзорный дашборд для первого анализа состояния системы. Он показывает пользовательскую задержку, доступность маршрута через HAProxy, активность сессий и насыщение базовых ресурсов pod’ов.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Среднее время отклика

Среднее время выполнения RPC на клиенте, сервере и транспортном слое.

Главный индикатор того, что пользовательские операции начали выполняться медленнее. Позволяет понять, где растет задержка: на клиентском RPC, серверной обработке или транспорте.

Устойчиво выше 500 мс, монотонный рост в ходе теста, одновременный рост с CPU, GC, DB wait или сетевым I/O.

Server status

Состояние frontend/backend/server в HAProxy со статусом UP.

Быстро показывает, доступен ли путь до приложения и видит ли балансировщик рабочие бэкенды.

Любой backend/server в DOWN, частые провалы UP, расхождение статуса с фактической нагрузкой.

OOM events

События OOM kill контейнеров в namespace. OOM означает, что контейнер превысил доступную память и был принудительно остановлен ядром.

Помогает отличить деградацию из-за нехватки памяти от обычного роста latency.

Любое значение больше 0 за прогон, серия событий, совпадение с рестартами pod’ов.

Active sessions

Количество активных серверных сессий Global ERP по типу сессии. Активная сессия - открытый пользовательский или служебный контекст на сервере; (не равно одному HTTP-запросу или TCP-соединению)

Показывает фактическую конкурентную нагрузку на серверы приложений и помогает связать нагрузку с CPU, памятью, DB pool и latency.

Резкие скачки или падения при неизменной нагрузке, рост с одновременным ростом DB wait/CPU/latency, падение до нуля при живом трафике.

Container memory usage

Resident Set Size контейнеров: фактически занятая физическая память контейнера.

Нужна для контроля приближения pod’а к memory limit и поиска контейнера, который потребляет память.

> 70% лимита - предупреждение, > 90% или рост без стабилизации - проблема, особенно вместе с OOM/restarts.

VM Used memory

Использование JVM-памяти по pod’ам и типам памяти: heap и non-heap.

Показывает, где растет память приложения: в Java heap, Metaspace, code cache или других областях JVM.

Рост heap без снижения после GC, рост non-heap/Metaspace, приближение к лимитам JVM.

CPU Usage Cores

Потребление CPU контейнерами в ядрах CPU. Значение 1 соответствует загрузке одного ядра.

Помогает понять, упирается ли приложение или инфраструктурный компонент в CPU.

> 85% от CPU limit в течение 5-10 минут, throttling, рост CPU вместе с latency.

Disk Read

Скорость чтения контейнеров с файловой системы, байт/с.

Нужна для поиска pod’ов с интенсивным чтением, например при работе с файлами, логами или временными данными.

Пики или устойчиво высокий I/O, совпадающие с ростом latency, DB wait или ошибками.

Disk Write

Скорость записи контейнеров в файловую систему, байт/с.

Помогает выявить нагрузку от логирования, временных файлов, выгрузок и других операций записи.

Устойчивый рост записи, насыщение диска, рост latency при активной записи.

Pod Network Receive

Входящий сетевой трафик pod’ов, байт/с.

Позволяет найти pod, который получает основной поток данных от клиентов, БД, NFS или брокеров.

Пики при росте latency, признаки насыщения сети, неожиданный трафик у нецелевого pod’а.

Pod Network Transmit

Исходящий сетевой трафик pod’ов, байт/с.

Показывает, какие pod’ы отдают основной объем данных наружу или в соседние сервисы.

Пики при росте latency, ошибки соединений, резкое падение передачи при неизменной нагрузке.

Дашборд: Checklist#

Эксплуатационный чеклист для быстрой проверки базовых условий работоспособности кластера и инфраструктурных компонентов.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Restarts count

Прирост счетчика рестартов контейнеров за последние 5 минут.

Быстро показывает нестабильные pod’ы после OOM, падения приложения, probe failure или ручного перезапуска.

Любой неожиданный рестарт; серия рестартов у одного pod’а.

Component availability

Доступность системных компонентов, NFS volume и scheduler по healthcheck-метрикам.

Дает общий ответ, живы ли ключевые компоненты, от которых зависит работа приложения.

0, DOWN или периодические провалы доступности.

Node availability

Состояние Kubernetes node Ready.

Показывает, доступны ли узлы кластера для запуска pod’ов.

Node не Ready, частые переключения состояния, миграция pod’ов.

Node memory available

Доля доступной памяти на узлах Kubernetes.

Нужна для оценки риска eviction и нехватки памяти на уровне node, даже если отдельный pod еще не достиг лимита.

< 20% свободной памяти, устойчивое снижение.

Node free HDD space

Доля свободного места на файловых системах node.

Предупреждает о риске остановки записи логов, container runtime и временных данных.

< 20% - предупреждение, < 10% - критично.

Container memory usage

Отношение RSS контейнера к заданному memory limit.

Показывает, какие контейнеры приближаются к своему лимиту памяти.

> 80% - предупреждение, > 90% или рост вместе с рестартами - проблема.

HAProxy cert days till expire

Количество дней до истечения TLS-сертификата HAProxy.

Нужна для предотвращения отказа входа пользователей из-за просроченного сертификата.

< 30 дней - требуется плановая замена, < 7 дней - критично.

NFS Volume space used

Процент занятого места на NFS volume.

Показывает запас хранилища для файлов, вложений, обменов и других данных на NFS.

> 80% - предупреждение, > 90% - риск отказа записи.

CoreDNS healthcheck failures

Прирост ошибок healthcheck CoreDNS.

Нужна для диагностики DNS-проблем внутри Kubernetes.

Любой устойчивый рост ошибок, особенно вместе с ошибками подключения к сервисам.

Scheduler keys convergence

Совпадение ключа планировщика в Kubernetes-секрете и в базе данных. 1 - ключи согласованы, 0 - расхождение.

Проверяет условие, без которого планировщик заданий может перестать выполнять задачи.

0 - требуется исправить расхождение ключей.

Systemagent healthcheck

Доступность systemagent по healthcheck.

Показывает, работает ли агент, который участвует в сборе и публикации системных сведений.

0, провалы healthcheck или отсутствие данных.

Pod ephemeral volume used

Отношение занятого ephemeral volume pod’а к лимиту.

Предупреждает о переполнении временного хранилища pod’а.

> 80% - предупреждение, > 90% - высокий риск eviction или ошибок записи.

Дашборд: Database client connections#

Дашборд показывает состояние пулов подключений приложения к БД. Его используют, когда растет latency операций, появляются таймауты или есть подозрение, что приложение ожидает свободное подключение к базе.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Pending requests

Количество запросов приложения, которые ждут свободное подключение из пула.

Показывает очередь внутри пула БД. Если значение больше нуля, часть потоков еще не выполняет SQL, а только ждет connection.

Норма - 0. Значение > 0 дольше 1-2 минут означает насыщение пула или слишком долгую работу запросов.

Connection count

Количество подключений в пуле по состояниям, например used и idle.

Позволяет понять, занят ли пул рабочими запросами или держит свободные соединения.

used > 90% от max, рост used вместе с pending requests и wait time.

Pool wait time

Среднее время ожидания подключения из пула: wait_time_seconds_sum / wait_time_seconds_count. Это время до получения connection, а не время выполнения SQL в БД.

Ключевая метрика насыщения DB pool. Большой wait time означает, что приложение простаивает в очереди за подключением.

< 50 мс - нормально; > 200 мс устойчиво - проблема; рост вместе с pending requests - пул исчерпан.

Connection max / idle min / idle max

Настройки пула: максимальное число подключений и границы количества idle-соединений.

Нужны как база для интерпретации Connection count: без max нельзя понять, насколько заполнен пул.

Самостоятельно не аварийны; проблема возникает, когда фактический used близок к max, а pending/wait растут.

Дашборд: Client server RPC#

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

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Users

Пользователей, по которым есть клиентские RPC-замеры, и суммарный вклад их RPC в длительность.

Служит фильтром и помогает выбрать пользователя с наибольшей задержкой.

Один пользователь резко доминирует по длительности или появляется задержка у многих пользователей сразу.

Selections

Выборки (selection) выбранного пользователя и их вклад в длительность клиентского RPC.

Помогает сузить анализ до конкретной выборки/табличного набора данных.

Одна выборка дает непропорционально большой вклад в задержку.

Client RPC duration

Длительность RPC на стороне клиента по action, kind, operation, form, selection, representation и user.

Показывает пользовательски наблюдаемое время выполнения операции, включая клиентскую часть ожидания.

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

Server RPC duration

Длительность обработки RPC на стороне сервера по тем же измерениям.

Позволяет отделить серверную обработку бизнес-логики от клиентского ожидания и транспортных затрат.

Рост вместе с CPU, GC, DB wait или активными транзакциями указывает на проблему серверной обработки.

Transport RPC duration

Время транспортного слоя RPC: передача, сериализация/десериализация и ожидание ответа между клиентом и сервером.

Нужна для диагностики сетевых задержек и накладных расходов передачи данных.

Рост при стабильной server duration указывает на сеть, размер ответа, сериализацию или клиентский канал.

Дашборд: HTTP Server#

Дашборд HTTP-слоя приложения. Он показывает длительность HTTP-запросов и количество запросов, выполняющихся прямо сейчас.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

HTTP server request duration

Среднюю длительность HTTP-запросов по методу, статусу ответа, route, адресу и порту сервера. Панель показывает average, а не percentile.

Помогает определить, какие HTTP-маршруты отвечают медленнее и с какими статусами.

Рост средней длительности, особенно по одному route или вместе с 5xx/4xx статусами.

HTTP server active requests

Текущее количество HTTP-запросов, находящихся в обработке.

Показывает конкурентную HTTP-нагрузку и возможную очередь на серверном слое.

Рост active requests вместе с latency, CPU, DB wait или падением throughput.

Дашборд: User operations#

Дашборд пользовательских операций в интерфейсе Global ERP. Используется, когда нужно понять, какая форма или операция создает задержку для конкретного пользователя.

Предупреждение

Дашборд временно не работает.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Users

Пользователей, по которым есть телеметрия выполнения операций.

Служит фильтром для анализа проблем конкретного пользователя или группы пользователей.

Один пользователь имеет аномально большой вклад в длительность операций.

Forms

Формы, открытые или используемые выбранным пользователем.

Помогает сузить диагностику до конкретной формы.

Одна форма стабильно дает основную задержку.

Operation execution time

Время выполнения пользовательских операций по форме и пользователю.

Позволяет найти медленную кнопку, действие или сценарий внутри формы.

Рост времени выполнения отдельной операции, пики после релиза или при определенной нагрузке.

Execution count

Счетчик вызовов операций по имени и подписи операции.

Показывает частоту выполнения операции и помогает отличить редкую долгую операцию от массовой.

Неожиданный рост числа вызовов, частые повторы одной операции, рост вместе с latency.

Дашборд: Operation traces#

Дашборд трассировок операций. Он не является дашбордом метрик в строгом смысле: панели работают с trace-данными и помогают перейти от симптома на графике к конкретной трассе выполнения.

Предупреждение

Дашборд временно не работает.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Пользователи в трассах

Пользователей и формы, найденные в trace-данных.

Помогает выбрать пользователя, по которому нужно искать конкретные операции.

Нет данных по проблемному пользователю или видны только неполные traces.

Формы пользователя

Формы, встречающиеся в трассах выбранного пользователя.

Сужает поиск до формы, где воспроизводится задержка.

Проблемная форма отсутствует в traces или имеет мало данных для анализа.

Traces

Список трасс по выбранному пользователю и форме, включая форму, представление и операцию.

Позволяет открыть конкретный trace и посмотреть вложенные span’ы, длительности и ошибки.

Длинные span’ы, ошибки внутри trace, большой разрыв между соседними span’ами.

Trace Explore

Детальный просмотр выбранного trace по traceID.

Нужен для анализа критического пути операции: где именно потрачено время.

Долгий span БД/HTTP/бизнес-логики, ошибки, повторные попытки, большие паузы.

Дашборд: Global Server CPU workload#

Дашборд нагрузки CPU серверов Global ERP и нагрузки сборщиков мусора.

Предупреждение

Панель Нагрузка на сборщики мусора временно не работает.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Использование CPU

Процент использования CPU сервером Global ERP.

Показывает вычислительную нагрузку приложения без детализации по контейнерам.

Устойчиво высокий CPU вместе с ростом latency, очередями, throttling или падением throughput.

Нагрузка на сборщики мусора

Долю нагрузки, связанную с работой GC.

Помогает понять, тратит ли JVM заметную часть времени на очистку памяти вместо выполнения бизнес-операций.

> 70% по панели или устойчивый рост вместе с heap pressure, GC events и latency.

Дашборд: VM memory#

Дашборд JVM-памяти и runtime-метрик. Используется при подозрении на утечку памяти, давление GC, рост числа потоков или нестабильную работу JVM.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

JVM memory limit

Максимальный доступный размер областей памяти JVM по pod, pool и type.

Дает верхнюю границу для интерпретации used/committed.

Низкий limit при росте used, отсутствие ожидаемого лимита.

JVM memory used

Фактически используемая JVM-память по областям heap/non-heap.

Основная метрика потребления памяти Java-приложением.

Used > 85-90% limit, монотонный рост, рост OldGen/Metaspace без стабилизации.

JVM memory committed

Память, уже выделенная JVM у ОС под соответствующую область.

Показывает, сколько памяти JVM зарезервировала, даже если не вся она фактически занята объектами.

Committed близок к limit, рост committed вместе с container memory.

JVM memory usage after last GC

Использование памяти сразу после последней сборки мусора.

Хороший индикатор «живого» набора объектов: если после GC память не освобождается, объектный граф растет.

> 80% устойчиво, монотонный рост после GC - признак утечки или разрастания кэшей.

JVM threads count

Количество JVM-потоков по pod и признаку daemon/non-daemon.

Помогает выявлять утечки потоков, зависшие worker’ы и рост параллелизма.

Устойчивый рост без возврата, рост вместе с CPU, DB wait или активными запросами.

JVM classes current loaded

Количество загруженных классов JVM.

Нужна для контроля Metaspace и поиска classloader-утечек.

Монотонный рост вместе с non-heap/Metaspace.

JVM GC duration

В текущем запросе используется счетчик process_runtime_jvm_gc_duration_seconds_count, поэтому панель фактически показывает частоту событий GC, а не длительность пауз.

Позволяет увидеть, как часто JVM запускает GC.

Резкий рост частоты GC вместе с heap pressure и latency.

JVM CPU utilization ratio

Доля CPU, используемая JVM-процессом. Значение интерпретируется как процентная доля.

Показывает CPU-нагрузку Java-процесса без остальных контейнерных процессов.

Высокое значение вместе с ростом latency или GC workload.

JVM system CPU utilization

Доля CPU, занятая на уровне системы, видимая JVM runtime.

Помогает отличить нагрузку самого приложения от общей перегрузки окружения.

Высокий system CPU при умеренном JVM CPU - возможна перегрузка node или соседних процессов.

Дашборд: Pod HDD read write rate#

Детализация дискового I/O по выбранному pod.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

HDD read rate

Скорость чтения контейнеров выбранного pod’а с файловой системы, байт/с.

Помогает увидеть, какой pod читает много данных: файлы, временные данные, логи, кэши.

Пики или устойчиво высокий read rate вместе с ростом latency.

HDD write rate

Скорость записи контейнеров выбранного pod’а, байт/с.

Нужна для анализа логирования, выгрузок, временных файлов и операций записи.

Высокая запись вместе с заполнением диска, eviction, ростом latency или ошибками записи.

Дашборд: Pod network read write rate#

Детализация сетевого трафика по выбранному pod.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Receive rate

Скорость входящего трафика pod’а, байт/с.

Показывает, сколько данных pod получает от клиентов, БД, NFS, RabbitMQ или других сервисов.

Пики при росте latency, неожиданный входящий трафик, насыщение сетевого канала.

Transmit rate

Скорость исходящего трафика pod’а, байт/с.

Показывает, сколько данных pod передает наружу или соседним сервисам.

Пики, падение передачи при живой нагрузке, рост вместе с ошибками соединений.

Дашборд: Integration telemetry#

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Data errors count

Количество ошибок данных по интеграционному контуру и направлению обмена. Обычно это ошибки формата, обязательных полей, справочников или бизнес-валидации входящих/исходящих данных.

Помогает отличить инфраструктурный сбой от проблем качества интеграционных данных.

Рост счетчика, повторяющиеся ошибки одного контура, ошибки в одном направлении обмена.

Critical errors count

Количество критических ошибок интеграции по контуру и направлению.

Показывает сбои, которые могут остановить обмен или привести к потере/задержке обработки сообщений.

Любой устойчивый рост, повторение критической ошибки, совпадение с падением throughput интеграции.

Дашборд: Ungrouped meters#

Дашборд метрик приложения, которые не вынесены в отдельные специализированные дашборды.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Server Session count

Количество активных серверных сессий по типам.

Позволяет проверить нагрузку на серверные сессии независимо от обзорного дашборда.

Резкие скачки/падения при неизменной нагрузке, рост вместе с latency или DB wait.

Cluster nodes count

Количество узлов кластера приложения Global ERP, известных кластерной подсистеме.

Помогает контролировать, все ли серверные узлы участвуют в кластере приложения.

Неожиданное снижение количества узлов, флаппинг значения.

Active transaction count

Количество активных транзакций приложения.

Показывает, сколько бизнес-транзакций выполняется одновременно.

Рост без снижения, зависшие транзакции, корреляция с DB locks, pool wait и latency.

Дашборд: Logs#

Дашборд журналов приложения. Он помогает перейти от метрик к конкретным сообщениям в Loki.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Количество записей логов по уровням

Число сообщений за интервал по уровням логирования с учетом фильтров pod, app, level и поиска по тексту.

Помогает увидеть всплеск ERROR, WARN или других уровней до просмотра самих сообщений.

Рост ERROR/WARN, всплеск логов вместе с latency или рестартами.

Logs

Сырые сообщения логов выбранных pod’ов и типов логов с текстовым поиском.

Нужны для поиска причины инцидента: stacktrace, таймаут, отказ подключения, ошибка бизнес-операции.

Повторяющиеся ошибки, stacktrace, timeout, connection refused, OOM, probe failure.

Дашборд: Haproxy Logs#

Дашборд журналов HAProxy. Используется для диагностики входящего трафика и ошибок балансировщика.

Показать таблицу

Панель

Что показывает

Зачем нужна

Проблемные признаки

Std Err

Сообщения HAProxy из stderr с фильтром по pod и текстом.

Нужны для поиска ошибок запуска, конфигурации, TLS, DNS и backend checks.

Ошибки конфигурации, TLS, DNS, repeated warnings, сообщения о недоступных backend’ах.

Std Out

Сообщения HAProxy из stdout с фильтром по pod и текстом.

Помогают смотреть штатные access/runtime-сообщения и сопоставлять их с метриками HAProxy.

Коды 5xx/4xx, необычные termination state, рост времени обработки, повторяющиеся отказы.

Дашборд: HAProxy#

HAProxy-дашборд содержит много низкоуровневых панелей экспортера. В эксплуатационной документации важны не все панели по отдельности, а группы сигналов, которые помогают понять: принимает ли HAProxy трафик, доступны ли backend’ы, растут ли ошибки, очереди и задержки.

Показать таблицу

Группа панелей

Что показывает

Зачем нужна

Проблемные признаки

HTTP response / request, Front/Back/Server HTTP responses

Скорость HTTP-запросов и ответов по frontend, backend, server и кодам ответа.

Проверяет, проходит ли трафик через балансировщик и какие статусы возвращаются пользователям.

Рост 5xx, падение request/response rate при неизменной внешней нагрузке, несоответствие frontend и backend rate.

Request/response denied, request errors, response errors

Отказы и ошибки запросов/ответов на frontend/backend/server.

Показывает, что HAProxy или backend отклоняет часть трафика.

Любой устойчивый рост denied/errors, особенно вместе с 5xx или падением throughput.

Status UP, Front/Back/Server Status

Текущий статус frontend, backend и server.

Главная проверка доступности маршрута до приложений.

Любой backend/server в DOWN, частые UP/DOWN-переходы.

UP->DOWN transitions, check failures, check duration

Переходы backend/server в DOWN, ошибки и длительность healthcheck.

Нужны для диагностики нестабильных backend’ов и сетевых проблем между HAProxy и приложением.

Рост transitions/failures, увеличение check duration, флаппинг backend’ов.

Sessions, current sessions, session usage, sessions limits

Скорость и текущее количество сессий HAProxy, а также доля использования лимитов.

Показывает конкурентную нагрузку на балансировщик и запас до лимита сессий.

Usage > 70% - предупреждение, > 90% - высокий риск отказов; падение sessions при живом трафике.

Connections, connection attempts/errors, connection limits

Скорость новых соединений, попытки к backend’ам, ошибки соединений и лимиты процесса.

Помогает отличить проблемы установления соединений от проблем обработки запросов.

Рост connection errors, попытки без успешных соединений, приближение current connections к hard max.

Average connection/response/queue/total time

Среднее время установки соединения, ожидания в очереди, ответа backend’а и полное время обработки.

Показывает, где появляется задержка: очередь HAProxy, подключение к backend’у, ответ приложения или общий путь.

Рост queue time - backend не успевает принимать запросы; рост response time - медлит приложение; рост connect time - сеть/backend недоступны.

Data transfer Front/Back/Server

Входящий и исходящий трафик через frontend, backend и отдельные server’ы, бит/с.

Нужен для оценки сетевой нагрузки и поиска перекоса между backend’ами.

Насыщение канала, перекос трафика на один server, падение трафика при живой нагрузке.

Retry, redispatch, aborts

Повторные попытки, перераспределение запросов и обрывы передачи клиентом или сервером.

Показывает нестабильность backend’ов, сетевые обрывы и повторную маршрутизацию.

Любой устойчивый рост retry/redispatch/aborts.

Internal errors, failed header rewrites, failed DNS resolutions

Внутренние ошибки HAProxy, ошибки переписывания заголовков и DNS-resolution.

Диагностирует проблемы конфигурации, правил, DNS и внутренних ресурсов процесса.

Любой устойчивый рост, особенно после изменения конфигурации.

Process memory, runqueue, tasks, idle, uptime, logs

Состояние самого процесса HAProxy: память, очередь задач, idle time, uptime, dropped logs.

Нужны для понимания, не уперся ли сам HAProxy в ресурсы или не перезапускался ли он.

Сброс uptime, рост runqueue/tasks, низкий idle, dropped logs, рост memory без стабилизации.

SSL rate/cache/reuse

Нагрузка TLS, кэш и reuse TLS-сессий.

Важно при публикации через HTTPS на HAProxy: TLS может стать отдельным источником CPU-нагрузки.

Рост SSL rate вместе с CPU, низкий reuse при высокой TLS-нагрузке, достижение SSL limits.