Add support for Datadog distribution type

This adds the ability to accept Datadog's distribution type and treat it
like a histogram/summary.

Signed-off-by: Clayton O'Neill <claytono@github.com>
This commit is contained in:
Clayton O'Neill 2019-05-13 14:30:38 -04:00
parent 4d0cb1992d
commit 04bba78d61
No known key found for this signature in database
GPG key ID: 5017D45C788B5274
3 changed files with 23 additions and 1 deletions

View file

@ -224,6 +224,8 @@ mappings:
job: "${1}_server"
```
Note that timers will be accepted with the `ms`, `h`, and `d` statsd types. The first two are timers and histograms and the `d` type is for DataDog's "distribution" type. The distribution type is treated identically to timers and histograms.
### Regular expression matching
Another capability when using YAML configuration is the ability to define matches

View file

@ -67,6 +67,26 @@ func TestHandlePacket(t *testing.T) {
labels: map[string]string{},
},
},
}, {
name: "simple histogram",
in: "foo:200|h",
out: Events{
&TimerEvent{
metricName: "foo",
value: 200,
labels: map[string]string{},
},
},
}, {
name: "simple distribution",
in: "foo:200|d",
out: Events{
&TimerEvent{
metricName: "foo",
value: 200,
labels: map[string]string{},
},
},
}, {
name: "datadog tag extension",
in: "foo:100|c|#tag1:bar,tag2:baz",

View file

@ -571,7 +571,7 @@ func buildEvent(statType, metric string, value float64, relative bool, labels ma
relative: relative,
labels: labels,
}, nil
case "ms", "h":
case "ms", "h", "d":
return &TimerEvent{
metricName: metric,
value: float64(value),