Suppose you are submitting a COUNT metric, notifications.sent
, from a single host running the Datadog Agent. This host emits the following values in a flush time interval: [1,1,1,2,2,2,3,3]
.
The Agent adds all of the values received in one time interval. Then, it submits the total number, in this case 15
, as the COUNT metric’s value.
Suppose you are submitting a RATE metric, queue_messages.rate
, from a single host running the Datadog Agent. This host emits the following values in a flush time interval: [1,1,1,2,2,2,3,3]
.
The Agent adds all of the values received in one time interval. Then, it submits the total number divided by the total number of seconds in this time interval. In this case, if the flush interval is 10 seconds, the value submitted would be 1.5
as the RATE metric’s value.
Suppose you are submitting a GAUGE metric, temperature
, from a single host running the Datadog Agent. This host emits the following values in a flush time interval: [71,71,71,71,71,71,71.5]
.
The Agent submits the last reported number, in this case 71.5
, as the GAUGE metric’s value.
For example, suppose you are submitting a HISTOGRAM metric, request.response_time.histogram
, from a web server that reports the values [1,1,1,2,2,2,3,3]
in a flush time interval. By default, the Agent submits the following metrics to Datadog which represent the statistical distribution of these values in this time interval:
Metric Name | Value | Datadog In-App Type |
---|
request.response_time.histogram.avg | 1.88 | GAUGE |
request.response_time.histogram.count | 0.8 | RATE |
request.response_time.histogram.median | 2 | GAUGE |
request.response_time.histogram.95percentile | 3 | GAUGE |
request.response_time.histogram.max | 3 | GAUGE |
Suppose you are submitting a DISTRIBUTION metric, request.response_time.distribution
, from two webservers: webserver:web_1
and webserver:web_2
. Suppose in a given flush time interval, webserver:web_1
reports the metric with the values [1,1,1,2,2,2,3,3]
, and webserver:web_2
reports the same metric with the values [1,1,2]
. Over this time interval, the following five aggregations will represent the global statistical distribution of all values collected from both webservers:
Metric Name | Value | Datadog In-App Type |
---|
avg:request.response_time.distribution | 1.73 | GAUGE |
count:request.response_time.distribution | 11 | COUNT |
max:request.response_time.distribution | 3 | GAUGE |
min:request.response_time.distribution | 1 | GAUGE |
sum:request.response_time.distribution | 19 | COUNT |
Calculation of percentile aggregations
Like other metric types, such as GAUGE or HISTOGRAM, the DISTRIBUTION metric type has the following aggregations available: count
, min
, max
, sum
, and avg
. Distribution metrics are initially tagged the same way as other metrics (with custom tags set in the code).
Additional percentile aggregations (p50
, p75
, p90
, p95
, p99
) can be added to distribution metrics. If you were to add percentile aggregations to your distribution metric in-app, the following five additional aggregations are available for query:
Metric Name | Value | Datadog In-app Type |
---|
p50:request.response_time.distribution | 2 | GAUGE |
p75:request.response_time.distribution | 2 | GAUGE |
p90:request.response_time.distribution | 3 | GAUGE |
p95:request.response_time.distribution | 3 | GAUGE |
p99:request.response_time.distribution | 3 | GAUGE |
That is, for a distribution metric with added percentile aggregations during a given time interval, the following 10 aggregations are available: count
, sum
, min
, max
, avg
, p50
, p75
, p90
, p95
, and p99
.
Customization of tagging
This functionality allows you to control tagging for metrics where host-level granularity is not necessary. Learn more about Metrics without Limits™.
Note: The exclusion of tags with !
is not accepted with this feature.