惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
T
Threat Research - Cisco Blogs
O
OpenAI News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Scott Helme
Scott Helme
AWS News Blog
AWS News Blog
NISL@THU
NISL@THU
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
Latest news
Latest news
S
Securelist
P
Proofpoint News Feed
I
Intezer
Security Archives - TechRepublic
Security Archives - TechRepublic
D
DataBreaches.Net
博客园 - 司徒正美
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
Cisco Talos Blog
Cisco Talos Blog
AI
AI
Forbes - Security
Forbes - Security
爱范儿
爱范儿
博客园_首页
Last Week in AI
Last Week in AI
S
SegmentFault 最新的问题
P
Privacy International News Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Hacker News: Front Page
T
Tailwind CSS Blog
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LINUX DO - 最新话题
博客园 - 【当耐特】
Vercel News
Vercel News
C
Cisco Blogs
博客园 - 叶小钗
MyScale Blog
MyScale Blog
U
Unit 42
C
Check Point Blog
B
Blog RSS Feed
C
Cybersecurity and Infrastructure Security Agency CISA
N
News | PayPal Newsroom
T
Troy Hunt's Blog
有赞技术团队
有赞技术团队
量子位
V
Visual Studio Blog
罗磊的独立博客
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
PCI Perspectives
PCI Perspectives

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
MCP в мониторинге: когда «просто спросить» работает, а когда нет
AmidN · 2026-06-24 · via Все публикации подряд на Хабре

Средний

9 мин

287

Просто спроси, что происходит

Просто спроси, что происходит

Когда начали активно обсуждать MCP, это не выглядело как что-то неожиданное — мониторинг уже подошёл к точке, где идея «просто спросить систему» из эксперимента превратилась в логичное продолжение.

Данных в мониторинге всегда много, но ответ на конкретный вопрос всё равно добывается вручную: открываешь дашборды, переключаешься между сервисами, смотришь метрики, идёшь в логи, возвращаешься обратно.

В итоге картина складывается, только путь к ней довольно механический.

Мы попробовали собрать такую схему через MCP — как наиболее понятный способ дать модели доступ к данным. Не вспоминать, где лежит нужная метрика, не писать запросы, а задать вопрос и получить ответ.

И опять, в моменте кажется, что действительно разобрались: root cause найден, причина понятна — задача закрыта.

Но система сложная, здесь важно не путать «разобрались с инцидентом» и «разобрались с его последствиями». Потому что за первым слоем вопросов — «что произошло» и «почему это произошло» — стоит другой, на который проще найти причину, чем ответ:

  • что будет дальше,

  • насколько это системная проблема,

  • где ещё может «стрельнуть»,

  • и как это всё влияет на бизнес.

Причину инцидента мы уже умеем находить достаточно хорошо. Вопрос в том, удастся ли так же хорошо понять её последствия. Прежде чем разбираться, как модель ведёт себя, когда от неё требуют не факт, а вывод, расскажу про устройство MCP.

Как это вообще работает

MCP — это протокол прикладного уровня, построенный поверх JSON-RPC 2.0. Его задача — стандартизировать обмен контекстом между ИИ-моделью (Хост) и источниками данных (Сервер). Тут нужно понимать, что это не REST и не gRPC, а типизированный обмен между LLM-хостами и источниками данных.

Архитектура строится вокруг трёх ключевых ролей:

  1. MCP Хост — приложение, которое управляет жизненным циклом подключений к серверам и встраивает в себя LLM. Пользователь работает именно с хостом: это может быть VS Code, Claude Desktop или специализированный чат-бот.

  2. MCP Клиент — «прослойка» внутри хоста. Она держит соединение 1:1 с сервером.

  3. MCP Сервер — легковесная программа, которая предоставляет специфичную логику через внешний интерфейс. Она подключается к вашей БД, API

Три примитива MCP:

  • Tools (Инструменты) — управляются моделью. Модель сама решает вызвать функцию (например, get_problems), чтобы получить данные. Это основное, что используется в APM: серверу нужно описать свои инструменты так, чтобы модель могла корректно сопоставить их с задачами мониторинга.

  • Resources (Ресурсы) — управляются приложением. Это данные, доступные приложению, которое само решает, когда и какие из них передать модели для контекста — в отличие от Tools, здесь выбор делает не модель.

  • Prompts (Промпты) — управляются пользователем. Шаблоны запросов (например, «Проанализируй эти метрики»).

