MORGAN
Активный пользователь
- Регистрация
- 04.06.2025
- Сообщения
- 1 179
- Реакции
- 1 068
- Баллы
- 113
Каждое наше приложение пишет множество метрик: системных (потребление CPU, памяти, очереди на диск…) и прикладных (количество операций, время их выполнения, коды ошибок…). Метрики позволяют отслеживать состояние наших сервисов в моменте и отслеживать динамику за определенный период. Мы складываем их в Graphite, а отображаем в Графане:
Различные метрики по запросам
Среди множества наших сервисов есть один, которой занимается обменом данными с одной государственной системой — Ветис.API. Чем эта система занимается не так важно, важно то, что стабильность этого API критически важна для функционирования бизнеса. В том числе и для ~19 000 клиентов Контура, которые интегрированы с государством через наши продукты.
Поэтому, как всякий уважающий себя проект, мы обложились метриками на взаимодействие с этим API вдоль и поперек, настроили себе разных графиков, по которым отслеживаем стабильность нашего взаимодействия, скорость обработки операций, наличие ошибок, их количество и состав. На основе этого мы с очень большой вероятностью можем сказать, на чьей стороне проблема, как хорошо отвечает Ветис.API, какие конкретно операции тормозят, доступен ли он для взаимодействия вообще.
Опираясь на эти метрики, мы можем предметно обсуждать проблемы с нашими клиентами и даже с разработчиками Ветис.API.
Но как это сделать? Самым простым способом на тот момент казалось выставить наши графики в Графане на отдельную страничку в интернет. Но здесь несколько проблем.
Метрики по операциям Ветис.API в разных разрезах.
Но данные‑то у нас по прежнему есть — те самые метрики, которые мы аккуратно складываем в хранилище. Значит нужно их достать и показать пользователям в удобном и наглядном формате.
Готовой библиотеки для получения метрик не было, поэтому мы быстренько написали свою. Получив только нужные метрики, мы собрали их в небольшой сервис для наших клиентов:
Из всего многообразия метрик мы выбрали две ключевые для наших клиентов — время обработки одной операции на стороне Ветис.API и доступность самого API.
Определили некие пороговые значения для времени выполнения каждой операции. Разделили их на 3 уровня:
Статистика за 24 часа позволяет отслеживать динамику по этим показателям.
Имея на руках всю необходимую информацию, мы сделали очевидное улучшение и стали уведомлять пользователей о проблемах в специальном телеграм‑канале:
Уведомления во время недоступности Ветис.API
Наш сервис отслеживает доступность API и информирует клиентов в самом начале появления проблем.
Количество просмотров мониторинга за день
На наш сервис регулярно ссылаются в профильных группах — пользователи находят подтверждение массовых сбоев или наоборот удостоверяются, что это локальные проблемы. На уведомления подписались более 1800 человек.
А команды разработки получили библиотеку для получения метрик в своих приложениях.
Различные метрики по запросам
Среди множества наших сервисов есть один, которой занимается обменом данными с одной государственной системой — Ветис.API. Чем эта система занимается не так важно, важно то, что стабильность этого API критически важна для функционирования бизнеса. В том числе и для ~19 000 клиентов Контура, которые интегрированы с государством через наши продукты.
Поэтому, как всякий уважающий себя проект, мы обложились метриками на взаимодействие с этим API вдоль и поперек, настроили себе разных графиков, по которым отслеживаем стабильность нашего взаимодействия, скорость обработки операций, наличие ошибок, их количество и состав. На основе этого мы с очень большой вероятностью можем сказать, на чьей стороне проблема, как хорошо отвечает Ветис.API, какие конкретно операции тормозят, доступен ли он для взаимодействия вообще.
Опираясь на эти метрики, мы можем предметно обсуждать проблемы с нашими клиентами и даже с разработчиками Ветис.API.
Мониторинг доступности
Запрос вида «А как там Ветис.API?» довольно актуален и у наших клиентов. Важно отделить проблемы клиента, наши проблемы и проблемы на стороне Ветис.API. И мы решили дать им ту информацию, что есть у нас, информацию из тех метрик, что мы собираем по взаимодействию с Ветис.API.Но как это сделать? Самым простым способом на тот момент казалось выставить наши графики в Графане на отдельную страничку в интернет. Но здесь несколько проблем.
- Проблема самих данных и их отображение
Метрики по операциям Ветис.API в разных разрезах.
- Проблема безопасности
Но данные‑то у нас по прежнему есть — те самые метрики, которые мы аккуратно складываем в хранилище. Значит нужно их достать и показать пользователям в удобном и наглядном формате.
Готовой библиотеки для получения метрик не было, поэтому мы быстренько написали свою. Получив только нужные метрики, мы собрали их в небольшой сервис для наших клиентов:
Из всего многообразия метрик мы выбрали две ключевые для наших клиентов — время обработки одной операции на стороне Ветис.API и доступность самого API.
Определили некие пороговые значения для времени выполнения каждой операции. Разделили их на 3 уровня:
- быстро — стабильная работа, закрашиваем интервал зеленым
- замедленная — выше чем обычно, но не критично для работы
- медленно — оказывает существенное влияние на работу.
Статистика за 24 часа позволяет отслеживать динамику по этим показателям.
Уведомления
Одной из главной ценностей нового сервиса было то, что он мог ответить на вопрос «Работает ли Ветис.API?». В моменты каких‑то проблем мы видели резко возросшую посещаемость нашего нового сервиса. Но это была реакция пользователей на какие‑то проблемы в их учетных системах — что‑то тормозило и они шли на наш сервис проверять, является ли проблема массовой. И там они могли узнать, допустим, что Ветис.API недоступен или наблюдаются задержки в обработке операций.Имея на руках всю необходимую информацию, мы сделали очевидное улучшение и стали уведомлять пользователей о проблемах в специальном телеграм‑канале:
Уведомления во время недоступности Ветис.API
Наш сервис отслеживает доступность API и информирует клиентов в самом начале появления проблем.
А какая польза?
Так на основе массива метрик одного приложения мы сделали полезный сервис для наших клиентов. С тех пор каждый день наблюдаем активность:
Количество просмотров мониторинга за день
На наш сервис регулярно ссылаются в профильных группах — пользователи находят подтверждение массовых сбоев или наоборот удостоверяются, что это локальные проблемы. На уведомления подписались более 1800 человек.
А команды разработки получили библиотеку для получения метрик в своих приложениях.

