Иерархия метрик сервисов

Руководство по иерархии метрик системы мониторинга: от бизнес-приложений до отдельных эндпоинтов

Система Proto Observability Platform организует сущности контроля и метрики по иерархии:

Бизнес-приложенияСервисы.

У каждого сервиса есть Инстансы (экземпляры) и Эндпоинты (конечные точки).

Диаграмма взаимосвязей

graph TD
    subgraph " "
        direction LR
        BA1(Бизнес-приложение 1)
        BA2(Бизнес-приложение ...)
    end

    subgraph S1 [Сервис 1]
        D(Инстанс 1.1)
        E(Инстанс 1.2)
        G(Эндпоинт 1.1)
        H(Эндпоинт 1.2)
    end
    
    subgraph S2 [Сервис 2]
        F(Инстанс 2.1)
        I(Эндпоинт 2.1)
    end

    BA1 --> A(Сервис 1)
    BA1 --> B(Сервис 2)

    A --> S1
    B --> S2

    style A fill:#e1bee7,stroke:#4a148c,stroke-width:2px,color:#000
    style B fill:#e1bee7,stroke:#4a148c,stroke-width:2px,color:#000
    style BA1 fill:#b3e5fc,stroke:#01579b,stroke-width:2px,color:#000
    style BA2 fill:#b3e5fc,stroke:#01579b,stroke-width:2px,color:#000
    style D fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px,color:#000
    style E fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px,color:#000
    style F fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px,color:#000
    style G fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#000
    style H fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#000
    style I fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#000

Диаграмма метрик

graph TD
    subgraph "Сущности"
        BA(Бизнес-приложение)
        S(Сервис)
        E(Эндпоинт)
        I(Инстанс)
    end

    subgraph "Метрики"
        subgraph "Общие для всех"
            CM("Вызовы (шт, rpm)<br/>Ошибки (шт, %)<br/>SLA<br/>Время отклика (P50-P99)")
        end
        
        subgraph "Специфичные"
            SM_APDEX("APDEX")
            SM_WC("Wall Clock %")
            SM_RT("<b>Runtime-метрики</b><br/>(JVM, .NET, Go)")
        end
    end

    BA --> CM
    S --> CM
    E --> CM
    I --> CM

    S --> SM_APDEX
    E --> SM_WC
    I --> SM_RT

    style BA fill:#b3e5fc,stroke:#01579b,stroke-width:2px,color:#000
    style S fill:#e1bee7,stroke:#4a148c,stroke-width:2px,color:#000
    style E fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#000
    style I fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px,color:#000
    style CM fill:#b2dfdb,stroke:#004d40,stroke-width:2px,color:#000
    style SM_APDEX fill:#ffffff,stroke:#000000,stroke-width:2px,color:#000
    style SM_WC fill:#ffffff,stroke:#000000,stroke-width:2px,color:#000
    style SM_RT fill:#ffcdd2,stroke:#b71c1c,stroke-width:3px,color:#000

1. Бизнес-приложения

Бизнес-приложение представляет собой логическую группировку связанных сервисов, реализующих определенную бизнес-функциональность. Например, e-commerce portal, ДБО физлиц, ДБО юрлиц и тд.

Дашборд бизнес-приложения

Основные метрики бизнес-приложений:

Агрегированные показатели:

  • Количество сервисов - общее число сервисов в приложении
  • Вызовы в минуту (RPM) - суммарное количество запросов по всем сервисам
  • Процент ошибок - агрегированный процент ошибок по всем сервисам
  • Статус здоровья - общий статус работоспособности приложения, определяется на основе правил, затрагивающих сервисы, входящие в бизнес-приложение

Алерты и мониторинг:

  • CRITICAL - кол-во критических алертов за период
  • WARNING - кол-во алертов уровня предупреждение за период
  • Общее количество ошибок - суммарное количество ошибок за период
  • SLA - уровень обслуживания, считается как обратное к рейту ошибок при наличии трафика

Дашборд бизнес-приложения включает:

Основные виджеты:

  • Всего транзакций с трендом за период
  • Процент ошибок с динамикой изменений
  • Время транзакций P75 - время отклика 75-го перцентиля
  • Здоровье хостов - статус работоспособности инфраструктуры

Аналитические графики:

  • Вызовы - временной график количества запросов с разбивкой на успешные и в минуту
  • Ошибки - график ошибок с выделением вызовов с ошибками и процента вызовов с ошибками
  • Время исполнения - метрики времени отклика (P50, P75, P90, P95, P99)

Детализация по сервисам:

  • Вызовы по сервисам - распределение нагрузки
  • Сервисы с наибольшим количеством ошибок - топ проблемных сервисов

2. Сервисы

Сервис представляет отдельный компонент системы, который выполняет определенную функцию. Сервис – это одна кодовая база, например, одно микросервисное приложение, запущенное в десятке подов в Kubernetes или один гигантский PHP-монолит, развернутый на десяти серверах.

Дашборд сервиса

Основные метрики сервисов:

Производительность:

  • Всего транзакций - общее количество обработанных запросов
  • Процент ошибок - доля запросов, завершившихся с ошибкой
  • Время транзакций - среднее время обработки запросов
  • SLA - уровень доступности сервиса

Статусы и алерты:

  • CRITICAL - кол-во критических алертов за период
  • WARNING - кол-во алертов уровня предупреждение за период
  • Общее количество ошибок

Детализированные графики:

  • Вызовы - график количества запросов по времени с разделением на общие вызовы и вызовы в минуту
  • Ошибки - временной график с выделением вызовов с ошибками и процента вызовов с ошибками
  • Время исполнения - метрики времени отклика по перцентилям (P50, P75, P90, P95, P99)

Топ-аналитика:

  • Top-5 времязатратных транзакций
  • Top-5 групп ошибок

Специализированные виджеты:

  • APDEX - индекс удовлетворенности пользователей
  • Вызовы по HTTP кодам - распределение ответов
  • Здоровье хостов - состояние инфраструктуры, на которой работает сервис

3. Инстансы

Инстанс представляет отдельный экземпляр выполнения сервиса на конкретном хосте или в контейнере.

Основные метрики инстансов:

Помимо стандартных метрик производительности, для инстансов доступны специфичные Runtime-метрики, такие как состояние JVM, сборка мусора, пулы потоков для Java-сервисов, или аналогичные метрики для Go и .NET.

Детальные метрики инстанса:

Дашборд инстанса - метрики JVM

Для конкретного инстанса доступны:

Основные показатели:

  • Вызовы
  • Ошибки
  • Время отклика (P75)

Производительность:

  • Общие вызовы
  • Ошибки
  • Время отклика

SLA и доступность:

  • SLA инстанса
  • Вызовы в минуту
  • Количество ошибок

HTTP-статистика:

  • Количество вызовов по кодам ответа

4. Эндпоинты

Эндпоинт представляет конкретную точку входа API или функцию сервиса.

Эндпоинты сервиса

Основные метрики эндпоинтов:

Производительность эндпоинта:

  • Вызовы
  • Ошибки
  • Время отклика (P75)

Детальные графики:

  • Вызовы
  • Ошибки
  • Время отклика

SLA и надежность:

  • SLA эндпоинта
  • Вызовы по HTTP кодам ответа

Группы ошибок эндпоинта:

  • Основные категории ошибок

Дашборд эндпоинта

Заключение

Иерархическая структура метрик позволяет:

  1. На уровне бизнес-приложений - получить общее представление о состоянии всей системы.
  2. На уровне сервисов - анализировать производительность отдельных компонентов, их эндпоинтов и инстансов.
  3. На уровне инстансов - выявлять проблемы конкретных экземпляров сервиса.
  4. На уровне эндпоинтов - детализировать проблемы до конкретных API-вызовов сервиса.

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