• Русский
  • Диаграмма топологии сервиса

    В этой статье описывается процесс быстрого освоения просмотра топологии сервиса.

    Предварительные требования

    Для просмотра топологии сервиса необходимо:

    • Для сервисов 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

    ПараметрОписание
    Входящий/Исходящий трафикОбщее количество входящих/исходящих запросов за период запроса и доля трафика по HTTP статусам (Normal/2xx, 3xx, 4xx, 5xx).
    Наведение на столбчатую диаграмму показывает долю трафика по каждой категории.
    Входящий/Исходящий RPSОбщее количество входящего/исходящего трафика в RPS (запросов в секунду) и количество ошибочного входящего/исходящего трафика в RPS за период запроса.
    RPS = Количество запросов за период запроса / Длительность запроса (с).
    ТрафикОбщее количество запросов между сервисами за период запроса, а также количество и доля запросов по HTTP статусам (Normal/2xx, 3xx, 4xx, 5xx), NR (No Response).
    Наведение на столбчатую диаграмму показывает количество и долю запросов по каждой категории.
    RPSОбщее количество трафика в RPS и количество ошибочного трафика в RPS за период запроса.
    Время откликаВремя отклика запросов между сервисами или внутри сервиса, отображается как Average, TP 50, TP 95, TP 99.
    TP (Top Percentile) xx — минимальное время, за которое удовлетворяется xx процентов сетевых запросов, часто используется в мониторинге производительности систем.
    Наведение на кривую показывает время отклика за конкретный период.

    Протокол TCP

    ПараметрОписание
    Входящий/Исходящий трафикОбщий размер входящего/исходящего трафика в байтах за период запроса.
    TCP-соединенияОбщее количество соединений.
    Error Rate = Количество неудачных соединений / Общее количество соединений
    Success Rate = Количество успешных соединений / Общее количество соединений
    Наведение на столбчатую диаграмму показывает количество соединений по категориям.
    ТрафикОбщий размер трафика в байтах между сервисами за период запроса.
    Входящий/Исходящий (Bps)Скорость передачи байт (байт в секунду) входящего/исходящего сетевого трафика сервиса.

    Информация о middleware

    При нажатии на линию соединения, соединяющую OpenTelemetry сервис с middleware сервисом, можно просмотреть следующую информацию:

    Информация об узле

    ТипОписание
    DatabaseТип: тип базы данных, например MySQL, Oracle и др.
    Host: адрес хоста базы данных
    Details: имя пользователя базы данных, имя базы данных и другая информация
    Message QueueТип: тип очереди сообщений, например RabbitMQ, Kafka и др.

    Примечание Полный список поддерживаемых типов middleware смотрите в разделе Node Types.

    Информация о трафике

    Относится к общему количеству запросов, сделанных OpenTelemetry сервисом к middleware за период запроса.