Grafana¶
Grafana - это опенсорсная платформа для визуализации, мониторинга и анализа данных.
Запуск через docker-compose¶
Делаем файл docker-compose.yml с содержимым:
version: '3'
services:
grafana:
restart: unless-stopped
image: grafana/grafana-oss
volumes:
- data:/var/lib/grafana
- provisioning:/etc/grafana/provisioning
ports:
- "9000:3000"
volumes:
data:
provisioning:
Запускаем при помощи docker compose up -d
. Заходим на <ip_сервера>:9000
, дефолтный логин и пароль: admin/admin.
Подпись кастомных плагинов¶
Новые версии Grafana перед запуском плагина проверяют его подпись. Без подписи плагин работать не будет, а в логе можно будет увидеть такие сообщения:
logger=plugin.loader lvl=dbug msg="Loading plugin" path=/var/lib/grafana/plugins/test/dist/plugin.json
logger=plugin.loader lvl=dbug msg="Plugin is unsigned" id=myorg-test-datasource
Для устранения проблемы нужно подписать плагин для приватного использования.
Получаем токен в Grafana Cloud¶
Перед получением подписи регистрируемся в Grafana Cloud и после регистрации, чтобы снова не копаться в куче ссылок переходим туда же.
Переходим в пункт API Keys, нажимаем на кнопку Add API Key и создаем новый ключ. В поле Role выбираем "PluginPublisher":
После создания ключа обязательно его куда-то копируем и никому не показываем.
Исправляем ID организации в плагине¶
При подписи плагина организация в plugin.json
должна совпадать с той, чей подписью подписывается плагин.
Я подписываю плагин myorg-test-datasource
, где myorg
- это и есть название организации. В моем случае я должен заменить его на kiriharu
, получится kiriharu-test-datasource
.
Подписываем¶
Для подписи необходимо иметь установленный nodejs и npx. Npx устанавливается командой npm install -g npx
.
Перед подписью важно собрать сам плагин, при сборке мы должны получить папочку dist
с готовым плагином. Собираем плагин по гайду и переходим к самой подписи.
Для начала, добавляем GRAFANA_API_KEY
в переменную окружения:
1. Если линуксы: export GRAFANA_API_KEY=<YOUR_API_KEY>
2. Если винда c повершеллом: $env:GRAFANA_API_KEY= '<YOUR_API_KEY>'
Запускаем npx скрипт для подписи, в --rootUrls
указываем инстансы на которых будет работать плагин: