Charts 在Datadog中表示时间间隔分布图的最佳方法是什么?

Charts 在Datadog中表示时间间隔分布图的最佳方法是什么?,charts,statistics,datadog,statsd,Charts,Statistics,Datadog,Statsd,我有一个处理来自不同设备的数据包的服务器。设备可以按不同的时间间隔报告。 我想制作一张图表,显示设备计数的间隔分布(有多少设备在5秒/10秒/60秒内报告…) 每个设备的间隔可能不同。 现在,我使用带有表示间隔(5秒、10秒、30秒及以上)的标签的deviceId发送带有Set的度量,但我不确定它是否正确。 实现它的最佳方法是什么?Set几乎从来都不是正确的自定义度量类型。它将发送每个给定标记的唯一项目数计数。基本项目细节将从度量中剥离,这意味着从一个时间段到下一个时间段,您将不知道随着时间的推

我有一个处理来自不同设备的数据包的服务器。设备可以按不同的时间间隔报告。 我想制作一张图表,显示设备计数的间隔分布(有多少设备在5秒/10秒/60秒内报告…) 每个设备的间隔可能不同。 现在,我使用带有表示间隔(5秒、10秒、30秒及以上)的标签的deviceId发送带有Set的度量,但我不确定它是否正确。
实现它的最佳方法是什么?

Set几乎从来都不是正确的自定义度量类型。它将发送每个给定标记的唯一项目数计数。基本项目细节将从度量中剥离,这意味着从一个时间段到下一个时间段,您将不知道随着时间的推移,项目的实际真实数量

比如说

3:00:07-3:00:32 | 5 second bucket:[device1,device4,device7] -> 3 values
3:00:32-3:00:47 | 5 second bucket:[device1,device3] -> 2 values
您的时间序列将向datadog报告
3
,然后报告
2
。但是,由于底层设备信息被剥离,如果你想缩小时间并将数字汇总到每分钟显示1个数据点,你就不知道如何组合2和3。它可以是3到5之间的任意数字,但Datadog后端不知道。(尽管我们知道在这30秒内,总共有4个唯一值)

此外,即使它以某种方式是准确的,您也无法创建警报或通知任何人,因为如果您在60秒的存储空间中看到大量设备,您将不知道哪个设备出现问题

那么,让我们来看看其他指标选项


唯一值得使用的度量类型通常是或、或[计数]

仪表度量只是对某个时间点的延迟的测量,它通常适用于CPU或计算机内存或房间温度等方面。不可能实际收集所有数据点的数字,所以你只需每10秒或每分钟测量一次,或者不管你有多经常都无法了解其行为

计数指标更精确,它是发生的事情的数量。通常适用于对服务器的请求数或处理的文件数。即使是像流经某个对象的字节数这样的数据,尽管大多数人通常将其视为一个量具

当您想要创建仪表度量时,分布是很好的,但是您需要对发生的每个事件进行详细的测量。例如,一个web服务器每秒处理数百个请求,我们需要知道该服务器的延迟度量。不可能为每个请求发送一个延迟度量作为标准。仪表具有每秒1个数据点的内置限制(在Datadog中)。在1秒间隔内发送的任何内容都将被删除。但是我们需要每个请求的统计数据,因此分发将汇总数据,它保留一个运行计数、最小值、最大值、平均值,以及可选的几个百分位数(p50、p75、p99)


除了这3种度量类型之外,我还没有看到太多好的度量类型用例。对于您的场景,您似乎希望发送该设备间隔的分布度量。因此,设备1发送的值为10.14,设备3发送的值为2.3,依此类推

然后,您可以在仪表板中使用显示每个间隔存储桶的设备数


当然,请确保通过生成度量的设备标记每个度量。

谢谢。不幸的是,我负担不起为每个设备添加标签,因为我有数千个设备,这将非常昂贵。