Примеры конфигураций определений Целей уровня обслуживания (SLO)

Материал из Документация Ключ-АСТРОМ

Применение Ключ-АСТРОМ / Облачная автоматизация / Цели уровня обслуживания (SLO) / Примеры конфигураций определений Целей уровня обслуживания (SLO)

Ключ-АСТРОМ предлагает набор готовых SLO для некоторых основных доменов мониторинга, которые можно настроить либо в мастере SLO, либо в глобальных настройках SLO.

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

Доступность уровня обслуживания

Базовый уровень доступности обслуживания рассчитывается путем деления количества успешных вызовов обслуживания ( builtin:service.errors.server.successCount) на общее количество вызовов обслуживания ( builtin:service.requestCount.server).

Пример

  • Метрическое выражение (100)*(builtin:service.errors.server.successCount:splitBy())/(builtin:service.requestCount.server:splitBy())
  • Селектор объектов type("SERVICE"),entityName("My service")

Эффективность обслуживания

SLO производительности обслуживания представляет собой процент «быстрых» вызовов обслуживания от общего числа вызовов обслуживания в течение временного интервала, где «быстрый» определяется с помощью настраиваемого условия.

В примере ниже показано, как определить выражение метрики, которое подсчитывает быстрые вызовы службы, и как определить SLO на основе этого выражения метрики в Ключ-АСТРОМ.

Пример

  • Метрическое выражение: ((builtin:service.response.time:avg:partition("latency",value("good",lt(10000))):splitBy():count:default(0))/(builtin:service.response.time:avg:splitBy():count)*(100)):default(100,always) Используя следующие преобразования, метрическое выражение возвращает значения, время отклика которых ниже определенного порогового значения.
Трансформация Объем Информация
Агрегация Объединяет значения, отличные от указанных null, и игнорирует остальные. В зависимости от варианта использования можно использовать несколько агрегаций, например, avg (для усреднения значений) и percentile (90)(для удаления выбросов).
Разделение Разделяет отдельные точки данных метрики на определенное количество временных интервалов в течение периода времени на основе значения good измерения метрики latency. Чтобы повысить точность SLO, уменьшите протяженность временного интервала, запросив более короткий таймфрейм.
Условие lt() изменяет метрическую единицу для порогового значения задержки ответа на микросекунды. Требуемой метрической единицей для SLO производительности обслуживания являются микросекунды.
По умолчанию Заменяет значения null в полезной нагрузке указанным значением (0).

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

Доступность метода обслуживания

Доступность метода обслуживания рассчитывается путем деления количества успешных вызовов службы запроса ключа ( builtin:service.keyRequest.errors.server.successCount) на общее количество вызовов службы запроса ключа ( builtin:service.keyRequest.count.server). Используется type("SERVICE_METHOD")фильтр SLO.

Пример конфигурации с фильтром для YOUR_METHOD_OF_INTEREST

  • <YOUR custom success metrics/filter service, endpoint, availability, and latency>/builtin:service.keyRequest.count.server:filter(eq("dt.entity.service\_method","SERVICE\_METHOD-XXX"))

В этом примере показано, как определить пользовательскую метрику службы, которая подсчитывает быстрые вызовы службы, и как определить SLO на основе этой пользовательской метрики в Ключ-АСТРОМ.

  1. Перейдите на любую из страниц вашей услуги, просмотрите ее типичную производительность в миллисекундах, а затем перейдите на страницу многомерного анализа. 220.png
  2. На странице многомерного анализа выберите метрику количества запросов и определите условие для любого из свойств вызова службы. В этом примере мы определяем условие для времени ответа, которое должно быть ниже 1300 миллисекунд, чтобы считаться быстрым вызовом для этой выбранной службы. 221.png
  3. После того, как вы определились с определенным условием, выберите Создать метрику. Определите свой собственный уникальный идентификатор метрики для этой метрики, чтобы использовать ее для построения графиков, оповещений и вашего SLO. Например, недавно созданная метрика fastcreditcardrequests приводит к уникальному идентификатору метрики calc:service:fastcreditcardrequests. 222.png
  4. Вы можете составить график общего количества запросов на обслуживание по данной услуге в сравнении с вашими запросами на быстрое обслуживание. Проверьте фильтр выбора сущностей для выбранной вами услуги (CreditCardValidation), или вы получите общее количество запросов для всех ваших услуг. Пример селектора объектов: type("SERVICE"),entityName("CreditCardValidation"))
  5. Результатом является окончательный статус SLO, отображаемый в списке SLO. 223.png

Пользовательский опыт

Ключ-АСТРОМ предлагает экспертизу в плане измерения реального пользовательского опыта предоставляемых услуг. Метрики Ключ-АСТРОМ, такие как Apdex (индекс производительности приложений) или оценка пользовательского опыта, могут использоваться в определении SLO.

Apdex определяет стандарт производительности, позволяющий разделить пользователей вашего приложения на три группы: УДОВЛЕТВОРЕННЫЕ , ТЕРПИМЫЕ и НЕУДОВЛЕТВОРЕННЫЕ.

Например, в качестве цели SLO для вашего приложения вы можете указать, что 90% всех ваших пользователей должны находиться в категории УДОВЛЕТВОРЕННЫХ.

224.png

Этот SLO рассчитывается путем деления количества пользователей, относящихся к категории УДОВЛЕТВОРЕННЫХ ( builtin:apps.web.actionCount.category:filter(eq(Apdex category,SATISFIED)):splitBy()), на общее количество пользователей, использующих веб-приложение или мобильное приложение ( builtin:apps.web.actionCount.category:splitBy()).

Пример

  • Метрическое выражение (100)*(builtin:apps.web.actionCount.category:filter(eq("Apdex category",SATISFIED)):splitBy())/(builtin:apps.web.actionCount.category:splitBy())
  • Селектор объектов type("APPLICATION"),entityName("My application")

Пользователи мобильных устройств без сбоев

Одной из важнейших метрик для измерения доступности и надежности развертывания вашего мобильного приложения (iOS и Android) является процент Crash free user rate. Поэтому используется встроенная метрика builtin:apps.other.crashFreeUsersRate.os. Эта метрика измеряет процент пользователей, которые открывают и используют мобильное приложение без сбоев.

Пример

  • Метрическое выражение (builtin:apps.other.crashFreeUsersRate.os:splitBy())
  • Селектор объектов type("MOBILE_APPLICATION"),entityName("My mobile app")

Синтетическая доступность

SLO синтетической доступности представляет собой процент времени, в течение которого синтетический тест находился в состоянии доступности, или, альтернативно, процент успешных тестов по отношению к общему числу выполненных тестов.

Для определения синтетической цели, основанной на времени, используется встроенная метрика builtin:synthetic.browser.availability.location.total.

При желании можно определить доступность на основе времени, исключая периоды технического обслуживания, используя встроенную метрику builtin:synthetic.browser.availability.location.totalWoMaintenanceWindow.

Пример

  • Метрическое выражение (builtin:synthetic.browser.availability.location.total:splitBy())
  • Селектор сущностей type("SYNTHETIC_TEST"),entityName("My synth test")