Поддерживайте здоровье API с помощью APISIX и Prometheus

Bobur Umurzokov

Bobur Umurzokov

July 20, 2023

Technology

Проверки работоспособности API являются частью проактивного подхода к мониторингу общего состояния ваших API. Они позволяют вам быть в курсе состояния ваших API и выявлять любые проблемы на ранних стадиях. В этой статье мы рассмотрим, как APISIX и Prometheus работают вместе для сбора и анализа данных метрик проверки работоспособности, что упрощает мониторинг, диагностику и устранение проблем, связанных с API.

Почему это важно для бизнеса?

Установление индикаторов уровня обслуживания (SLI) и целей уровня обслуживания (SLO) стало важным компонентом лучших практик в области инженерии надежности сайтов (SRE). Они помогают команде устанавливать четкие цели для того, насколько хорошо должна работать служба (например, веб-сайт или приложение). Эти цели могут быть для внутренних служб (например, API, используемого собственными приложениями компании) или для публичных продуктов (используемых клиентами). Они предоставляют командам количественный подход к управлению производительностью системы. Например, распространенные SLI включают частоту ошибок, задержку, пропускную способность и доступность, а SLO может быть таким: "99,9% запросов API должны завершаться менее чем за 300 мс".

APISIX API Gateway находится на переднем крае вашей инфраструктуры API и может играть ключевую роль в измерении SLI и SLO. Вам не нужно думать о том, что измерять и как измерять, потому что это может стать проблемой, особенно в современных сложных и распределенных архитектурах. APISIX автоматически отслеживает все необходимые метрики, такие как задержка, неудачные запросы или пропускная способность для вышестоящих служб, используемых вашими API. APISIX может выполнять проверки работоспособности для серверных служб, обеспечивая их доступность для обработки запросов и предупреждая ответственные команды о потенциальных проблемах до их эскалации, чтобы минимизировать время простоя и повысить надежность системы.

Как работает проверка работоспособности API-шлюза?

Обычно активация проверок работоспособности для API — это простой процесс. Каждая служба требует только назначенного конечного API для проверки работоспособности (/health). Оттуда вы проверяете наиболее важные метрики для этой службы, такие как использование памяти, подключение к базе данных, продолжительность ответа и многое другое. Вы можете использовать платформы наблюдения, такие как Prometheus и Grafana, для отображения результатов, а также систему оповещений для немедленного уведомления о любых проблемах.

Одним из преимуществ APISIX является то, что он делает процесс настройки инструментов наблюдения еще проще для нескольких служб. APISIX периодически отправляет запросы на серверные службы, которыми он управляет (также известные как вышестоящие узлы). Если возвращается статус "здоров" (обычно HTTP-статус 200 OK), служба считается работоспособной. Шлюз также может оценивать время ответа, рассматривая медленный ответ как признак потенциальных проблем. Если служба не отвечает в течение заданного времени или возвращает статус ошибки, она помечается как неработоспособная. Шлюз прекращает маршрутизацию трафика на эту службу, чтобы предотвратить ошибки или замедления приложения, и перенаправляет трафик на здоровый узел. Узнайте, как включить проверку работоспособности здесь.

Сбор данных о проверке работоспособности с помощью плагина APISIX Prometheus

APISIX интегрируется с Prometheus через плагин под названием prometheus, предлагая эффективный способ сбора метрик API, включая те, которые связаны с состоянием работоспособности вышестоящих узлов (нескольких экземпляров серверной службы API). Вот как это работает:

  1. Когда плагин APISIX Prometheus активирован (см. как активировать здесь), он предоставляет URL для метрик, обычно /apisix/prometheus/metrics. Вы также можете настроить URI экспорта, добавить дополнительные метки, частоту сбора данных и другие параметры, настроив их в файле conf/config.yaml.
plugin_attr: prometheus: export_uri: /metrics
  1. Prometheus собирает данные с этого URL через определенные интервалы, собирая временные ряды, связанные с различными параметрами производительности, такими как количество запросов, задержка запросов, задержка вышестоящих узлов и коды состояния.
  2. С функцией пользовательских метрик Prometheus, выпущенной в версии APISIX 3.3.0, вы теперь можете предоставлять более детализированные данные метрик для ваших API. Этот механизм позволяет APISIX периодически проверять, являются ли вышестоящие узлы работоспособными или нет, и соответствующим образом корректировать маршрутизацию. Это может помочь предотвратить сбои и повысить надежность системы, что критически важно для любой инфраструктуры на основе API. Результаты этих проверок работоспособности включаются в метрики, которые предоставляет плагин Prometheus, предоставляя полное и актуальное представление о производительности ваших API. Например, если вы отправите простой запрос на конечную точку /metrics APISIX Gateway, вы сможете наблюдать собранные данные мониторинга и статус результатов проверки работоспособности вышестоящих узлов.
