Оптимизация запросов LogQL, паттерны логирования, многоуровневое хранение
«Логи — это данные, обрабатывайте их как данные»
# ПЛОХО: сканирует все логи
{} |= "error"
# ХОРОШО: фильтрация по лейблам сначала
{app="api", level="error"}# ПЛОХО: дорогой regex
{app="api"} |~ "error.*database.*timeout"
# ХОРОШО: простые фильтры
{app="api"} |= "error" |= "database" |= "timeout"{"timestamp":"2026-03-18T14:30:00Z","level":"ERROR","message":"DB timeout","service":"api","trace_id":"abc123"}# ПЛОХО: user_id создаёт миллионы потоков
log.info(f"User {user_id} logged in")
# ХОРОШО: user_id в содержимом, не в лейблах
log.info("User logged in", extra={"user_id": user_id})# X-Scope-OrgID заголовок
clients:
- url: http://loki:3100/loki/api/v1/push
headers:
X-Scope-OrgID: tenant-a# loki-config.yml
limits_config:
retention_period: 168h # 7 днейВопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.