Files
Baradb/docs/ru/monitoring.md
T

3.8 KiB

Мониторинг и наблюдаемость

Проверки здоровья

HTTP endpoint проверки здоровья

curl http://localhost:9470/health

Ответ:

{
  "status": "healthy",
  "version": "0.1.0",
  "uptime_seconds": 86400,
  "checks": {
    "storage": "ok",
    "memory": "ok",
    "connections": "ok"
  }
}

Readiness Probe

curl http://localhost:9470/ready

Возвращает 200 OK когда сервер готов принимать трафик, 503 во время запуска.

Метрики

Prometheus-совместимые метрики

curl http://localhost:9470/metrics

Пример вывода:

# HELP baradb_queries_total Total number of queries executed
# TYPE baradb_queries_total counter
baradb_queries_total 152340

# HELP baradb_queries_duration_seconds Query duration histogram
# TYPE baradb_queries_duration_seconds histogram
baradb_queries_duration_seconds_bucket{le="0.001"} 45000

# HELP baradb_storage_lsm_size_bytes LSM-Tree total size
# TYPE baradb_storage_lsm_size_bytes gauge
baradb_storage_lsm_size_bytes 2147483648

# HELP baradb_cache_hit_rate Page cache hit rate
# TYPE baradb_cache_hit_rate gauge
baradb_cache_hit_rate 0.94

# HELP baradb_active_connections Active client connections
# TYPE baradb_active_connections gauge
baradb_active_connections 42

Метрики в формате JSON

curl http://localhost:9470/metrics?format=json

Логирование

Уровни логирования

Уровень Описание
debug Детальные внутренние операции
info Нормальные операции
warn Восстанавливаемые проблемы
error Сбои требующие внимания

Структурированные JSON логи

BARADB_LOG_LEVEL=info \
BARADB_LOG_FORMAT=json \
BARADB_LOG_FILE=/var/log/baradb/baradb.log \
./build/baradadb

Пример записи лога:

{
  "timestamp": "2025-01-15T10:30:00.123Z",
  "level": "info",
  "component": "server",
  "message": "Query executed",
  "query": "SELECT * FROM users",
  "duration_ms": 12,
  "client_ip": "10.0.0.15"
}

Grafana Dashboard

Импортируйте dashboard ID baradb-001 или используйте JSON в monitoring/grafana-dashboard.json.

Ключевые панели:

  • Queries per second
  • Query latency percentiles (p50, p95, p99)
  • Storage size and SSTable count
  • Cache hit rate
  • Active connections
  • Transaction rate
  • Error rate

Мониторинг кластера

curl http://node1:9470/metrics/cluster
{
  "cluster_id": "baradb-cluster-1",
  "nodes": [
    {"id": "node1", "role": "leader", "health": "healthy"},
    {"id": "node2", "role": "follower", "health": "healthy"},
    {"id": "node3", "role": "follower", "health": "healthy"}
  ],
  "raft_log_index": 15420,
  "raft_commit_index": 15420,
  "shards": 4,
  "replication_lag_ms": 5
}

Устранение проблем с метриками

Симптом Метрика Действие
Медленные запросы baradb_queries_duration_seconds Проверить cache hit rate, добавить индексы
Высокая память process_resident_memory_bytes Уменьшить размеры memtable/cache
Рост хранилища baradb_storage_lsm_size_bytes Запустить ручную компактификацию
Ошибки соединений baradb_active_connections Увеличить пул или добавить узлы
Отставание репликации baradb_replication_lag_ms Проверить сеть, увеличить ресурсы