Карта проекта и слепые зоны

Карта проекта показывает всю систему на одном экране: какие серверы есть в проекте, какие стеки на них работают, как стеки вызывают друг друга и где что-то тормозит или сыплет ошибками. Всё, чего Наблюдатель не видит, нарисовано «туманом». Под картой — список слепых зон мониторинга с подсказкой, как закрыть каждую.

Карта нужна, чтобы за минуту понять, как устроена система, и не узнавать о пробелах в мониторинге в момент аварии.

Как открыть карту проекта

Откройте проект и в переключателе вида выберите «Карта проекта» — значок рядом с режимами «Карточки» и «Список». Карта появляется, когда в проекте есть хотя бы один стек.

В заголовке карты — сколько в проекте серверов, стеков и связей между стеками, а также общий процент видимости: «видно 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.

Что дальше

Попробуйте Наблюдатель

Первый сервер или стек подключается за пару минут. Бесплатно в раннем доступе.

Создать аккаунт

Нашли неточность или не хватает ответа? Напишите на hello@nablserver.ru