Бэкэнд-плагин Grafana, который обрабатывает рендеринг панелей и информационных панелей в PNG с помощью безголового браузера (Chromium).
Линукс (х64)
Windows (x64)
Mac OS X (x64)
Этот плагин упакован в один исполняемый файл со средой выполнения Node.js и браузером Chromium. Это означает, что для работы плагина вам не обязательно устанавливать Node.js и Chromium в вашей системе.
Однако браузер Chromium зависит от определенных библиотек. Если в вашей системе установлены не все эти библиотеки, вы можете увидеть некоторые ошибки при попытке визуализировать изображение. Дополнительную информацию, включая помощь по устранению неполадок, можно найти в документации по рендерингу изображений Grafana.
Для рендеринга изображений требуется много памяти, главным образом потому, что Grafana создает экземпляры браузера в фоновом режиме для фактического рендеринга. Мы рекомендуем иметь минимум 16 ГБ свободной памяти для системы рендеринга изображений.
Параллельная обработка нескольких изображений требует еще большего объема памяти. Вы можете использовать службу удаленного рендеринга для рендеринга изображений в удаленной системе, поэтому ресурсы вашей локальной системы не будут затронуты.
Вы можете установить плагин с помощью Grafana CLI (рекомендуемый способ) или с помощью образа Grafana Docker.
Плагины grafana-cli устанавливают grafana-image-renderer
Этот плагин несовместим с текущим образом Grafana Docker и требует дополнительных зависимостей на уровне системы. Мы рекомендуем настроить другой контейнер Docker для рендеринга и использовать вместо него удаленный рендеринг. Инструкции см. в разделе Запуск в Docker.
Если вы все же хотите установить плагин с образом Grafana Docker, обратитесь к инструкциям по созданию собственного образа Grafana в документации Grafana Docker.
Примечание. Требуется подключение к Интернету.
Вы можете запустить этот плагин как удаленную службу HTTP-рендеринга. В этой настройке Grafana визуализирует изображение, отправляя HTTP-запрос к удаленной службе рендеринга, которая, в свою очередь, визуализирует изображение и возвращает его обратно в HTTP-ответе в Grafana.
Вы можете запустить службу удаленного рендеринга HTTP с помощью Docker или как отдельное приложение Node.js.
Изображения Grafana Docker публикуются на Docker Hub.
В следующем примере показано, как запустить Grafana и службу удаленного рендеринга HTTP в двух отдельных контейнерах Docker с помощью Docker Compose.
Создайте docker-compose.yml
со следующим содержимым:
версия: '2'services: grafana:image: grafana/grafana:latestports: - среда '3000:3000': GF_RENDERING_SERVER_URL: http://renderer:8081/render GF_RENDERING_CALLBACK_URL: http://grafana:3000/ GF_LOG_FILTERS: рендеринг:отладка рендерер: изображение: графана/графана-изображение-рендерер: последние порты: - 8081
Затем запустите docker Compose.
докер-составить
В следующем примере описывается, как создать и запустить службу удаленного рендеринга HTTP как автономное приложение Node.js и соответствующим образом настроить Grafana.
Клонируйте Git-репозиторий плагина рендеринга изображений Grafana.
Установите зависимости и выполните сборку:
установка пряжи --pure-lockfile сборка пряжи
Запустите сервер:
сборка узла/сервер app.js --port=8081
Обновите конфигурацию Grafana:
[rendering] server_url = http://localhost:8081/render callback_url = http://localhost:3000/
Перезапустите Графану.
Доступ к конечным точкам рендеринга ограничен запросами, предоставляющими токен аутентификации. Этот токен должен быть настроен в файле конфигурации Grafana и файле конфигурации средства визуализации. Этот токен важен при запуске плагина в режиме удаленного рендеринга, чтобы избежать несанкционированного раскрытия файлов (см. CVE-2022-31176).
См. документацию по рендерингу изображений Grafana, чтобы настроить этот секретный токен. Значение по умолчанию -
настроено как в Grafana, так и в средстве рендеринга изображений, когда вы начинаете, но мы настоятельно рекомендуем вам обновить его до более безопасного значения.
Доступные параметры конфигурации см. в документации по рендерингу изображений Grafana.
Для получения помощи по устранению неполадок обратитесь к документации по устранению неполадок Grafana Image Rendering.
Чтобы запустить наборы автоматизированных тестов рендеринга изображений, вам необходимо запустить следующую команду из корневой папки:
yarn test
Это запустит экземпляр Grafana в Docker, а затем запустит наборы тестов.
Примечания:
Если в файлах эталонных изображений (расположенных в /tests/testdata
) есть какие-то ожидаемые изменения, запустите yarn test-update
и отправьте обновленные ссылки.
Если тесты не пройдены и вы хотите увидеть разницу между полученным изображением и эталонным изображением, запустите yarn test-diff
. Это создаст изображения (называемые diff_<test case>.png
), содержащие различия в папке /tests/testdata
.
Если тесты прошли успешно в вашей локальной среде, но не прошли в Drone. Вы можете выполнить следующие действия, чтобы запустить тесты в среде, аналогичной конвейеру Drone. Это смонтирует ваши локальные файлы репозитория grafana-image-renderer
в образе Docker, поэтому любые изменения, происходящие в образе Docker, будут доступны в вашей локальной среде. Это позволяет вам запускать yarn test-diff
и yarn test-update
в Docker и видеть результаты локально.
Запустите среду Drone в Docker:
cd ./devenv/docker/drone docker-compose up
Откройте терминал в контейнереdrone drone-docker-puppeteer
и выполните следующие команды:
cd /drone/src PUPPETEER_CACHE_DIR=/drone/src/cache yarn install --frozen-lockfile --no-progress PUPPETEER_CACHE_DIR=/drone/src/cache CI=true yarn test-ci
Примечания. В контейнере Docker тесты могут занять больше времени. Если у вас возникли проблемы с тайм-аутом, вы можете запустить тестовую команду с --testTimeout option
:
PUPPETEER_CACHE_DIR=/drone/src/cache CI=true yarn test-ci --testTimeout=10000