Разработка и эксплуатация

Инструменты для логов и наблюдаемости

Отладка по логам — это чтение форматов, которые никогда не рассчитывались на человека: строка лога доступа Nginx с собственным log_format, сообщение syslog по RFC 5424 с полем PRI, кодирующим facility и severity вместе, stack trace на языке, с которым обычно не работаешь, или заголовок traceparent, который сначала нужно убедиться, что он вообще корректно оформлен. Эти инструменты раскладывают такой текст на понятные поля.

Подбирайте парсер под источник: анализатор логов доступа читает логи Nginx и Apache вместе с кастомными форматами, анализатор логов AWS сам определяет вид логов CloudFront и ALB, а парсер syslog разбивает сообщения RFC 3164 и RFC 5424 на PRI, facility и severity. Для отладки, а не сбора данных, форматирование stack trace раскладывает кадры для JS, Python, Java, Go, C# и Rust, парсер traceparent проверяет заголовки W3C Trace Context, а форматирование PromQL проверяет синтаксис запроса и совпадения с метриками Prometheus без запущенного Prometheus.

8 инструментов

Вопросы об инструментах категории «Logs & Observability»

Что означают поля значения PRI в syslog?

Значение PRI в начале сообщения syslog — это одно число, в котором вместе закодированы facility и severity, вычисляемые как facility, умноженное на 8, плюс severity. Парсер syslog разбирает сообщения RFC 3164 и RFC 5424 и сразу показывает декодированные facility и severity.

Как проверить корректность заголовка traceparent?

Валидный заголовок traceparent W3C Trace Context содержит версию, 16-байтовый trace ID, 8-байтовый parent ID и флаги в строго заданном hex-формате, и одно поле неверной длины ломает передачу трассировки. Парсер traceparent декодирует заголовок и проверяет его на соответствие формату W3C Trace Context.

Можно ли проверить запрос PromQL без запущенного Prometheus?

Да, синтаксис и логика векторных селекторов не требуют живого бэкенда с метриками для проверки. Форматирование PromQL проверяет синтаксис PromQL и позволяет протестировать векторные селекторы локально, что ловит ошибки до того, как запрос уйдёт на настоящий сервер Prometheus.