Диаграмма топологии сервиса
В этой статье описывается, как быстро освоить процесс просмотра топологии сервиса.
Содержание
Предварительные требования
Для просмотра топологии сервиса необходимо:
- Для сервисов Istio: Убедиться, что сервис был инжектирован Sidecar. Подробности см. в разделе Add ServiceMesh Service.
- Для сервисов OpenTelemetry: Убедиться, что сервис был инжектирован OpenTelemetry Java Agent. Подробности см. в разделе Add OpenTelemetry Service.
Быстрый старт
В левой навигационной панели нажмите Service Topology.
Основное отображение страницы
На странице четко отображаются отношения вызовов между сервисами, где каждый узел и линия связи различаются по цвету.
- Линии связи представляют вызовы между сервисами, при этом их цвет меняется в зависимости от процента успешных вызовов. Серые линии означают отсутствие трафика по этим вызовам за выбранный период времени.
- Узлы представляют отдельные сервисы, цвет которых определяется долей Pod-ов сервиса.
Подробную легенду иконок узлов, пороговые значения цветов для узлов и линий связи, а также их значения смотрите в легенде, расположенной в левом верхнем углу диаграммы топологии.
Если сервис (и его Deployment, Pod) или ingress gateway, связанный с правилом тревоги, срабатывает на тревогу, на диаграмме топологии сервис или ingress gateway с тревогой будет отмечен значком Alarming (). Нажатие на значок
сервиса перенаправит вас на страницу Real-time Alarms для просмотра деталей тревожного правила.
По умолчанию диаграмма топологии автоматически обновляется каждые 5 секунд. Вы можете обновить вручную или настроить интервал автообновления:
Ручное обновление: Нажмите на в правом нижнем углу диаграммы топологии для ручного обновления данных;
Настройка интервала автообновления: Нажмите на время интервала рядом с в правом нижнем углу, чтобы задать интервал автообновления.
Просмотр топологии Istio Cross-Cluster
Если текущий проект связан с несколькими кластерами, управляемыми service mesh, выбор Cross-Cluster Topology позволяет просмотреть диаграмму топологии вызовов сервисов и ingress gateway, в которые инжектированы Sidecar, во всех пространствах имён текущего service mesh и проекта в рамках прав доступа аккаунта.
Примечание: Диапазон просмотра зависит от прав доступа пользователя к данным аккаунта; просмотр Tracing поддерживается только для сервисов в одном пространстве имён.
Например: Кластеры A и B управляются текущим service mesh, при этом в кластерах A и B существуют пространства имён an1 и bn1 соответственно, и у вас есть права просмотра для an1 и bn1. При входе в an1 для просмотра топологии сервиса по умолчанию вы можете видеть только диаграмму топологии вызовов всех сервисов в пространстве имён an1; при выборе All Clusters вы можете видеть диаграмму топологии вызовов всех сервисов в пространствах имён an1 и bn1, включая топологию вызовов сервисов из an1 в bn1.
Просмотр топологии вызовов сервисов в указанном пространстве имён
Нажмите и выберите выпадающий список Namespace над диаграммой топологии. Вы можете просмотреть топологию вызовов сервисов в указанном пространстве имён текущего кластера. По умолчанию установлено All Namespaces, отображая отношения вызовов всех управляемых пространств имён в кластере.
Просмотр локальной диаграммы топологии
Вы можете двойным щелчком по узлу (кроме узлов middleware с пометкой «Host Unknown») развернуть локальную топологию, центрированную на этом узле. Это позволяет быстро просмотреть состояние и данные всех узлов в восходящих и нисходящих отношениях вызовов целевого узла, что помогает сосредоточиться на анализе вызовов конкретного сервиса.
Просмотр подробной информации
Вы можете нажать на узел или линию связи, чтобы развернуть панель деталей справа, где доступны различные операции.
Просмотр Tracing
При нажатии на узел или линию связи в панели деталей отображается опция View Tracing, позволяющая перейти на страницу Tracing для просмотра данных Tracing текущего сервиса или отношения вызовов.
- Нажатие на узел > View Tracing: выполняется запрос всех span-данных, отправленных выбранным сервисом за текущий временной диапазон, установленный в диаграмме топологии. Например, если вы нажмёте на узел сервиса с именем «client» и выберете View Tracing, система найдёт все span-ы, принадлежащие сервису client за текущий временной диапазон.
- Нажатие на линию связи > View Tracing: выполняется запрос span-данных, соответствующих конкретному отношению вызовов за текущий временной диапазон, установленный в диаграмме топологии. Например, если вы нажмёте на линию связи от сервиса «client» к «server» и выберете View Tracing, система найдёт все span-ы, где «client» является вызывающим, а «server» — вызываемым, за текущий временной диапазон.
Примечание: Функция View Tracing поддерживает разные типы сервисов в зависимости от реализации service mesh:
- Для Istio поддерживаются только узлы ServiceMesh Service, Ingress Gateway и Egress Gateway
- Для OpenTelemetry поддерживаются узлы OpenTelemetry services и middleware (например, базы данных и очереди сообщений)
Если вы нажмёте на неподдерживаемые типы узлов или линии связи, включающие неподдерживаемые узлы, переход на страницу Tracing будет недоступен.
Просмотр мониторинга трафика сервиса
При нажатии на узлы ServiceMesh Service, OpenTelemetry Service, Ingress Gateway или Egress Gateway в панели деталей нажмите View Traffic Monitoring, чтобы перейти на страницу Monitoring и просмотреть подробные данные мониторинга текущего сервиса.
Просмотр информации о трафике
Примечание:
- Панель информации о трафике агрегирует только трафик, управляемый Sidecar, исключая трафик от коммуникаций с Unknown клиентами (трафик, не управляемый Sidecar). Полные данные о трафике можно посмотреть на странице Service Details или Monitoring.
- При сборе данных о трафике, если у клиента инжектирован Sidecar, коэффициент выборки трафика совпадает с коэффициентом выборки цепочки вызовов, настроенным в service mesh; иначе коэффициент выборки равен 100%.
- Временной диапазон запроса данных о трафике зависит от конфигурации хранения данных в системе мониторинга, интегрированной с service mesh. Например, если система мониторинга (например, Prometheus) настроена на хранение данных за последние 7 дней, система сможет отображать данные трафика только за последние 7 дней при запросе с временным диапазоном более 7 дней.
При нажатии на узел или линию связи в панели деталей отображаются графики трафика для текущего сервиса или отношения вызовов. Объяснения графиков для разных протоколов приведены ниже:
Протоколы HTTP/HTTP2/gRPC
Протокол TCP
Информация о middleware
При нажатии на линию связи, соединяющую OpenTelemetry сервис с middleware сервисом, отображается следующая информация:
Информация об узле
Примечание Полный список поддерживаемых типов middleware смотрите в разделе Node Types.
Информация о трафике
Относится к общему количеству запросов, сделанных OpenTelemetry сервисом к middleware за период запроса.