Grafonnet
Раньше была библиотека Grafonnet-lib - https://github.com/grafana/grafonnet-lib
Она писалась людьми вручную поэтому отставала от актуальных возможностей графаны
Поэтому появилась новая библиотека Grafonnet - https://github.com/grafana/grafonnet
Она генерируется автоматически из Grafana SDK, поэтому она лучше
Спера делаем в репе
jb init
jb install github.com/grafana/grafonnet/gen/grafonnet-latest@main
init
создаст пустой jsonnetfile.json
Далее jb init
установит указанную библиотеку и пропишет ее в этот файл (а также будет создан jsonnetfile.lock.json
с конкретными версиями и хэшами)
Теперь у нас есть папка vendor
со всеми зависимостями
Пример простейшего дашборда:
🚀 cat test-dashboard.jsonnet
local grafonnet = import 'github.com/grafana/grafonnet/gen/grafonnet-latest/main.libsonnet';
grafonnet.dashboard.new('My Test Dashboard')
🚀 jsonnet -J vendor/ test-dashboard.jsonnet
{
"schemaVersion": 39,
"time": {
"from": "now-6h",
"to": "now"
},
"timezone": "utc",
"title": "My Test Dashboard"
}
Импорт библиотеки происходит следующей строкой:
local grafonnet = import 'github.com/grafana/grafonnet/gen/grafonnet-latest/main.libsonnet';
Если открыть этот файл, то видно что latest
ссылается на последнюю версию
🚀 cat vendor/github.com/grafana/grafonnet/gen/grafonnet-latest/main.libsonnet
import 'github.com/grafana/grafonnet/gen/grafonnet-v11.0.0/main.libsonnet'
Важно помнить что библиотека генерится из SDK, и версия библиотеки совпадает с версией графаны
У меня Grafana 10.4.8, поэтому я беру не latest
, а v10.4.0
local grafonnet = import 'github.com/grafana/grafonnet/gen/grafonnet-v10.4.0/main.libsonnet';
Также нужно убедиться что в jsonnetfile.json
прописана правильная версия и если изменял jsonnetfile.json
то надо сделать jb update
No Comments