我使用goflow2收集sflow,并使用ClickHouse存储这些数据。现在,我试着做一些基本的图表。例如,我想绘制每个SrcIp的位数/秒图。我尝试使用此查询,但实际流量为200 Mbps时,我得到了显示~2 Gbps的图形。
SELECT
toUInt64(toStartOfMinute($dateTimeCol))*1000 as t,
sum(Bytes*SamplingRate) as sumbytes
FROM $table
WHERE $timeFilter and IPv4NumToString(reinterpretAsUInt32(substring(reverse(SrcAddr), 13,4))) like '195.78.38.190'
GROUP BY t
ORDER BY t我需要像普罗米修斯那样的东西,但在普罗米修斯中我们有计数器,很容易计算出我需要什么。
发布于 2021-08-26 11:08:02
您的查询是正确的,但返回的是字节而不是bps。
由于每分钟的聚合,你需要除以60秒,所以你有每秒字节数。字节是8比特,所以乘以它得到比特。
/ 60 * 8
SELECT
toUInt64(toStartOfMinute($dateTimeCol))*1000 as t,
sum(Bytes*SamplingRate) * 8 / 60 as sumbytes
FROM $table
WHERE $timeFilter and IPv4NumToString(reinterpretAsUInt32(substring(reverse(SrcAddr), 13,4))) like '195.78.38.190'
GROUP BY t
ORDER BY thttps://stackoverflow.com/questions/68922037
复制相似问题