2015-03-22 15:14:00 -04:00
|
|
|
package metrics
|
|
|
|
|
|
|
|
|
|
import (
|
2017-09-04 19:16:35 +02:00
|
|
|
"context"
|
2015-03-22 15:14:00 -04:00
|
|
|
|
2017-09-06 22:00:17 +02:00
|
|
|
ini "gopkg.in/ini.v1"
|
|
|
|
|
|
2015-03-22 15:45:13 -04:00
|
|
|
"github.com/grafana/grafana/pkg/log"
|
2017-09-06 19:23:03 +02:00
|
|
|
"github.com/grafana/grafana/pkg/metrics/graphitebridge"
|
2015-03-22 15:14:00 -04:00
|
|
|
)
|
|
|
|
|
|
2016-06-07 09:29:47 +02:00
|
|
|
var metricsLogger log.Logger = log.New("metrics")
|
|
|
|
|
|
2017-09-04 19:16:35 +02:00
|
|
|
type logWrapper struct {
|
|
|
|
|
logger log.Logger
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (lw *logWrapper) Println(v ...interface{}) {
|
|
|
|
|
lw.logger.Info("graphite metric bridge", v...)
|
|
|
|
|
}
|
|
|
|
|
|
2017-09-06 22:00:17 +02:00
|
|
|
func Init(file *ini.File) {
|
|
|
|
|
cfg := ReadSettings(file)
|
|
|
|
|
internalInit(cfg)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func internalInit(settings *MetricSettings) {
|
2016-06-03 12:50:51 +02:00
|
|
|
initMetricVars(settings)
|
2017-09-04 19:16:35 +02:00
|
|
|
|
2017-09-05 23:19:57 +02:00
|
|
|
if settings.GraphiteBridgeConfig != nil {
|
2017-09-06 19:23:03 +02:00
|
|
|
bridge, err := graphitebridge.NewBridge(settings.GraphiteBridgeConfig)
|
2017-09-05 23:19:57 +02:00
|
|
|
if err != nil {
|
|
|
|
|
metricsLogger.Error("failed to create graphite bridge", "error", err)
|
2015-09-29 13:47:56 +02:00
|
|
|
} else {
|
2017-09-05 23:19:57 +02:00
|
|
|
go bridge.Run(context.Background())
|
2015-09-29 13:47:56 +02:00
|
|
|
}
|
|
|
|
|
}
|
2015-03-22 15:14:00 -04:00
|
|
|
}
|