grafana-watcher: wait for Grafana to be available and initialize
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"time"
|
||||||
|
|
||||||
fsnotify "gopkg.in/fsnotify.v1"
|
fsnotify "gopkg.in/fsnotify.v1"
|
||||||
|
|
||||||
@@ -85,9 +86,32 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
g := grafana.New(*grafanaUrl)
|
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"))
|
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 := newVolumeWatcher(*watchDir)
|
||||||
|
|
||||||
w.AddEventHandler(du)
|
w.AddEventHandler(du)
|
||||||
w.AddEventHandler(su)
|
w.AddEventHandler(su)
|
||||||
|
|
||||||
|
@@ -9,6 +9,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Updater interface {
|
type Updater interface {
|
||||||
|
Init() error
|
||||||
OnModify() 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 {
|
func (u *GrafanaDashboardUpdater) OnModify() error {
|
||||||
|
return u.updateDashboards()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *GrafanaDashboardUpdater) updateDashboards() error {
|
||||||
err := u.deleteAllDashboards()
|
err := u.deleteAllDashboards()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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 {
|
func (u *GrafanaDatasourceUpdater) OnModify() error {
|
||||||
|
return u.updateDatasources()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *GrafanaDatasourceUpdater) updateDatasources() error {
|
||||||
err := u.deleteAllDatasources()
|
err := u.deleteAllDatasources()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
Reference in New Issue
Block a user