Image

От терабайт к инсайтам: архитектура наблюдения ИИ в реальном мире

Google Google ImaGen3

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

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

Это превращает возможность наблюдения в источник разочарования, а не понимания. Чтобы решить эту серьёзную проблему, я начал изучать решение, использующее протокол контекста модели (MCP) для добавления контекста и формирования выводов на основе журналов и распределённых трассировок. В этой статье я расскажу о своём опыте создания платформы наблюдения на базе ИИ, объясню архитектуру системы и поделюсь практическими выводами, полученными в процессе.

Почему наблюдаемость сложна?

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

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

Масштабирование ИИ достигает предела

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

  • Превращение энергии в стратегическое преимущество
  • Разработка эффективного вывода для реального увеличения пропускной способности
  • Обеспечение конкурентоспособной рентабельности инвестиций с помощью устойчивых систем ИИ

Забронируйте свое место, чтобы оставаться впереди : https://bit.ly/4mwGngO

  • Десятки терабайт журналов в день
  • Десятки миллионов точек метрических данных и предварительных агрегатов
  • Миллионы распределенных следов
  • Тысячи идентификаторов корреляции генерируются каждую минуту

Проблема заключается не только в объёме данных, но и в их фрагментации. Согласно отчёту New Relic «Прогноз наблюдаемости за 2023 годом», 50% организаций предоставляют разрозненные телеметрические данные, и только 33% достигают единого представления метрик, журналов и трассировок.

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

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

Понимание MCP: перспектива конвейера данных

Anthropic определяет MCP как открытый стандарт, позволяющий разработчикам создавать безопасное двустороннее соединение между источниками данных и инструментами ИИ. Этот структурированный конвейер данных включает в себя:

  • Контекстный ETL для ИИ: стандартизация извлечения контекста из нескольких источников данных.
  • Интерфейс структурированных запросов: позволяет запросам ИИ получать доступ к прозрачным и понятным слоям данных.
  • Семантическое обогащение данных: встраивает значимый контекст непосредственно в телеметрические сигналы.

Это может сместить акцент на платформе с реактивного решения проблем на проактивное понимание.

Архитектура системы и поток данных

Прежде чем углубляться в детали реализации, давайте рассмотрим архитектуру системы.

ee2eb44c9128d22d34854f26bcb0af8b
Архитектурная схема системы наблюдения ИИ на базе MCP

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

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

Реализуемое глубокое погружение: трехуровневая система

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

Уровень 1: Генерация данных, обогащенных контекстом

Во-первых, нам необходимо убедиться, что наши телеметрические данные содержат достаточно контекста для осмысленного анализа. Суть в том, что корреляция данных должна происходить на этапе их создания, а не анализа.

def process_checkout(user_id, cart_items, payment_method):
“””Моделируйте процесс оформления заказа с помощью контекстно-обогащенной телеметрии.”””

# Сгенерировать идентификатор корреляции
order_id = f”order-{uuid.uuid4().hex[:8]}”
request_id = f»req-{uuid.uuid4().hex[:8]}»

# Инициализируем контекстный словарь, который будет применен
контекст = {
«user_id»: user_id,
«order_id»: order_id,
«request_id»: request_id,
«cart_item_count»: len(cart_items),
«способ_оплаты»: способ_оплаты,
«имя_услуги»: «оформить заказ»,
«service_version»: «v1.0.0»
}

# Запустить трассировку OTel с тем же контекстом
с tracer.start_as_current_span(
«process_checkout»,
атрибуты={k: str(v) для k, v в context.items()}
) как checkout_span:

# Ведение журнала с использованием того же контекста
logger.info(f»Запуск процесса оформления заказа», extra={«context»: json.dumps(context)})

# Распространение контекста
с tracer.start_as_current_span(«process_payment»):
# Логика обработки платежа…
logger.info(“Платеж обработан”, extra={“context”:

json.dumps(контекст)})

Код 1. Обогащение контекста для журналов и трассировок

Такой подход гарантирует, что каждый телеметрический сигнал (журналы, метрики, трассировки) содержит одни и те же основные контекстные данные, решая проблему корреляции в источнике.

Уровень 2: Доступ к данным через сервер MCP

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

  1. Индексирование : создание эффективных поисков по контекстным полям
  2. Фильтрация : выбор соответствующих подмножеств телеметрических данных
  3. Агрегация : вычисление статистических показателей во временных окнах
@app.post(“/mcp/logs”, response_model=Список[Журнал])
def query_logs(query: LogQuery):
“””Журналы запросов с определенными фильтрами”””
результаты = LOG_DB.copy()

# Применить контекстные фильтры
если запрос.request_id:
результаты = [журнал для результатов журнала if log[“context”].get(“request_id”) == query.request_id]

если запрос.user_id:
результаты = [журнал для результатов журнала if log[“context”].get(“user_id”) == query.user_id]

