Grafana
Grafana — кроссплатформенное открытое программное обеспечение для аналитики и интерактивной визуализации данных в виде веб-приложения. Позволяет создавать графики, диаграммы и оповещения для веба при подключении к поддерживаемым источникам данных.
Существует также коммерческая версия Grafana Enterprise с дополнительными возможностями, распространяемая как для самостоятельной установки, так и через облачный сервис Grafana Labs[16]. Функциональность расширяется с помощью системы плагинов. Пользователи могут создавать сложные панели мониторинга[17] с помощью интерактивных конструкторов запросов. Продукт разделён на фронтенд и бэкенд: бэкенд написан на Go, а фронтенд — на TypeScript с использованием фреймворка React[18]. Переход на React с AngularJS, который использовался ранее, начался в 2018 году и завершился полным прекращением поддержки AngularJS в версии 12[19].
В качестве инструмента визуализации Grafana используется в составе стека мониторинга[20], часто совместно с базами данных временных рядов такими как InfluxDB, Prometheus[21][22] и Graphite[23]; платформами мониторинга такими как Sensu[24], Icinga, Checkmk[25], Zabbix, Netdata[22], и PRTG; SIEM-системами такими как Elasticsearch[21], OpenSearch[26], и Splunk; а также другими источниками данных. Графический интерфейс Grafana изначально был основан на версии 3 Kibana[27].
Проект был основан в 2014 году Торкелем Одегаардом (Torkel Ödegaard) как форк третьей версии Kibana[27].
2016 год стал переломным для продукта. С выходом Grafana 3.0 была представлена новая архитектура плагинов, позволившая сообществу создавать собственные панели визуализации и приложения[28]. В конце года в Grafana 4.0 была добавлена встроенная серверная система оповещений (Alerting), которая превратила Grafana из инструмента визуализации в полноценную платформу для мониторинга[29].
В 2017 году продолжалось развитие версий 4.x. Одним из заметных нововведений стала функция «Dashboard History» (история дашбордов), появившаяся в версии 4.4 и представлявшая собой систему контроля версий для панелей мониторинга[30].
В марте 2018 года вышел релиз Grafana 5.0, который внёс фундаментальные изменения в организацию рабочего пространства. Были добавлены папки для дашбордов, возможность объединять пользователей в команды и назначать права доступа на уровне папок и отдельных дашбордов[31]. В этом же году началась работа над проектом Loki — системой агрегации логов, вдохновлённой Prometheus[32]. Также в 2018 году с выходом пятой версии начался постепенный переход фронтенда с AngularJS на React, решение о котором было принято ранее.
В феврале 2019 года в Grafana 6.0 была добавлена нативная интеграция с Loki и представлен новый режим Explore, предназначенный для оперативного исследования данных и отладки[33]. Этот релиз также предоставил разработчикам платформу на основе React для создания плагинов. В ноябре 2019 года была выпущена первая общедоступная версия Loki 1.0[34].
В 2020 году с выходом Grafana 7.0 платформа завершила формирование триады наблюдаемости, добавив трассировку как основной компонент наравне с метриками и логами. Были добавлены нативные интеграции с системами Jaeger и Zipkin. Осенью того же года был анонсирован Tempo — новый масштабируемый бэкенд для хранения трассировок, использующий для хранения данных только объектные хранилища[35].
2021 год ознаменовался выпуском Grafana 8, в котором была представлена новая унифицированная система оповещений (Unified Alerting). Она была разработана для объединения оповещений, создаваемых на панелях дашбордов, и оповещений в стиле Prometheus в едином интерфейсе[36]. В этом же году лицензия на Grafana, Loki и Tempo была изменена с Apache 2.0 на AGPLv3.
В 2022 году компания расширила свою экосистему двумя новыми проектами с открытым исходным кодом. В марте был представлен Mimir — масштабируемый бэкенд для долгосрочного хранения метрик из Prometheus[37]. В ноябре был анонсирован Phlare — бэкенд для непрерывного профилирования[38]. Оба проекта используют схожую архитектуру, рассчитанную на горизонтальное масштабирование и использование объектных хранилищ. С выходом Grafana 9.0 в июне 2022 года унифицированная система оповещений, представленная годом ранее, стала использоваться по умолчанию[39][40].
В 2023 году с выходом Grafana 10 компания сосредоточилась на улучшении пользовательского опыта и расширении экосистемы. Была представлена библиотека для фронтенда Scenes (в сентябре стала общедоступной), предназначенная для создания интерактивных приложений внутри Grafana[41]. Также было запущено решение Frontend Observability для мониторинга реального пользовательского опыта (RUM) на базе SDK Grafana Faro[42]. Экосистема пополнилась хранилищем трассировок Tempo 2.0 с новым языком запросов TraceQL и инструментами для автоматической инструментации кода Grafana Beyla и Grafana Pyroscope[43].
2024 год прошёл под девизом «укрощения сложности»[44] и ознаменовался стратегическим сдвигом в сторону OpenTelemetry. Был представлен Grafana Alloy — дистрибутив OpenTelemetry Collector, который заменил Grafana Agent и стал основным инструментом для сбора телеметрии[45]. С выходом Grafana 11 была завершена миграция архитектуры дашбордов на библиотеку Scenes[46], полностью прекращена поддержка AngularJS[47] и появились первые функции на базе ИИ для автоматической генерации названий панелей[48].
В 2025 году ключевым направлением стала концепция «наблюдаемость как код» (Observability as Code)[49]. Выпуск Grafana 12 представил функцию Git Sync для синхронизации дашбордов с репозиториями GitHub, а также новые экспериментальные API для управления конфигурациями через инструменты вроде Terraform[50]. Были анонсированы ИИ-помощник Grafana Assistant (в закрытом превью) для анализа данных на естественном языке[51] и инструмент диагностики Grafana Advisor[52]. В этом же году компания передала инструмент Grafana Beyla в проект OpenTelemetry, подтвердив свою приверженность открытым стандартам[51].
Grafana построена по клиент-серверной архитектуре и состоит из двух основных частей: серверной (бэкенд) и клиентской (фронтенд). Ключевой особенностью архитектуры является её модульность: сама по себе Grafana не хранит данные, а выступает в роли слоя для визуализации, запрашивая информацию из различных подключённых систем через систему плагинов.
Бэкенд написан на языке программирования Go. Он отвечает за обработку данных, выполнение запросов к источникам данных, управление пользователями и сессиями, а также за систему оповещений. Серверная часть была впервые представлена в версии 2.0, выпущенной в 2015 году; до этого Grafana была исключительно фронтенд-приложением. Современная система бэкенд-плагинов, позволяющая запускать код плагина на Go в виде отдельного подпроцесса, была представлена в Grafana 7.0[53].
Фронтенд, с которым взаимодействуют пользователи, написан на TypeScript с использованием фреймворка React[54]. Изначально для фронтенда использовался AngularJS, однако в 2018 году с выходом Grafana 5 начался постепенный переход на React. Важной вехой стал выпуск Grafana 6.0 в 2019 году, в котором была представлена платформа на React для разработки плагинов. Поддержка AngularJS была официально прекращена (deprecated) в Grafana 9 и полностью удалена в Grafana 11 в 2024 году. В 2023 году с выходом Grafana 10 была представлена новая фронтенд-библиотека Scenes, на которую в 2024 году (Grafana 11) была полностью переведена архитектура дашбордов для повышения их стабильности и гибкости.
Экосистема Grafana включает в себя набор специализированных бэкендов с открытым исходным кодом, предназначенных для сбора, хранения и обработки различных типов телеметрии. Эти компоненты, часто объединяемые в стек LGTM (Loki, Grafana, Tempo, Mimir), позволяют построить комплексную платформу наблюдаемости.
- Grafana Alloy — дистрибутив OpenTelemetry Collector, который пришёл на смену Grafana Agent и стал основным инструментом для сбора телеметрии (метрик, логов, трассировок и профилей). Его появление в 2024 году подчеркнуло стратегический сдвиг компании в сторону поддержки стандарта OpenTelemetry.
- Loki — система для агрегации и хранения логов, созданная по образу Prometheus. Ключевая особенность Loki заключается в том, что он индексирует не всё содержимое логов, а только небольшой набор меток для каждого потока, что делает его экономичным и быстрым.
- Tempo — масштабируемый бэкенд для хранения распределённых трассировок. Он использует только объектные хранилища для данных и предоставляет специальный язык запросов TraceQL для их анализа.
- Mimir — горизонтально масштабируемое, высокодоступное и мультиарендное хранилище для долгосрочного хранения метрик из Prometheus. Проект был представлен в 2022 году и рассчитан на обработку миллиардов временных рядов.
- Phlare — бэкенд для непрерывного профилирования, позволяющий собирать, хранить и анализировать данные о производительности кода. Как и другие компоненты стека, он использует объектные хранилища и имеет масштабируемую архитектуру.
Приверженность компании открытым стандартам также подчёркивается передачей в 2025 году инструмента для автоматической eBPF-инструментации Grafana Beyla в проект OpenTelemetry.
Grafana предоставляет пользователям возможность экспортировать как целые дашборды, так и данные из отдельных панелей в различных форматах. Выбор формата зависит от цели: миграция конфигураций, анализ данных или создание отчётов.
- JSON — основной формат для экспорта и импорта дашбордов. JSON-файл содержит полную структуру дашборда, включая все его настройки, переменные, запросы к источникам данных и стили. Этот метод используется для переноса дашбордов между разными экземплярами Grafana, а также для их хранения в системах контроля версий[55]. Функция доступна во всех версиях Grafana[56].
- PDF — используется для создания отчётов на основе дашбордов для их последующего распространения[57]. Встроенная функция экспорта в PDF доступна в коммерческой версии Grafana Enterprise и в облачной подписке Grafana Cloud[56]. Для бесплатной версии Grafana (OSS) существуют сторонние плагины и инструменты, позволяющие реализовать аналогичную функциональность[58].
- CSV — позволяет экспортировать необработанные данные непосредственно из отдельных панелей (например, графиков или таблиц) для дальнейшего анализа в табличных процессорах, таких как Microsoft Excel или Google Таблицы[59]. Экспорт осуществляется через меню «Inspect» (Проверить) на выбранной панели[60].
Общие сведения
| Grafana | |||
|---|---|---|---|
| Тип | Бизнес-аналитика | ||
| Автор | Торкель Одегаард[1] | ||
| Разработчик | Grafana Labs | ||
| Написана на | Go и TypeScript | ||
| Интерфейс | Веб-интерфейс[2] | ||
| Движки | Бэкенд на Go, фронтенд на TypeScript и React[3] | ||
| Операционные системы | Linux, Windows, macOS[4] | ||
| Языки интерфейса | Английский, русский, испанский, немецкий, французский, китайский и другие[5] | ||
| Первый выпуск | 2014[6] | ||
| Аппаратные платформы | x86-64, ARM64, s390x[7] | ||
| Последняя версия | 12.1.1[8] (13 августа 2025[9]) | ||
| Тестовая версия | 12.3.0-17718666199[10] (15 сентября 2025[10]) | ||
| Репозиторий | [11] github.com/grafana/grafa… | ||
| |||
| |||
| Состояние | Активная разработка[14] | ||
| Лицензия | AGPLv3[15] | ||
| Сайт | grafana.com | ||