grafana-watcher: wait for Grafana to be available and initialize
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
fsnotify "gopkg.in/fsnotify.v1"
|
||||
|
||||
@@ -85,9 +86,32 @@ func main() {
|
||||
}
|
||||
|
||||
g := grafana.New(*grafanaUrl)
|
||||
du := updater.NewGrafanaDashboardUpdater(g.Dashboards(), filepath.Join(*watchDir, "*-dashboard.json"))
|
||||
|
||||
for {
|
||||
log.Println("Waiting for Grafana to be available.")
|
||||
_, err := g.Datasources().All()
|
||||
if err == nil {
|
||||
break
|
||||
}
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
|
||||
su := updater.NewGrafanaDatasourceUpdater(g.Datasources(), filepath.Join(*watchDir, "*-datasource.json"))
|
||||
log.Println("Initializing datasources.")
|
||||
err := su.Init()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
du := updater.NewGrafanaDashboardUpdater(g.Dashboards(), filepath.Join(*watchDir, "*-dashboard.json"))
|
||||
log.Println("Initializing dashboards.")
|
||||
err = du.Init()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
w := newVolumeWatcher(*watchDir)
|
||||
|
||||
w.AddEventHandler(du)
|
||||
w.AddEventHandler(su)
|
||||
|
||||
|
@@ -9,6 +9,7 @@ import (
|
||||
)
|
||||
|
||||
type Updater interface {
|
||||
Init() error
|
||||
OnModify() error
|
||||
}
|
||||
|
||||
@@ -24,7 +25,15 @@ func NewGrafanaDashboardUpdater(c grafana.DashboardsInterface, g string) Updater
|
||||
}
|
||||
}
|
||||
|
||||
func (u *GrafanaDashboardUpdater) Init() error {
|
||||
return u.updateDashboards()
|
||||
}
|
||||
|
||||
func (u *GrafanaDashboardUpdater) OnModify() error {
|
||||
return u.updateDashboards()
|
||||
}
|
||||
|
||||
func (u *GrafanaDashboardUpdater) updateDashboards() error {
|
||||
err := u.deleteAllDashboards()
|
||||
if err != nil {
|
||||
return err
|
||||
|
@@ -20,7 +20,15 @@ func NewGrafanaDatasourceUpdater(c grafana.DatasourcesInterface, g string) Updat
|
||||
}
|
||||
}
|
||||
|
||||
func (u *GrafanaDatasourceUpdater) Init() error {
|
||||
return u.updateDatasources()
|
||||
}
|
||||
|
||||
func (u *GrafanaDatasourceUpdater) OnModify() error {
|
||||
return u.updateDatasources()
|
||||
}
|
||||
|
||||
func (u *GrafanaDatasourceUpdater) updateDatasources() error {
|
||||
err := u.deleteAllDatasources()
|
||||
if err != nil {
|
||||
return err
|
||||
|
Reference in New Issue
Block a user