Наблюдаемость

Где хранить логи: Loki vs OpenSearch vs VictoriaLogs

Где хранить логи: Loki vs OpenSearch vs VictoriaLogs

Три бэкенда логов — три разные философии индексации, а не три похожих продукта. Loki индексирует только метки и сканирует тело brute-force; OpenSearch строит полнотекстовый инвертированный индекс на всё; VictoriaLogs хранит колоночно и индексирует поля экономно. Отсюда всё расходится: стоимость хранения, язык запросов (LogQL/DSL/LogsQL), ловушки кардинальности, операционная сложность. Разбираем один и тот же запрос на трёх языках, цену каждого подхода и когда что выбирать

Кардинальность и стоимость телеметрии: wide events, сэмплинг, бюджет

Кардинальность и стоимость телеметрии: wide events, сэмплинг, бюджет

Наблюдаемость незаметно становится одной из самых дорогих статей инфраструктуры: один label с user_id взрывает кардинальность метрик, debug-логи растут гигабайтами, трейсы пишутся на 100%. Откуда берётся стоимость каждого столпа, как её резать без потери сигнала (сэмплинг, агрегация, дропы в пайплайне), и почему wide events («observability 2.0») меняют компромисс между кардинальностью и пользой

Трейсы как данные: дизайн спанов, span-метрики и exemplars

Трейсы как данные: дизайн спанов, span-метрики и exemplars

Проброс контекста и сэмплинг — только половина трейсинга; вторая в том, что трейс это структурированные данные, из которых можно извлечь больше, чем waterfall. Дизайн спанов и семантические конвенции OTel, span-метрики (RED прямо из трейсов через spanmetrics), exemplars — прыжок из всплеска метрики в конкретный трейс, и trace-based SLO. Как перестать инструментировать вслепую

Логи и корреляция: структурные логи, trace_id и Loki

Логи и корреляция: структурные логи, trace_id и Loki

Структурный лог и коррелируемый лог — не одно и то же: в Go trace_id в stdout приходится добавлять руками, в Java его кладёт агент. Разбираем модель Loki, замеряем последствия высокой кардинальности (2 стрима против 1202), выясняем, почему на OTLP-логах не работает привычный json-парсер, и ловим ошибку корреляции, которая проявляется у каждого шестнадцатого трейса.

Распределённый трейсинг end-to-end: контекст через HTTP, БД и брокеры

Распределённый трейсинг end-to-end: контекст через HTTP, БД и брокеры

Распределённый трейсинг держится на одном: контекст должен пережить каждую границу. Разбираем W3C trace context дословно с провода, проброс через HTTP, PostgreSQL и NATS, два воспроизводимых разрыва трейса, head- и tail-семплинг с фактическими долями и две ловушки TraceQL, которые дают правдоподобные неверные числа.

Инструментирование OpenTelemetry в Go и Java: traces, metrics, logs

Инструментирование OpenTelemetry в Go и Java: traces, metrics, logs

Как инструментировать сервисы через OpenTelemetry: разделение SDK и API, три сигнала, auto- и manual-инструментализация, spans и context propagation, экспорт в Collector по OTLP. Практика на Go (SDK + slog-bridge) и Java (OTel-агент), с замерами накладных расходов на живом стенде.

В работе

Ближайшие материалы, которые продолжают этот раздел.

Наблюдаемость

VictoriaMetrics как лёгкая база для метрик

Когда VictoriaMetrics оказывается хорошим baseline для небольшого стенда или рабочей инфраструктуры.