From 94f0834d8f4c9130f44210736d1978b49e2fb31d Mon Sep 17 00:00:00 2001 From: Ryan Uber Date: Sun, 3 May 2015 16:46:20 -0700 Subject: [PATCH 1/2] agent: allow configuring the stats prefix --- command/agent/command.go | 2 +- command/agent/config.go | 8 ++++++++ command/agent/config_test.go | 11 +++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/command/agent/command.go b/command/agent/command.go index 294e991b9..1020b46c6 100644 --- a/command/agent/command.go +++ b/command/agent/command.go @@ -567,7 +567,7 @@ func (c *Command) Run(args []string) int { */ inm := metrics.NewInmemSink(10*time.Second, time.Minute) metrics.DefaultInmemSignal(inm) - metricsConf := metrics.DefaultConfig("consul") + metricsConf := metrics.DefaultConfig(config.StatsitePrefix) // Configure the statsite sink var fanout metrics.FanoutSink diff --git a/command/agent/config.go b/command/agent/config.go index 48b347c33..8319932c8 100644 --- a/command/agent/config.go +++ b/command/agent/config.go @@ -160,6 +160,10 @@ type Config struct { // metrics will be streamed to that instance. StatsiteAddr string `mapstructure:"statsite_addr"` + // StatsitePrefix is the prefix used to write stats values to. By + // default this is set to 'consul'. + StatsitePrefix string `mapstructure:"statsite_prefix"` + // StatsdAddr is the address of a statsd instance. If provided, // metrics will be sent to that instance. StatsdAddr string `mapstructure:"statsd_addr"` @@ -429,6 +433,7 @@ func DefaultConfig() *Config { DNSConfig: DNSConfig{ MaxStale: 5 * time.Second, }, + StatsitePrefix: "consul", SyslogFacility: "LOCAL0", Protocol: consul.ProtocolVersionMax, CheckUpdateInterval: 5 * time.Minute, @@ -811,6 +816,9 @@ func MergeConfig(a, b *Config) *Config { if b.StatsiteAddr != "" { result.StatsiteAddr = b.StatsiteAddr } + if b.StatsitePrefix != "" { + result.StatsitePrefix = b.StatsitePrefix + } if b.StatsdAddr != "" { result.StatsdAddr = b.StatsdAddr } diff --git a/command/agent/config_test.go b/command/agent/config_test.go index 945e2152d..45bfd9e1f 100644 --- a/command/agent/config_test.go +++ b/command/agent/config_test.go @@ -568,6 +568,16 @@ func TestDecodeConfig(t *testing.T) { t.Fatalf("bad: %#v", config) } + // Statsite prefix + input = `{"statsite_prefix": "my_prefix"}` + config, err = DecodeConfig(bytes.NewReader([]byte(input))) + if err != nil { + t.Fatalf("err: %s", err) + } + if config.StatsitePrefix != "my_prefix" { + t.Fatalf("bad: %#v", config) + } + // Address overrides input = `{"addresses": {"dns": "0.0.0.0", "http": "127.0.0.1", "https": "127.0.0.1", "rpc": "127.0.0.1"}}` config, err = DecodeConfig(bytes.NewReader([]byte(input))) @@ -1114,6 +1124,7 @@ func TestMergeConfig(t *testing.T) { }, DisableRemoteExec: true, StatsiteAddr: "127.0.0.1:7250", + StatsitePrefix: "stats_prefix", StatsdAddr: "127.0.0.1:7251", DisableUpdateCheck: true, DisableAnonymousSignature: true, From 8ae6790b33add1d45cbce6af317c778dc1be6e88 Mon Sep 17 00:00:00 2001 From: Ryan Uber Date: Sun, 3 May 2015 16:54:19 -0700 Subject: [PATCH 2/2] website: document statsite_prefix option --- website/source/docs/agent/options.html.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/source/docs/agent/options.html.markdown b/website/source/docs/agent/options.html.markdown index 8c36fec31..80b830352 100644 --- a/website/source/docs/agent/options.html.markdown +++ b/website/source/docs/agent/options.html.markdown @@ -526,6 +526,10 @@ definitions support being updated during a reload. aggregation. This can be used to capture runtime information. This streams via TCP and can only be used with statsite. +* `statsite_prefix` + The prefix used while writing all telemetry data to statsite. By default, this + is set to "consul". + * `syslog_facility` When [`enable_syslog`](#enable_syslog) is provided, this controls to which facility messages are sent. By default, `LOCAL0` will be used.