| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package metrics
- import "github.com/grafana/grafana/pkg/setting"
- type MetricPublisher interface {
- Publish(metrics []Metric)
- }
- type MetricSettings struct {
- Enabled bool
- IntervalSeconds int64
- Publishers []MetricPublisher
- }
- func readSettings() *MetricSettings {
- var settings = &MetricSettings{
- Enabled: false,
- Publishers: make([]MetricPublisher, 0),
- }
- var section, err = setting.Cfg.GetSection("metrics")
- if err != nil {
- metricsLogger.Crit("Unable to find metrics config section", "error", err)
- return nil
- }
- settings.Enabled = section.Key("enabled").MustBool(false)
- settings.IntervalSeconds = section.Key("interval_seconds").MustInt64(10)
- if !settings.Enabled {
- return settings
- }
- if graphitePublisher, err := CreateGraphitePublisher(); err != nil {
- metricsLogger.Error("Failed to init Graphite metric publisher", "error", err)
- } else if graphitePublisher != nil {
- metricsLogger.Info("Metrics publisher initialized", "type", "graphite")
- settings.Publishers = append(settings.Publishers, graphitePublisher)
- }
- return settings
- }
|