← Назад

Как вывести данные Яндекс Метрики в Grafana через API и плагин Infinity

Как вывести данные Яндекс Метрики в Grafana через API и плагин Infinity
Как вывести данные Яндекс Метрики в Grafana через API и плагин Infinity

Мониторинг Яндекс.Метрики в Grafana через Docker Compose: Создание кэширующего API-прокси

Практическое руководство по развертыванию инфраструктуры сбора данных с помощью Flask, Infinity Datasource и автоматического провижнинга.

Современная веб-аналитика требует не просто сбора данных, но и их удобной визуализации в единых корпоративных интерфейсах. Популярный сервис Яндекс.Метрика предоставляет мощное API для извлечения сырых данных и агрегированных показателей. Однако прямая интеграция Grafana с API Яндекс.Метрики сопряжена с рядом трудностей: жесткие лимиты на количество запросов (rate limits), задержки сети и необходимость безопасного хранения токенов авторизации.

Решением этой проблемы является создание промежуточного кэширующего прокси-сервера. В данной статье мы подробно разберем готовую архитектуру на базе Docker Compose, которая автоматически разворачивает стек из веб-интерфейса Portainer для управления контейнерами, легковесного прокси на Python (Flask) и преднастроенной Grafana с плагином Infinity.

Архитектура и компоненты системы

Представленный файл конфигурации docker-compose.yml объединяет три изолированных сервиса, взаимодействующих внутри внутренней сети Docker:

  • Portainer (portainer/portainer-ce): Графическая панель для управления контейнерами, томами и сетями. Позволяет быстро отслеживать состояние системы без использования CLI.
  • Metrika-proxy (python:3.11-slim): Сердце системы. Самостоятельное микроприложение на Flask, которое запрашивает данные у Яндекса, фильтрует их, обрабатывает цели и сохраняет в оперативной памяти на заданное время (TTL).
  • Grafana (grafana/grafana-oss): Платформа визуализации, в которую автоматически внедряются настройки источника данных и дашборда при старте контейнера.

Глубокий разбор кэширующего прокси-сервера

Компонент metrika-proxy решает критически важную задачу оптимизации запросов. API Яндекс.Метрики накладывает квоты на количество обращений в сутки и в секунду. Если даш