mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
fix(metrics): make metrics cfg backwards compatible
This commit is contained in:
parent
c5d0c9f088
commit
03f0bc46a1
@ -358,7 +358,7 @@ interval_seconds = 60
|
|||||||
# Send internal Grafana metrics to graphite
|
# Send internal Grafana metrics to graphite
|
||||||
; [metrics.graphite]
|
; [metrics.graphite]
|
||||||
; address = localhost:2003
|
; address = localhost:2003
|
||||||
; prefix = service.grafana.%(instance_name)s.
|
; prefix = service.grafana.%(instance_name)s
|
||||||
|
|
||||||
[grafana_net]
|
[grafana_net]
|
||||||
url = https://grafana.net
|
url = https://grafana.net
|
||||||
|
@ -303,10 +303,10 @@ enabled = true
|
|||||||
# Publish interval
|
# Publish interval
|
||||||
;interval_seconds = 10
|
;interval_seconds = 10
|
||||||
|
|
||||||
# Send internal metrics to Graphite. %instance_name% in prefix will be replaced with the value of instance_name
|
# Send internal metrics to Graphite
|
||||||
; [metrics.graphite]
|
; [metrics.graphite]
|
||||||
; address = localhost:2003
|
; address = localhost:2003
|
||||||
; prefix = service.grafana.%instance_name%
|
; prefix = service.grafana.%(instance_name)s
|
||||||
|
|
||||||
#################################### Internal Grafana Metrics ##########################
|
#################################### Internal Grafana Metrics ##########################
|
||||||
# Url used to to import dashboards directly from Grafana.net
|
# Url used to to import dashboards directly from Grafana.net
|
||||||
|
@ -30,9 +30,13 @@ func CreateGraphitePublisher() (*GraphitePublisher, error) {
|
|||||||
publisher.address = graphiteSection.Key("address").MustString("localhost:2003")
|
publisher.address = graphiteSection.Key("address").MustString("localhost:2003")
|
||||||
|
|
||||||
safeInstanceName := strings.Replace(setting.InstanceName, ".", "_", -1)
|
safeInstanceName := strings.Replace(setting.InstanceName, ".", "_", -1)
|
||||||
prefix := graphiteSection.Key("prefix").MustString("service.grafana.%instance_name%")
|
prefix := graphiteSection.Key("prefix").Value()
|
||||||
|
|
||||||
publisher.prefix = strings.Replace(prefix, "%instance_name%", safeInstanceName, -1)
|
if prefix == "" {
|
||||||
|
prefix = "service.grafana.%(instance_name)s"
|
||||||
|
}
|
||||||
|
|
||||||
|
publisher.prefix = strings.Replace(prefix, "%(instance_name)s", safeInstanceName, -1)
|
||||||
|
|
||||||
return publisher, nil
|
return publisher, nil
|
||||||
}
|
}
|
||||||
|
@ -10,22 +10,46 @@ import (
|
|||||||
|
|
||||||
func TestGraphitePublisher(t *testing.T) {
|
func TestGraphitePublisher(t *testing.T) {
|
||||||
|
|
||||||
Convey("Test graphite prefix", t, func() {
|
Convey("Test graphite prefix replacement", t, func() {
|
||||||
err := setting.NewConfigContext(&setting.CommandLineArgs{
|
var err error
|
||||||
|
err = setting.NewConfigContext(&setting.CommandLineArgs{
|
||||||
HomePath: "../../",
|
HomePath: "../../",
|
||||||
Args: []string{
|
|
||||||
"cfg:metrics.graphite.prefix=service.grafana.%instance_name%",
|
|
||||||
"cfg:metrics.graphite.address=localhost:2003",
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
|
sec, err := setting.Cfg.NewSection("metrics.graphite")
|
||||||
|
sec.NewKey("prefix", "service.grafana.%(instance_name)s")
|
||||||
|
sec.NewKey("address", "localhost:2003")
|
||||||
|
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
setting.InstanceName = "hostname.with.dots.com"
|
setting.InstanceName = "hostname.with.dots.com"
|
||||||
publisher, err2 := CreateGraphitePublisher()
|
publisher, err := CreateGraphitePublisher()
|
||||||
|
|
||||||
So(err2, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
So(publisher, ShouldNotBeNil)
|
So(publisher, ShouldNotBeNil)
|
||||||
|
|
||||||
So(publisher.prefix, ShouldEqual, "service.grafana.hostname_with_dots_com")
|
So(publisher.prefix, ShouldEqual, "service.grafana.hostname_with_dots_com")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Convey("Test graphite publisher default values", t, func() {
|
||||||
|
var err error
|
||||||
|
err = setting.NewConfigContext(&setting.CommandLineArgs{
|
||||||
|
HomePath: "../../",
|
||||||
|
})
|
||||||
|
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
|
_, err = setting.Cfg.NewSection("metrics.graphite")
|
||||||
|
|
||||||
|
setting.InstanceName = "hostname.with.dots.com"
|
||||||
|
publisher, err := CreateGraphitePublisher()
|
||||||
|
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(publisher, ShouldNotBeNil)
|
||||||
|
|
||||||
|
So(publisher.prefix, ShouldEqual, "service.grafana.hostname_with_dots_com")
|
||||||
|
So(publisher.address, ShouldEqual, "localhost:2003")
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user