curl <http://127.0.0.1:9091/metrics> ... # HELP apisix_upstream_status Состояние вышестоящих узлов из проверки работоспособности # TYPE apisix_upstream_status gauge apisix_upstream_status{name="/apisix/upstreams/1",ip="172.27.0.5",port="443"} 0 apisix_upstream_status{name="/apisix/upstreams/1",ip="172.27.0.5",port="80"} 1 apisix_upstream_status{name="/apisix/upstreams/1",ip="172.27.0.7",port="443"} 0 apisix_upstream_status{name="/apisix/upstreams/1",ip="172.27.0.7",port="80"} 1

Значение 1 означает, что узел работоспособен, а 0 — что узел неработоспособен.

  1. Вы также можете увидеть результаты проверки работоспособности вышестоящих узлов на панели управления Prometheus:

Плагин APISIX Prometheus на панели управления

  1. Плагин APISIX Prometheus настроен на автоматическое подключение к Grafana для визуализации этих метрик.

Не менее важно, что также возможно включить Prometheus для сбора метрик для TCP/UDP. Поскольку наблюдаемость на транспортном уровне предоставляет информацию о том, как данные передаются между службами в вашей инфраструктуре, и может быть ключевой для диагностики проблем и оптимизации производительности.

Настройка плагина Prometheus

В контексте APISIX плагин Prometheus предоставляет несколько метрик по умолчанию. Эти метрики настраиваемы, и плагин может быть расширен для добавления дополнительных метрик в зависимости от конкретных требований. Команда API7.ai всегда готова ответить на любые вопросы, которые у вас могут возникнуть относительно проверки работоспособности и мониторинга API, а наши инженеры активно поддерживают новых пользователей APISIX, помогая им адаптироваться и изменять конфигурации APISIX по умолчанию в соответствии с их потребностями.

Пример из реальной жизни: Крупная сеть фаст-фуда улучшает мониторинг состояния серверов с помощью интеграции APISIX и Prometheus

Предположим, что существует ведущая глобальная сеть фаст-фуда с тысячами филиалов по всему миру (далее именуемая "Компания X"), которая стремилась достичь конфигурации активных серверов. Их цель состояла в том, чтобы все серверы или центры обработки данных могли делиться рабочей нагрузкой в реальном времени, не вызывая сбоев в обслуживании.

Технологическая команда компании автоматизировала процесс переключения между серверами или центрами обработки данных. Однако были случаи, когда бизнес-трафик варьировался между активными серверами, и нагрузка распределялась неравномерно. Некоторые серверы были перегружены, а другие получали меньше трафика, что приводило к неэффективности операций. В пиковые периоды это приводило к сбоям серверов и перебоям в обслуживании, что влияло на цифровые операции компании.

APISIX позволил компании постоянно отслеживать состояние своих вышестоящих серверов/центров обработки данных и автоматически переключать трафик на основе состояния работоспособности серверов. Если сервер считается неработоспособным, система может автоматически переключиться на другой здоровый сервер для поддержания бесперебойного обслуживания. В определенных сценариях, когда трафик был необычно мал или слишком велик для обработки сервером, механизм оповещения Prometheus срабатывал. Эта интеграция позволила операционной команде Компании X активно отслеживать состояние серверов, нагрузку трафика и другие важные метрики.

Заключение

В заключение, интеграция APISIX и Prometheus для получения данных метрик проверки работоспособности может значительно улучшить вашу экосистему метрик, предоставляя более глубокое понимание состояния ваших API. Это может в конечном итоге привести к лучшим бизнес-результатам, таким как повышение операционной эффективности, удовлетворенности клиентов и увеличение доходов. Поэтому, если вы хотите улучшить свою экосистему метрик, рассмотрите возможность использования возможностей APISIX и Prometheus.

Связанные ресурсы

Рекомендуемый контент

Tags: