Add DogStatsD metrics output. (#2883)

Fixes #2490
This commit is contained in:
Jeff Mitchell
2017-06-16 23:51:46 -04:00
committed by GitHub
parent f6155ea8c5
commit f5de93f1bf
7 changed files with 179 additions and 2 deletions

View File

@@ -25,6 +25,7 @@ import (
"github.com/armon/go-metrics"
"github.com/armon/go-metrics/circonus"
"github.com/armon/go-metrics/datadog"
"github.com/hashicorp/errwrap"
"github.com/hashicorp/go-multierror"
"github.com/hashicorp/vault/audit"
@@ -893,6 +894,21 @@ func (c *ServerCommand) setupTelemetry(config *server.Config) error {
fanout = append(fanout, sink)
}
if telConfig.DogStatsDAddr != "" {
var tags []string
if telConfig.DogStatsDTags != nil {
tags = telConfig.DogStatsDTags
}
sink, err := datadog.NewDogStatsdSink(telConfig.DogStatsDAddr, metricsConf.HostName)
if err != nil {
return fmt.Errorf("failed to start DogStatsD sink. Got: %s", err)
}
sink.SetTags(tags)
fanout = append(fanout, sink)
}
// Initialize the global sink
if len(fanout) > 0 {
fanout = append(fanout, inm)