Карта проекта и слепые зоны
Карта проекта показывает всю систему на одном экране: какие серверы есть в проекте, какие стеки на них работают, как стеки вызывают друг друга и где что-то тормозит или сыплет ошибками. Всё, чего Наблюдатель не видит, нарисовано «туманом». Под картой — список слепых зон мониторинга с подсказкой, как закрыть каждую.
Карта нужна, чтобы за минуту понять, как устроена система, и не узнавать о пробелах в мониторинге в момент аварии.
Как открыть карту проекта
Откройте проект и в переключателе вида выберите «Карта проекта» — значок рядом с режимами «Карточки» и «Список». Карта появляется, когда в проекте есть хотя бы один стек.
В заголовке карты — сколько в проекте серверов, стеков и связей между стеками, а также общий процент видимости: «видно N%». Можно выбрать период — «1 ч», «6 ч» или «24 ч» — и обновить карту.
Что на карте
Плиты — серверы
Каждая плита — сервер или группа серверов с одинаковым набором стеков, например ноды одного кластера Kubernetes. На плите видны имя сервера и загрузка: CPU, RAM и самый заполненный диск. Имя сервера — ссылка на его страницу.
Особые случаи:
- «не на связи» — host-агент сервера не присылает данные;
- «не подключён к проекту» — стек работает на этом сервере, но сам сервер к проекту не подключён, и его метрики в проекте не видны;
- «Сервер не указан» — плита для стеков, у которых не отмечен сервер. Неизвестно, на какой машине они работают.
Плитки стеков
На плите стоят стеки, которые на ней работают. На плитке стека:
- входящие запросы, доля ошибок и время ответа p95 за выбранный период;
- «сервисов X/Y» — сколько сервисов из всех присылают трассы;
- число баз данных, брокеров сообщений и внешних адресов, которые стек вызывает;
- «N без трасс» — сервисы без трассировки, наведите курсор, чтобы увидеть их имена;
- шкала внизу — какая доля стека видна.
Обычно стек связывается со своим сервером сам: если контейнеры или поды работают на машине с агентом сервера и имя машины совпадает однозначно, Наблюдатель создаёт связь и подключает сервер к проекту. В ленте стека появляется событие «Стек связан с сервером». Если похожих серверов несколько или имя слишком общее, стек стоит на плите предполагаемого сервера с пометкой «сервер не подтверждён». Выбрать сервер можно в настройках стека, в разделе «Серверы». Если в проекте есть редакторы, сам связывается только сервер, уже подключённый к проекту, а новый сервер подключает владелец.
Если агент стека не установлен, на плитке написано «агент не подключён». Если трассы есть, но запросов извне нет — «нет входящих запросов в трассах».
Нажмите на стек, чтобы открыть его вкладку «Трассировка».
Линии — связи между стеками
Линия между стеками значит, что один стек вызывает другой. Наведите курсор на стек — подсветятся его связи, остальное приглушится. Наведите на линию — увидите, через какой адрес идут вызовы, сколько их, долю ошибок и p95.
Связи находятся двумя способами:
- По трассам. Стек обращается к внешнему адресу, а на этот адрес настроена проверка сайта, которая ведёт в сервис другого стека проекта. Для этого нужны трассировка в вызывающем стеке и HTTP-проверка входа вызываемого.
- По сети. Агент сервера видит сетевые соединения контейнеров и подов на своей машине. Такие связи рисуются пунктиром и подписаны «по сети, без трасс» с числом соединений. Содержимое трафика агент не читает — только адреса, порты и число соединений. Нужны агент сервера 0.14 или новее на машине стека и агент стека 0.14 или новее.
Важно. Связи и счётчики сервисов строятся по трассам. Если подпись под картой говорит «хранилище трасс недоступно — связи не построены», серверы и стеки видны, а линии — нет.
Туман
Туманом нарисовано то, чего Наблюдатель не видит: стек без агента, стеки без указанного сервера, сервисы без трассировки, сервер не на связи. Под картой есть легенда:
- плита — сервер или кластер и стеки на нём;
- линия — вызовы между стеками;
- туман — чего Наблюдатель не видит;
- шкала внизу плитки — какая доля стека видна.
На карте сервисов внутри стека сервисы без трассировки тоже показаны туманом — см. карта сервисов.
Слепые зоны: список пробелов
Под картой — блок «Слепые зоны». В его заголовке — сколько пробелов найдено и какая доля проекта видна, например «4 пробела · видно 72% проекта». Если пробелов нет, там написано «Наблюдатель видит проект целиком».
Пробелы отсортированы по важности. Метки важности: «важно», «стоит», «мелочь». У каждого пункта — что не так, чем это мешает, что сделать и ссылка «Открыть» на место в кабинете, где это настраивается. Рядом указано, кто закрывает пробел:
- «может сделать ИИ-ассистент через MCP» — например, создать HTTP-проверку или связать стек с сервером;
- «нужна правка в приложении — поможет ИИ-ассистент» — подключить OpenTelemetry или экспортер метрик базы;
- «команда на сервере или в кластере» — команда показана тут же, её можно скопировать.
Сначала показаны 6 пунктов, остальные — по кнопке «Показать все».
| Пробел | Важность | Что сделать |
|---|---|---|
| Агент стека не подключён | важно | установить агента в стек: Docker Compose или Kubernetes |
| Сервер не на связи | важно | проверить host-агента на сервере |
| Трассировка в стеке не подключена | важно | подключить OpenTelemetry к сервисам — трассировка |
| Сервисы без трасс в стеке | стоит | подключить трассировку к оставшимся сервисам |
| Не указан сервер стека или похожих серверов несколько и связь не создалась сама | стоит | установить host-агента на сервер или выбрать сервер стека |
| Сервер не подключён к проекту | стоит | подключить сервер к проекту на вкладке «Серверы» в «Управлении» |
| Нет метрик базы или брокера | стоит | подключить экспортер Prometheus — метрики приложения |
| Вызовы внешнего адреса с ошибками | стоит | создать HTTP-проверку этого адреса — проверки сайтов |
| Не указано, какие стеки работают на сервере | мелочь | отметить стеки сервера |
| Метрики базы или брокера — только со стороны приложения | мелочь | подключить экспортер самой базы или брокера: видны очереди и отставание, но не память, диск и соединения |
| Устаревший агент стека или сервера (старше 0.14) | мелочь | обновить агента: без этого не видны связи сервисов без трассировки — обновление агента |
Записи потоков без trace_id |
мелочь | добавлять trace_id текущего запроса в записи потока — события и логи |
| Неясно, какой сервис пишет поток | мелочь | указать сервис потока |
| У стека нет HTTP-проверки | мелочь | добавить проверку входа |
| HTTP-проверка не связана с сервисом | мелочь | указать, какой сервис она проверяет, или подключить трассировку к сервису входа |
Пробел «вызовы внешнего адреса с ошибками» появляется, когда при обращении к адресу 5 % запросов и больше заканчиваются ошибкой, а HTTP-проверки на него нет: о его недоступности вы узнаете только по ошибкам своих сервисов.
Наблюдатель не просит подключить трассировку там, где она не нужна. Для баз данных и брокеров он предлагает метрики, а бекапы, фоновые задачи и статические сайты вроде nginx пропускает.
Процент видимости
Процент — доля пройденных проверок полноты. Для каждого стека проверяется:
- подключён ли агент;
- указан ли сервер;
- присылает ли трассы каждый сервис;
- есть ли метрики у каждой базы и брокера;
- есть ли HTTP-проверка, если стек принимает запросы извне.
Для проекта к этому добавляются серверы: на связи ли они, подключены ли к проекту и отмечены ли на них стеки. У каждого стека свой процент — шкала внизу его плитки. У проекта — общий, в заголовке карты и в блоке «Слепые зоны».
Трассы оцениваются за последние сутки: сервис, который получает несколько запросов в день, не попадёт в «без трасс».
Зачем закрывать слепые зоны
Чем больше видно, тем точнее Наблюдатель находит причину сбоя. Если у базы нет метрик, а стек не связан с сервером, цепочку «сервис тормозит ← база ← диск сервера заполнен» не собрать. Подробнее — в статье аномалии и поиск причины.
Карта и ИИ-ассистент
ИИ-ассистент видит ту же карту и список пробелов. После подключения проекта он сам предлагает пройтись по слепым зонам: объясняет каждую, с вашего согласия делает то, что может сам, — например, создаёт HTTP-проверку или связывает стек с сервером, — подсказывает правки в приложении, а в вашем репозитории может их сделать. Потом он проверяет, что пробел закрылся. Подробнее — в статье ИИ-ассистент по MCP.
Что дальше
- Проекты, стеки и серверы — как устроен проект и зачем связывать стеки с серверами.
- Мониторинг серверов — host-агент и подключение сервера к проекту.
- Трассировка — главный способ убрать туман с сервисов.
- Аномалии и поиск причины — как карта помогает найти причину сбоя.
Первый сервер или стек подключается за пару минут. Бесплатно в раннем доступе.
Нашли неточность или не хватает ответа? Напишите на hello@nablserver.ru