Лучшие практики интеграции Prometheus с APISIX
January 13, 2024
В современной облачной архитектуре мониторинг метрик вашего API-шлюза имеет решающее значение. Apache APISIX, выступая в роли высокопроизводительного API-шлюза, не только предлагает широкий функционал, но и поддерживает бесшовную интеграцию с Prometheus для сбора и мониторинга ключевых метрик трафика API. В этой статье рассматривается, как настроить и использовать Prometheus в Apache APISIX, выделяются важные аспекты и рекомендуются распространенные конфигурации метрик.
О Prometheus
Prometheus — это система мониторинга с открытым исходным кодом, которая собирает и хранит временные ряды данных, позволяя осуществлять мониторинг и анализ производительности системы в реальном времени. При интеграции с Apache APISIX Prometheus становится важным инструментом для сбора детализированных метрик, связанных с трафиком API.
Включение плагина Prometheus в Apache APISIX
-
Чтобы включить метрики Prometheus в Apache APISIX, начните с настройки плагина Prometheus в файле
config.yaml:plugins: - prometheus -
Настройте плагин Prometheus для нужного сервиса или API, который требуется собирать. Также можно настроить его глобально. Вот пример настройки плагина с использованием команды cURL:
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/hello", "plugins": { "prometheus":{} }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:80": 1 } } }'Для более сложных конфигураций обратитесь к: Документация по плагину Prometheus
Настройка стратегии сбора в Prometheus
В Prometheus настройте файл prometheus.yml, чтобы добавить APISIX в качестве новой цели мониторинга:
scrape_configs: - job_name: 'apisix' static_configs: - targets: ['<APISIX_IP>:<APISIX_PORT>']
Распространенные метрики в Apache APISIX
Метрики, специфичные для предприятий, могут различаться, но вот некоторые ключевые метрики в Apache APISIX, предоставляющие богатую информацию для мониторинга и анализа системы:
-
Метрики HTTP-запросов и ответов:
apisix_http_request_total: Записывает общее количество HTTP-запросов через APISIX, предоставляя обзор трафика системы.apisix_http_request_duration_seconds: Измеряет время обработки HTTP-запросов, помогая выявлять узкие места в производительности.apisix_http_request_size_bytes: Фиксирует размер HTTP-запросов для анализа данных.apisix_http_response_size_bytes: Мониторит размер HTTP-ответов для отслеживания объема данных ответа.
-
Метрики вышестоящих сервисов:
apisix_upstream_latency: Отражает задержку ответа вышестоящих сервисов.apisix_upstream_health: Указывает статус здоровья вышестоящих сервисов.
-
Метрики производительности системы:
apisix_node_cpu_usage: Отчитывает об использовании CPU узла APISIX.apisix_node_memory_usage: Предоставляет информацию об использовании памяти.
-
Метрики трафика:
apisix_bandwidth: Детализирует использование пропускной способности для входящего и исходящего трафика.
-
Метрики ошибок и исключений:
apisix_http_status_code: Распределяет коды состояния HTTP-ответов, особенно фокусируясь на ошибках 4xx и 5xx.
Визуализация и оповещения
Используйте интеграцию Grafana и Prometheus для создания дашбордов, визуализирующих эти метрики. Кроме того, можно настроить правила оповещений в Prometheus для установки оповещений на основе определенных условий.
Пример дашборда Grafana: Создайте различные графики в Grafana, такие как временные ряды, гистограммы или круговые диаграммы, чтобы отобразить метрики производительности APISIX. Например, дашборд, отображающий количество HTTP-запросов и среднее время ответа, предоставляет информацию о трафике и производительности в реальном времени.
Пример оповещений в Prometheus:
Правила оповещений в Prometheus можно настроить для различных условий. Например, если средняя продолжительность apisix_http_request_duration_seconds превышает предопределенный порог, Prometheus можно настроить на отправку критических оповещений.
Соображения по оптимизации
Хотя наличие обширных метрик Prometheus расширяет возможности мониторинга и оповещений, важно учитывать, что эти метрики потребляют вычислительные ресурсы. Больше метрик означает более высокие требования к ресурсам, что может повлиять на бизнес-системы.
Начиная с версии 3.0, Apache APISIX значительно оптимизировал плагин Prometheus, введя отдельный процесс для статистики и извлечения метрик. Это улучшение снижает влияние на бизнес-трафик, вызванное обширной статистикой метрик Prometheus, что было внесено API7.ai.
Заключение
Интегрируя Prometheus с Apache APISIX, предприятия получают глубокое понимание своей API-инфраструктуры, обеспечивая эффективную и безопасную работу. Мониторинг трафика API постепенно становится важным инструментом для упреждающего предотвращения проблем, оптимизации производительности и обеспечения безопасности.