Если отвлечься от терминологии, MCP делает довольно конкретную вещь: даёт модели доступ к API через описанные инструменты. Модель видит, какие у неё есть «ручки», и сама решает, какую из них дёрнуть.

Данные есть. Значит, мы всё контролируем

Данные есть. Значит, мы всё контролируем

В теории всё вполне аккуратно. Есть модель, есть набор инструментов, которые она может вызывать, есть сервер, который ходит в API. Модель получает вопрос, выбирает инструмент, забирает данные и формирует ответ. По описанию процесс выглядит почти линейным, без сюрпризов.

Что происходит, когда пробуешь на практике

Давайте предположим разные варианты, где необходимо облегчить взаимодействие пользователя с данными:

  • Небольшой опыт работы с системой мониторинга, нет уверенного понимания интерфейса, к тому же нет времени с этим разбираться. В этом случае MCP-сервер выступает в роли мостика между мониторингом и языковыми моделями: превращает запрос с человеческого языка в технический согласно спецификации REST API, а затем, получив в ответ JSON, трансформирует его обратно в человеческий язык.

  • Сложный запрос к мониторингу, который требует времени, чтобы найти необходимые данные, сопоставить их и сделать анализ. Например: «Какие проблемы за последнюю неделю оказали влияние на SLO по доступности и какой прогноз на следующую неделю?». Здесь MCP так же переводит запрос в технический язык, получает набор JSON-ов, передаёт данные в ИИ для анализа и прогноза — и выдаёт готовый ответ.

Когда пробуешь это на простых сценариях, ощущение действительно приятное. Если не очень хорошо знаешь систему мониторинга, то возможность не вспоминать названия метрик экономит время. В каком-то смысле модель берёт на себя ту часть работы, которая раньше требовала «памяти о системе».

Но это ощущение держится недолго.

Как только запрос становится чуть менее очевидным, появляется неопределённость. Модель сама решает, что именно вызвать и в каком порядке, и это решение не фиксировано. Иногда она идёт коротким путём, иногда делает лишние шаги, или просто выбирает не тот инструмент. Это не выглядит как ошибка в привычном смысле — скорее, как особенность поведения, с которой приходится жить.

Ещё заметнее становится на этапе интерпретации. Даже если данные пришли корректные, дальше модель должна объяснить, что они значат. И вот оно, пространство для расхождений, потому что причинно-следственные связи модель строит не всегда так, как ожидаешь.

Со временем начинаешь обращать внимание на вещи, которые в начале просто не видны. Например, на задержки. Пока запрос один — всё быстро. Как только модель начинает делать несколько вызовов подряд, цепочка удлиняется: сначала она думает, потом идёт в MCP, потом в API, потом обратно, потом снова «думает». Плюс стоимость, которая растёт вместе с количеством вызовов.

Отдельная тема — доступ к данным. В какой-то момент становится важно не только то, что модель может спросить, но и то, что ей вообще разрешено. Здесь она уже не просто интерфейс, а полноценный участник системы, который может дёргать API, а это требует более аккуратной настройки.

И, пожалуй, самое приземлённое наблюдение: MCP никак не улучшает сам API. Если API мониторинга запутанный или плохо структурирован, модель будет спотыкаться точно так же, как и человек. Иногда даже чаще, потому что у неё нет «интуиции» — она опирается только на описание инструментов.

Как реализовано у нас

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

У нас, в Ключ-АСТРОМ, уже есть ИИ, но с совершенно другим назначением. Основная цель — объединить данные с инфраструктуры, трейсы, логи, события k8s, пользовательский опыт, чтобы оценить влияние инцидентов на окружение и конечных пользователей и найти первопричину происходящего. То есть здесь речь об анализе причинно-следственных связей при помощи ИИ.

Теперь же ИИ-агент (Copilot, Claude Desktop или бот) сам подключается к APM через MCP-сервер и отдаёт команды: «Найди мне проблему за последний час» или «Посчитай p99 latency для сервиса payment».

В нашей системе MCP-сервер реализован как отдельный сервис, который проксирует вызовы к REST API и добавляет слой интерпретации для LLM.

1. Архитектура подключения

MCP-сервер устанавливается на отдельную машину рядом с кластером Ключ-АСТРОМ. Чтобы его запустить, нужно сделать пару настроек — подключить MCP к мониторингу и наладить связь с LLM.

Тут сделаю замечание. Часто метрики мониторинга считаются чувствительными, не всегда использование внешней LLM допустимо. Для этого мы реализовали возможность подключения как к внешним, так и к локальным LLM.

Сам MCP-сервер настроен на работу с мониторингом.

2. Какие данные получает ИИ?

Через MCP-сервер ИИ получает доступ к следующим возможностям Ключ-АСТРОМ:

  • Проблемы: сведения обо всех обнаруженных проблемах с описанием влияния и корневой причиной.

  • Логи: глубокий поиск по логам, собранных агентами мониторинга.

  • Метрики: метрики инфраструктуры, процессов (например, Garbage Collector).

  • Сущности: информация о сервисах, хостах, процессах.

  • Пользовательский опыт: сведения о действиях пользователей в веб- или мобильном приложении, Apdex, Web Vitals метрики и другое.

  • Безопасность: уязвимости и угрозы.

3. Пример выполнения запроса

Разберем сценарий: «Покажи мне топ-3 сервиса с самой высокой задержкой»

MCP Ключ-АСТРОМ

MCP Ключ-АСТРОМ

Вот что происходит под капотом:

  1. Хост (Copilot) отправляет промпт LLM.

  2. LLM анализирует список доступных Tools от MCP-сервера. Она видит инструменты, например query_metrics или get_entities, и решает, что для ответа нужно сначала найти сервисы (Entities), а потом вытянуть их метрики.

  3. MCP-клиент → MCP-сервер: LLM возвращает структурированный JSON-RPC запрос tools/call с аргументами (например, entitySelector=type("SERVICE")).

  4. MCP-сервер (Ключ-АСТРОМ) принимает запрос, аутентифицируется с помощью токена и делает прямое API-обращение к эндпоинту /api/v2/metrics/query

  5. Response: MCP-сервер получает сырой JSON от Ключ-АСТРОМ, отдаёт его обратно клиенту, тот передаёт LLM, и LLM генерирует ответ на естественном языке.

Ложка дёгтя в бочке мёда

Обсудим не только плюсы этого подхода, но и к чему нужно быть готовым.

С самим MCP всё довольно понятно: задача простая — настроить его на правильные вызовы к системе мониторинга. А вот по взаимодействию с LLM, вопросы появляются регулярно.

Расскажу про нюансы, с которыми мы столкнулись, проверяя разные модели — наши и зарубежные, облачные и локальные.

Галлюцинации метрик

LLM — всё-таки в первую очередь лингвистическая модель, а не калькулятор распределённых систем.

Например, MCP корректно передаёт значения метрик, но LLM начинает их «интерпретировать». Она может увидеть p95 задержки в 1500 мс и сказать «Всё в порядке, это допустимо», хотя SLA — 200 мс.

Тут важно понимать, что есть прямая зависимость от промпта, а самое главное — от того, сколько токенов выделено модели на то, чтобы развернуть рассуждение. Если включить режим экономии и существенно ограничить контекстное окно или длину ответа, модели буквально не хватает места, чтобы аккуратно сопоставить цифру с порогом, и она склоняется к короткому, уверенному, но поверхностному выводу — то есть начинает фантазировать.

Грубо говоря, чем меньше у LLM «воздуха» в виде токенов, чтобы рассуждать пошагово, тем выше риск, что она срежет путь и выдаст готовый ответ без промежуточных сопоставлений.

Причём порог, после которого начинается такая фантазия, у разных LLM разный: одна модель уверенно держится на коротком контексте и режет рассуждение только при жёсткой экономии, другая начинает терять точность гораздо раньше — даже когда токенов формально хватает на простой ответ, но не хватает на полноценное сопоставление метрики с порогом и объяснение выбора.

Логические разрывы: встречали ситуации, когда LLM часто путает Latency с Duration, путает клиентские (4xx) с серверными (5xx) ошибками. MCP-сервер отдает сырые поля, а модель склеивает их неверно, давая убедительный, но математически неверный вывод. Но хорошо, что такое поведение скорее редкость чем обыденность.

LLM может допридумывать синтаксис запросов в API

API системы мониторинга может иметь сложные вложенные фильтры (AND/OR/NOT), но LLM через MCP может генерировать невалидный JSON-запрос для API и приведёт к тому, что MCP-сервер возвращает ошибку «400 Bad Request». Но LLM, вместо того чтобы признать косяк, начинает галлюцинировать причину: «Ошибка доступа, проверьте права» (хотя проблема в синтаксисе) или «Данных нет, потому что сервер недоступен» (хотя данные есть, просто фильтр некорректный).

Чтобы LLM дала адекватный ответ, ей нужен адекватный точный промт. Если запрос «Почему все тормозит?» — MCP дернет 5 разных эндпоинтов (метрики CPU, GC, Response time, Network time). LLM захлебнётся в разнородных данных и выдаст кашу. Но если сформулировать промт корректно, например: «Покажи корневые причины проблем, которые возникли в проде на системе А за вчера», то тут запрос понятен и какие нужно вызвать тоже. 

Цена вопроса: SLO и инциденты

Возвращаясь к вопросам, с которых начали — насколько это системная проблема и как это влияет на бизнес — вот как они выглядят не в виде абстрактного списка, а в виде конкретных рабочих сценариев.

Например, довольно типичная работа с SLO.

Доступность мобильного приложения начала снижаться. Сам факт деградации — ещё не проблема, а сигнал. Хочется понять, это разовый всплеск или тренд, что повлияло и что будет дальше.

В классическом подходе аналитика будет ручной: собрать данные, сопоставить их и сделать вывод.

С MCP можно задать вопрос напрямую: «Проанализируй динамику SLO за последнюю неделю и оцени риск выхода за порог». И получить сразу интерпретацию:

  • что показатели действительно снижаются,

  • что текущая динамика ведёт к нарушению порога,

  • и когда это может произойти.

То есть система сразу работает на уровне вывода, а не на уровне данных.

Другой сценарий — уже не про метрики, а про конкретные процессы, где лучше всего видно бизнес-влияние.

Допустим, вы ИТ-директор, вас не устраивает время решения критических инцидентов. При этом до конца непонятно, где именно узкое место: мониторинг не находит проблему или команда долго реагирует.

Обычно такой анализ занимает время: нужно собрать инциденты, посмотреть таймлайны, сопоставить данные.

10 дашбордов, 50 алертов — ничего непонятно

10 дашбордов, 50 алертов — ничего непонятно

С MCP можно задать вопрос: «Какие критические инциденты были за последние 8 недель и сколько времени заняло их устранение?»

И получить ответ, где уже видно:

  • когда инцидент был обнаружен,

  • сколько пользователей пострадало,

  • в чём была причина,

  • и сколько времени заняло восстановление.

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

На этом месте легко сделать неправильный вывод, что MCP — это просто умный чат над мониторингом. Но это не совсем так.

Чат здесь — только точка входа. Основная работа происходит внутри: сбор данных, сопоставление, учёт зависимостей, построение выводов. Если убрать интерфейс, сама логика не исчезнет.

Что в итоге

Развитие систем-помощников на базе языковых моделей продолжает активно развиваться и применяется в совершенно разных отраслях. Сегодня мы рассмотрели, как этот процесс добрался до связки LLM-MCP-Мониторинг.

Из пользы можно выделить главное: он снижает порог входа в работу с APM-мониторингом и сокращает время на получение нужных сведений — человеку не нужно помнить синтаксис запросов, чтобы получить ответ. Особенно ощутимо это в стрессовых ситуациях, когда инцидент требуется разобрать как можно быстрее.

Просто спроси, что происходит

Просто спроси, что происходит

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

Но если смотреть на это шире, что и показывают оба сценария выше, — MCP не сводится к удобному способу задать вопрос мониторингу. Это инфраструктура, которая меняет сам подход к работе с системой: не вытаскивать метрики по одной, а сразу получать вывод с учётом зависимостей.

Посмотреть наш продукт на сайте: MCP-сервер Ключ-АСТРОМ