Add tags option to datadog telemetry
Expose an global tags option in telemetry config for dogstatsd, for purposes of distinguishing between multiple nomad cluster metrics.
This commit is contained in:
parent
b5c7c5f3ce
commit
bebafb5234
|
@ -748,6 +748,7 @@ func (c *Command) setupTelemetry(config *Config) (*metrics.InmemSink, error) {
|
|||
if err != nil {
|
||||
return inm, err
|
||||
}
|
||||
sink.SetTags(telConfig.DataDogTags)
|
||||
fanout = append(fanout, sink)
|
||||
}
|
||||
|
||||
|
|
|
@ -355,6 +355,7 @@ type Telemetry struct {
|
|||
StatsiteAddr string `mapstructure:"statsite_address"`
|
||||
StatsdAddr string `mapstructure:"statsd_address"`
|
||||
DataDogAddr string `mapstructure:"datadog_address"`
|
||||
DataDogTags []string `mapstructure:"datadog_tags"`
|
||||
PrometheusMetrics bool `mapstructure:"prometheus_metrics"`
|
||||
DisableHostname bool `mapstructure:"disable_hostname"`
|
||||
UseNodeName bool `mapstructure:"use_node_name"`
|
||||
|
@ -1170,6 +1171,9 @@ func (a *Telemetry) Merge(b *Telemetry) *Telemetry {
|
|||
if b.DataDogAddr != "" {
|
||||
result.DataDogAddr = b.DataDogAddr
|
||||
}
|
||||
if b.DataDogTags != nil {
|
||||
result.DataDogTags = b.DataDogTags
|
||||
}
|
||||
if b.PrometheusMetrics {
|
||||
result.PrometheusMetrics = b.PrometheusMetrics
|
||||
}
|
||||
|
|
|
@ -641,6 +641,7 @@ func parseTelemetry(result **Telemetry, list *ast.ObjectList) error {
|
|||
"publish_allocation_metrics",
|
||||
"publish_node_metrics",
|
||||
"datadog_address",
|
||||
"datadog_tags",
|
||||
"prometheus_metrics",
|
||||
"circonus_api_token",
|
||||
"circonus_api_app",
|
||||
|
|
|
@ -56,6 +56,7 @@ func TestConfig_Merge(t *testing.T) {
|
|||
StatsiteAddr: "127.0.0.1:8125",
|
||||
StatsdAddr: "127.0.0.1:8125",
|
||||
DataDogAddr: "127.0.0.1:8125",
|
||||
DataDogTags: []string{"cat1:tag1", "cat2:tag2"},
|
||||
PrometheusMetrics: true,
|
||||
DisableHostname: false,
|
||||
DisableTaggedMetrics: true,
|
||||
|
@ -191,6 +192,7 @@ func TestConfig_Merge(t *testing.T) {
|
|||
StatsiteAddr: "127.0.0.2:8125",
|
||||
StatsdAddr: "127.0.0.2:8125",
|
||||
DataDogAddr: "127.0.0.1:8125",
|
||||
DataDogTags: []string{"cat1:tag1", "cat2:tag2"},
|
||||
PrometheusMetrics: true,
|
||||
DisableHostname: true,
|
||||
PublishNodeMetrics: true,
|
||||
|
|
|
@ -279,6 +279,7 @@ $ curl \
|
|||
"CirconusSubmissionInterval": "",
|
||||
"CollectionInterval": "1s",
|
||||
"DataDogAddr": "",
|
||||
"DataDogTags": [],
|
||||
"DisableHostname": false,
|
||||
"PublishAllocationMetrics": false,
|
||||
"PublishNodeMetrics": false,
|
||||
|
|
|
@ -108,9 +108,15 @@ These `telemetry` parameters apply to
|
|||
- `datadog_address` `(string: "")` - Specifies the address of a DataDog statsd
|
||||
server to forward metrics to.
|
||||
|
||||
- `datadog_tags` `(list: [])` - Specifies a list of global tags that will be
|
||||
added to all telemetry packets sent to DogStatsD. It is a list of strings,
|
||||
where each string looks like "my_tag_name:my_tag_value".
|
||||
|
||||
|
||||
```hcl
|
||||
telemetry {
|
||||
datadog_address = "dogstatsd.company.local:8125"
|
||||
datadog_tags = ["my_tag_name:my_tag_value"]
|
||||
}
|
||||
```
|
||||
|
||||
|
|
Loading…
Reference in New Issue