Info
Content

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
Back to top