Категория: С++

Как подготовить логи logme для ELK, Loki, OpenSearch и Splunk

Подготовка логов для ELK, Loki, OpenSearch или Splunk начинается не с выбора агента и не с написания parser-а. Сначала нужно решить, каким является один логический event, какие поля должны быть стабильными, где находится время события и как файл будет жить после rotation. Самая частая ошибка — считать, что достаточно включить JSON. JSON сам по себе

Crash logging в C++

Почему обычный логгер не всегда можно вызвать из signal handler Когда C++ приложение падает, первое желание разработчика — записать последнее сообщение в лог. Например: “received SIGABRT”, “segmentation fault”, “fatal check failed”, “terminating process”. На первый взгляд это выглядит просто: раз в проекте уже есть логгер, надо вызвать его из signal handler или crash handler и

Как не утонуть в одинаковых ошибках: CollapseXXX в logme

Одинаковые ошибки в логах — одна из самых неприятных проблем production-диагностики. Иногда проблема не в том, что логов мало, а в том, что их слишком много. Когда ошибка повторяется в цикле, на каждом reconnect-е, на каждом retry или на каждом запросе, лог быстро превращается в поток почти одинаковых строк. Например, внешний backend стал недоступен, а

Управление логированием без перезапуска

Управление логированием без перезапуска особенно важно для production-сервисов. Подробные debug-логи очень нужны именно тогда, когда что-то пошло не так, но держать их включенными постоянно обычно нельзя. Они создают шум, увеличивают объем файлов, могут замедлять горячие участки кода и иногда раскрывают детали, которые не должны постоянно попадать в лог. Самый простой подход — поменять конфиг и