# Применить фильтры по времени
если запрос.время_диапазон:
start_time = datetime.fromisoformat(query.time_range[“start”])
end_time = datetime.fromisoformat(query.time_range[“end”])
результаты = [журнал для результатов журнала
если начальное_время <= datetime.fromisoformat(log[“timestamp”]) <= конечное_время]# Сортировать по временной метке
результаты = отсортировано(результаты, ключ=лямбда x: x[“метка времени”], обратный=Истина)

вернуть результаты[:query.limit] если query.limit иначе результаты

Код 2. Преобразование данных с использованием сервера MCP

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

Уровень 3: Аналитическая система на базе ИИ

Последний уровень — это компонент ИИ, который потребляет данные через интерфейс MCP, выполняя:

  1. Многомерный анализ : корреляция сигналов по журналам, метрикам и трассировкам.
  2. Обнаружение аномалий : выявление статистических отклонений от нормальных закономерностей.
  3. Определение первопричины : использование контекстных подсказок для изоляции вероятных источников проблем.
def analyze_incident(self, request_id=None, user_id=None, timeframe_minutes=30):
“””Анализ телеметрических данных для определения первопричины и рекомендаций.”””

# Определить временное окно анализа
время_окончания = дата_время.сейчас()
начальное_время = конечное_время – timedelta(минуты=timeframe_minutes)
time_range = {«старт»: время_начала.isoformat(), «конец»: время_конца.isoformat()}

# Получать соответствующие телеметрические данные на основе контекста
logs = self.fetch_logs(request_id=request_id, user_id=user_id, time_range=time_range)

# Извлечь службы, упомянутые в журналах, для целевого анализа метрик
services = set(log.get(“service”, “unknown”) для журналов входа)

# Получите метрики для этих услуг
метрики_по_сервису = {}
за службу в сфере услуг:
для metric_name в [«latency», «error_rate», «throughput»]:
metric_data = self.fetch_metrics(service, metric_name, time_range)

# Рассчитать статистические свойства
значения = [точка[“значение”] для точки в metric_data[“data_points”]]
metrics_by_service[f”{service}.{metric_name}”] = {
«среднее»: статистика.среднее(значения) если значения иначе 0,
«медиана»: статистика.медиана(значения) если значения иначе 0,
«stdev»: статистика.stdev(значения) если len(значения) > 1 иначе 0,
«min»: min(значения) если значения иначе 0,
«макс»: макс(значения) если значения иначе 0
}

# Определите аномалии с помощью z-оценки
аномалии = []
для metric_name, статистика в metrics_by_service.items():
if stats[“stdev”] > 0: # Избегайте деления на ноль
z_score = (stats[“макс”] – stats[“среднее”]) / stats[“stdev”]
если z_score > 2: # Более 2 стандартных отклонений
аномалии.append({
«метрика»: имя_метрики,
«z_score»: z_score,
«тяжесть»: «высокая», если z_score > 3, в противном случае «средняя»
})

возвращаться {
«резюме»: ai_summary,
«аномалии»: аномалии,
«impacted_services»: список(услуг),
«рекомендация»: ai_recommendation
}

Код 3. Метод анализа инцидентов, обнаружения аномалий и вывода

Влияние улучшенной MCP наблюдаемости

Интеграция MCP с платформами наблюдения может улучшить управление и понимание сложных телеметрических данных. Потенциальные преимущества включают:

  • Более быстрое обнаружение аномалий, что приводит к сокращению минимального времени обнаружения (MTTD) и минимального времени устранения (MTTR).
  • Более легкое выявление основных причин проблем.
  • Меньше шума и меньше ненужных оповещений, что снижает утомляемость от оповещений и повышает производительность разработчиков.
  • Меньше перерывов и переключений контекста при разрешении инцидентов, что приводит к повышению эффективности работы инженерной группы.

Практические идеи

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

  • Контекстные метаданные следует внедрять на ранних этапах процесса генерации телеметрических данных, чтобы облегчить последующую корреляцию.
  • Структурированные интерфейсы данных создавать структурированные уровни запросов на основе API, чтобы сделать телеметрию более доступной.
  • Контекстно-зависимый ИИ фокусирует анализ на контекстно-обогащенных данных для повышения точности и релевантности.
  • Обогащение контекста и методы ИИ должны регулярно совершенствоваться с использованием практической оперативной обратной связи.

Заключение

Объединение структурированных конвейеров данных и искусственного интеллекта открывает огромные перспективы для обеспечения наблюдаемости. Мы можем преобразовать обширные телеметрические данные в практические выводы, используя структурированные протоколы, такие как MCP, и анализ на основе искусственного интеллекта, что приводит к созданию проактивных, а не реактивных систем. Lumigo выделяет три важнейших столпа наблюдаемости: журналы, метрики и трассировки. Без интеграции инженерам приходится вручную сопоставлять разрозненные источники данных, что замедляет реагирование на инциденты.

То, как мы генерируем телеметрию, требует структурных изменений, а также аналитических методов для извлечения смысла.

Проной Госвами — специалист по облачным технологиям, инфраструктуре искусственного интеллекта и распределенным системам.

Источник: venturebeat.com

✅ Найденные теги: новости, От
Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых