Merge pull request #7338 from jmhwang7/add-datadog-uds

Enable emitting dogstatsd metrics over uds
This commit is contained in:
Aidan Oldershaw 2021-07-27 14:11:27 -04:00 committed by GitHub
commit 5e0f194571
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 1 deletions

View File

@ -19,6 +19,7 @@ type DogstatsdEmitter struct {
type DogstatsDBConfig struct {
Host string `long:"datadog-agent-host" description:"Datadog agent host to expose dogstatsd metrics"`
Port string `long:"datadog-agent-port" description:"Datadog agent port to expose dogstatsd metrics"`
UDS string `long:"datadog-agent-uds-filepath" description:"Datadog agent unix domain socket (uds) filepath to expose dogstatsd metrics"`
Prefix string `long:"datadog-prefix" description:"Prefix for all metrics to easily find them in Datadog"`
}
@ -31,8 +32,14 @@ func (config *DogstatsDBConfig) Description() string { return "Datadog" }
func (config *DogstatsDBConfig) IsConfigured() bool { return config.Host != "" && config.Port != "" }
func (config *DogstatsDBConfig) NewEmitter(_ map[string]string) (metric.Emitter, error) {
var client *statsd.Client
var err error
if config.UDS != "" {
client, err = statsd.New("unix://" + config.UDS)
} else {
client, err = statsd.New(fmt.Sprintf("%s:%s", config.Host, config.Port))
}
client, err := statsd.New(fmt.Sprintf("%s:%s", config.Host, config.Port))
if err != nil {
log.Fatal(err)
return &DogstatsdEmitter{}, err