SPA Tutorial MongoDB Monitoring

Интерактивный туториал по средствам мониторинга и отладки MongoDB

От мониторинга операционной системы до внутренней телеметрии WiredTiger и FTDC.

Прогресс прохождения0/5
На главную
🗄️
Уровень не завершён

Уровень 3 — Встроенные средства MongoDB

Команды, системные представления и журналы внутри самой СУБД

Цель уровня: Найти причину проблемы уже на уровне экземпляра MongoDB.

Теория

MongoDB предоставляет встроенные команды и методы для анализа состояния сервера, коллекций, запросов и репликации.

Это основной рабочий уровень DBA и backend-инженера: здесь мы проверяем текущие операции, кеш, блокировки, профилирование и статус replica set.

Инструменты

db.serverStatus()

Общий снимок состояния сервера: connections, opcounters, network, asserts, wiredTiger, locks.

db.stats() / db.collection.stats()

Размер БД, индексов, документов, storage statistics.

$currentOp

Просмотр выполняющихся операций и зависших запросов.

Profiler и slow query log

Поиск медленных запросов и анализ шаблонов нагрузки.

rs.status()

Проверка состояния репликации и ролей узлов.

Ключевые метрики

connections.currentopcountersnetwork.bytesIn/bytesOutlockswiredTiger.cacheslow operationsreplica set state

Интерпретация результатов

Рост connections.current при падении available connections говорит о риске исчерпания лимита соединений.
Пиковый wiredTiger.cache bytes currently in the cache показывает давление на память.
Profiler полезен, когда нужно увидеть конкретные медленные запросы, а не только агрегированные счётчики.

Практический блок

Команды и примеры, которые можно показать в проекте как кодовые блоки или иллюстрации.

Общее состояние сервера
db.serverStatus()
Статистика базы
db.stats()
Статистика коллекции
db.users.stats()
Проверка replica set
rs.status()
Текущие операции через aggregation
db.aggregate([{ $currentOp: { allUsers: true, idleConnections: false } }])
Включить profiler для медленных запросов
db.setProfilingLevel(1, { slowms: 100 })

Самопроверка

Ответьте на вопросы. Для прохождения уровня нужно правильно ответить на все.

1. Какая встроенная команда даёт общий обзор состояния экземпляра MongoDB?

Пояснение: db.serverStatus() возвращает документ со сводной информацией о состоянии процесса mongod.

2. Что лучше использовать для поиска медленных запросов?

Пояснение: Профилировщик и slow query log позволяют находить и анализировать долгие операции.

После проверки здесь появится результат.