Современные системы наблюдаемости генерируют огромные объемы телеметрии, но сама по себе телеметрия не объясняет, как связаны между собой компоненты системы. Когда происходит инцидент, сложнее всего не найти оповещение, а понять, что именно произошло в разных сервисах, инфраструктуре и зависимостях. Контекстный граф наблюдаемости (Observability Context Graph) в Observe by Snowflake устраняет этот пробел, превращая необработанную телеметрию в наборы данных, которые можно связывать между собой. Благодаря этому при возникновении инцидента пользователи могут проследить, почему что-то сломалось, а не просто констатировать факт поломки.
Контекстный граф — это архитектурный уровень в Observe, который организует телеметрию в связную карту, позволяя пользователям быстро перемещаться по всей системе для получения аналитических данных вместо ручного поиска по отдельным событиям. Он позволяет пользователям визуально исследовать связи в необработанных данных, чтобы видеть, что происходит внутри их среды.
Узнайте больше об Observe by Snowflake и о том, как быстро превратить телеметрию в инсайты.
Строительные блоки контекстного графа: наборы данных, ссылки и теги корреляции
Контекстный граф наблюдаемости располагается поверх озера данных (data lakehouse) — единого хранилища для всех ваших данных наблюдаемости. То, как они взаимодействуют, является ключевым фактором того, почему Observe помогает командам проводить расследования быстрее.
Во-первых, необработанная телеметрия направляется из внешней инфраструктуры в Telemetry Data Lakehouse через интеграцию или коллектор. Затем Observe организует и структурирует эти данные в наборы данных, которые соединяются как напрямую через ссылки, так и через общие теги корреляции:
- Наборы данных: Observe формирует входящую телеметрию в наборы данных, такие как логи Kubernetes, метрики Prometheus и спаны трассировки. Наборы данных ресурсов идентифицируют отдельные ресурсы — виртуальные или физические объекты, такие как поды и контейнеры Kubernetes, пользователи, продукты и корзины покупок — с использованием первичного ключа, который может содержать одно поле или комбинацию полей.
- Ссылки соединяют наборы данных: Ссылки по первичному и внешнему ключу соединяют наборы данных на основе идентификации ресурсов. Например, ресурс пода может быть связан с узлом, на котором он запущен. Lineage показывает другую взаимосвязь между наборами данных: какие наборы данных использовались для создания другого набора данных. Вы можете изучить эти взаимосвязи с помощью представлений «Ссылки», «Происхождение» (Lineage) и «Фокус», кратко описанных ниже.
- Теги корреляции связывают данные между наборами данных: Теги корреляции помечают поля, такие как «cluster.name» или «service.name», которые представляют одну и ту же концепцию в разных наборах данных. Когда поля имеют общий тег корреляции, Observe может использовать совпадающие значения для поиска связанных данных. Многие теги применяются автоматически на основе поддерживаемых соглашений. Эти теги, доступные для поиска, также помогают ИИ-инженеру по надежности сайта (AI SRE) в Observe сопоставить термин, например «apiserver», с нужными данными.
В совокупности эти соединения образуют контекстный граф наблюдаемости: наборы данных являются его «узлами», а ссылки и линии происхождения между ними — «ребрами». Теги корреляции добавляют дополнительный уровень для навигации по наборам данных через общие концепции. Ссылки, линии происхождения и теги позволяют проводить расследование по связанным наборам данных, а не изучать каждый из них изолированно.
Рисунок 1: Контекстный граф наблюдаемости связывает наборы данных и выявляет корреляции, помогая командам отвечать на вопросы о том, почему произошел инцидент, а не только когда и что произошло.
AI SRE использует эти связи для поиска релевантных данных и помогает командам расследовать причины поломок, а не просто констатировать их. Почему сервис оплаты перестал работать в 3 часа ночи? Как последнее развертывание повлияло на клиентов? Нужно ли нам увеличивать количество узлов после развертывания новой функции? Контекстный граф наблюдаемости предоставляет контекст для исследования этих вопросов, сокращая объем работы, которую команды иначе выполняли бы вручную, сопоставляя события и ресурсы.
Как визуально исследовать связи в контекстном графе наблюдаемости
Контекстный граф работает в фоновом режиме, но вы можете получить доступ к данным, на которых он построен, через пользовательский интерфейс Observe.
На странице набора данных вы можете изучить схему, свойства, теги корреляции и взаимосвязи набора данных. Представления «Ссылки» и «Фокус» показывают соединения наборов данных, а представление «Происхождение» показывает, как были получены наборы данных. В Observe также есть отдельная страница управления тегами, где можно просмотреть все теги корреляции в одном месте. Эти представления помогают пользователям проверять взаимосвязи наборов данных и отслеживать происхождение данных.
Рисунок 2: Представление «Ссылки» в Observe показывает соединения наборов данных.
Как контекстный граф наблюдаемости превращает связи в ответы с помощью API
Контекстный граф доступен для запросов через API, которые проходят по тем же связям, что формируют граф (наборы данных, ссылки и теги корреляции). Эти API помогают агентам идентифицировать сервисы и ресурсы, находить связанные данные и использовать результаты для продолжения расследования.
Контекстный граф — это агентная поверхность; поскольку это не просто пользовательский интерфейс, API внутри графа должны быть удобными для агентов. Они разработаны для быстрого возврата точных и релевантных ответов без использования лишних токенов.
Рисунок 3: Базовые API и доменные API помогают агентам перемещаться по контекстному графу наблюдаемости, чтобы точно отвечать на запросы пользователей.
В то время как представления «Ссылки», «Происхождение» и «Фокус» позволяют исследовать эти связи вручную, API позволяют перемещаться по графу из кода или позволить AI SRE от Observe сделать это за вас. Это делает граф доступным для запросов.
Обход графа следует тем же путем, что и расследование. Он начинается с термина («платежи», «apiserver») и использует API «поиск значений тегов» для разрешения его в значения тегов корреляции, которые идентифицируют сервис или ресурс — те же теги, которые связывают эту концепцию между наборами данных. Оттуда API «список наборов данных» и «список метрик» помогают найти связанные с ним наборы данных и метрики. Поскольку теги корреляции являются метаданными, доступными для поиска, это работает, даже если в среде их тысячи.
Граф также напрямую кодирует экспертные знания в области наблюдаемости, поэтому для типичных расследований не требуется вручную собирать необработанную телеметрию. Один вызов API «список APM-сервисов с RED-метриками» может вернуть частоту запросов, ошибки и длительность работы сервиса, в то время как API «граф вызовов» отображает взаимосвязи вызовов сервисов. Поскольку каждый ответ указывает на набор данных, метрику и временной интервал, стоящие за ним, следующий шаг в расследовании становится целенаправленным, а не слепым поиском.
Начало работы с Observe by Snowflake
Чтобы получить преимущества контекстного графа наблюдаемости, сначала необходимо передать данные инфраструктуры в Telemetry Data Lakehouse. Мы рекомендуем использовать агент Observe для сбора данных, но вы также можете использовать пользовательские интеграции или существующий коллектор.
Изучите Observe by Snowflake, чтобы увидеть, как связанная телеметрия способствует более быстрому проведению расследований.


