Merge pull request #262 from prometheus/reloadinstr

Add reload config instrumentation
This commit is contained in:
Fabian Reinartz 2016-03-03 14:55:16 +01:00
commit 439b116e7b
3 changed files with 55 additions and 32 deletions

23
main.go
View File

@ -29,6 +29,7 @@ import (
tmpltext "text/template"
"time"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/common/log"
"github.com/prometheus/common/route"
@ -50,6 +51,24 @@ var (
listenAddress = flag.String("web.listen-address", ":9093", "Address to listen on for the web interface and API.")
)
var (
configSuccess = prometheus.NewGauge(prometheus.GaugeOpts{
Namespace: "alertmanager",
Name: "config_last_reload_successful",
Help: "Whether the last configuration reload attempt was successful.",
})
configSuccessTime = prometheus.NewGauge(prometheus.GaugeOpts{
Namespace: "alertmanager",
Name: "config_last_reload_success_timestamp_seconds",
Help: "Timestamp of the last successful configuration reload.",
})
)
func init() {
prometheus.MustRegister(configSuccess)
prometheus.MustRegister(configSuccessTime)
}
func main() {
flag.Parse()
@ -126,6 +145,10 @@ func main() {
defer func() {
if err != nil {
log.With("file", *configFile).Errorf("Loading configuration file failed: %s", err)
configSuccess.Set(0)
} else {
configSuccess.Set(1)
configSuccessTime.Set(float64(time.Now().Unix()))
}
}()

View File

@ -182,6 +182,7 @@ type bintree struct {
Func func() (*asset, error)
Children map[string]*bintree
}
var _bintree = &bintree{nil, map[string]*bintree{
"template": &bintree{nil, map[string]*bintree{
"default.tmpl": &bintree{templateDefaultTmpl, map[string]*bintree{}},
@ -234,4 +235,3 @@ func _filePath(dir, name string) string {
cannonicalName := strings.Replace(name, "\\", "/", -1)
return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
}

View File

@ -518,25 +518,25 @@ func AssetNames() []string {
// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
"ui/app/css/main.css": uiAppCssMainCss,
"ui/app/index.html": uiAppIndexHtml,
"ui/app/js/app.js": uiAppJsAppJs,
"ui/app/partials/alert.html": uiAppPartialsAlertHtml,
"ui/app/partials/alerts.html": uiAppPartialsAlertsHtml,
"ui/app/partials/route.html": uiAppPartialsRouteHtml,
"ui/app/css/main.css": uiAppCssMainCss,
"ui/app/index.html": uiAppIndexHtml,
"ui/app/js/app.js": uiAppJsAppJs,
"ui/app/partials/alert.html": uiAppPartialsAlertHtml,
"ui/app/partials/alerts.html": uiAppPartialsAlertsHtml,
"ui/app/partials/route.html": uiAppPartialsRouteHtml,
"ui/app/partials/silence-form.html": uiAppPartialsSilenceFormHtml,
"ui/app/partials/silence.html": uiAppPartialsSilenceHtml,
"ui/app/partials/silences.html": uiAppPartialsSilencesHtml,
"ui/app/partials/status.html": uiAppPartialsStatusHtml,
"ui/bindata.go": uiBindataGo,
"ui/lib/angular-moment.min.js": uiLibAngularMomentMinJs,
"ui/lib/angular-resource.min.js": uiLibAngularResourceMinJs,
"ui/lib/angular-route.min.js": uiLibAngularRouteMinJs,
"ui/lib/angular-sanitize.min.js": uiLibAngularSanitizeMinJs,
"ui/lib/angular.min.js": uiLibAngularMinJs,
"ui/lib/jquery.min.js": uiLibJqueryMinJs,
"ui/lib/kube.min.css": uiLibKubeMinCss,
"ui/lib/moment.min.js": uiLibMomentMinJs,
"ui/app/partials/silence.html": uiAppPartialsSilenceHtml,
"ui/app/partials/silences.html": uiAppPartialsSilencesHtml,
"ui/app/partials/status.html": uiAppPartialsStatusHtml,
"ui/bindata.go": uiBindataGo,
"ui/lib/angular-moment.min.js": uiLibAngularMomentMinJs,
"ui/lib/angular-resource.min.js": uiLibAngularResourceMinJs,
"ui/lib/angular-route.min.js": uiLibAngularRouteMinJs,
"ui/lib/angular-sanitize.min.js": uiLibAngularSanitizeMinJs,
"ui/lib/angular.min.js": uiLibAngularMinJs,
"ui/lib/jquery.min.js": uiLibJqueryMinJs,
"ui/lib/kube.min.css": uiLibKubeMinCss,
"ui/lib/moment.min.js": uiLibMomentMinJs,
}
// AssetDir returns the file names below a certain
@ -578,6 +578,7 @@ type bintree struct {
Func func() (*asset, error)
Children map[string]*bintree
}
var _bintree = &bintree{nil, map[string]*bintree{
"ui": &bintree{nil, map[string]*bintree{
"app": &bintree{nil, map[string]*bintree{
@ -589,25 +590,25 @@ var _bintree = &bintree{nil, map[string]*bintree{
"app.js": &bintree{uiAppJsAppJs, map[string]*bintree{}},
}},
"partials": &bintree{nil, map[string]*bintree{
"alert.html": &bintree{uiAppPartialsAlertHtml, map[string]*bintree{}},
"alerts.html": &bintree{uiAppPartialsAlertsHtml, map[string]*bintree{}},
"route.html": &bintree{uiAppPartialsRouteHtml, map[string]*bintree{}},
"alert.html": &bintree{uiAppPartialsAlertHtml, map[string]*bintree{}},
"alerts.html": &bintree{uiAppPartialsAlertsHtml, map[string]*bintree{}},
"route.html": &bintree{uiAppPartialsRouteHtml, map[string]*bintree{}},
"silence-form.html": &bintree{uiAppPartialsSilenceFormHtml, map[string]*bintree{}},
"silence.html": &bintree{uiAppPartialsSilenceHtml, map[string]*bintree{}},
"silences.html": &bintree{uiAppPartialsSilencesHtml, map[string]*bintree{}},
"status.html": &bintree{uiAppPartialsStatusHtml, map[string]*bintree{}},
"silence.html": &bintree{uiAppPartialsSilenceHtml, map[string]*bintree{}},
"silences.html": &bintree{uiAppPartialsSilencesHtml, map[string]*bintree{}},
"status.html": &bintree{uiAppPartialsStatusHtml, map[string]*bintree{}},
}},
}},
"bindata.go": &bintree{uiBindataGo, map[string]*bintree{}},
"lib": &bintree{nil, map[string]*bintree{
"angular-moment.min.js": &bintree{uiLibAngularMomentMinJs, map[string]*bintree{}},
"angular-moment.min.js": &bintree{uiLibAngularMomentMinJs, map[string]*bintree{}},
"angular-resource.min.js": &bintree{uiLibAngularResourceMinJs, map[string]*bintree{}},
"angular-route.min.js": &bintree{uiLibAngularRouteMinJs, map[string]*bintree{}},
"angular-route.min.js": &bintree{uiLibAngularRouteMinJs, map[string]*bintree{}},
"angular-sanitize.min.js": &bintree{uiLibAngularSanitizeMinJs, map[string]*bintree{}},
"angular.min.js": &bintree{uiLibAngularMinJs, map[string]*bintree{}},
"jquery.min.js": &bintree{uiLibJqueryMinJs, map[string]*bintree{}},
"kube.min.css": &bintree{uiLibKubeMinCss, map[string]*bintree{}},
"moment.min.js": &bintree{uiLibMomentMinJs, map[string]*bintree{}},
"angular.min.js": &bintree{uiLibAngularMinJs, map[string]*bintree{}},
"jquery.min.js": &bintree{uiLibJqueryMinJs, map[string]*bintree{}},
"kube.min.css": &bintree{uiLibKubeMinCss, map[string]*bintree{}},
"moment.min.js": &bintree{uiLibMomentMinJs, map[string]*bintree{}},
}},
}},
}}
@ -658,4 +659,3 @@ func _filePath(dir, name string) string {
cannonicalName := strings.Replace(name, "\\", "/", -1)
return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
}