如何在 Splunk 中计算精确的第 99.9 个百分位

use*_*328 4 splunk percentile splunk-query splunk-calculation

有谁知道如何准确计算Splunk中的99.9%?

我尝试了如下各种方法,例如exactperc(但这只需要整数百分位数)和perc(但这非常接近结果)。

base | stats exactperc99(latency) as "99th Percentile", p99.9(latency) as "99.9th Percentile"
Run Code Online (Sandbox Code Playgroud)

谢谢,詹姆斯

Igo*_*gor 6

来自Splunk 文档

存在三种不同的百分位函数:

perc<X>(Y) (或缩写 p<X>(Y)) upperperc<X>(Y) exactperc<X>(Y) 返回数字字段 Y 的第 X 个百分位值。 X 的有效值是从 1 到 99 的浮点数,例如 99.95。

使用 perc<X>(Y) 函数计算近似阈值,使得字段 Y 中的值的 X 百分比低于阈值。

perc 和 upperperc 函数给出所请求的整数百分位的近似值。所使用的近似算法基于基数树的动态压缩,为任何百分位数提供了实际值的严格界限。perc 函数返回一个数字,表示该范围的下限。upperperc 函数给出近似上限。精确的perc函数提供精确的值,但对于高基数字段来说将非常昂贵。exactperc 函数可能会消耗搜索头中的大量内存。

将字段值作为字符串处理。

例子:

 p99.999(response_ms)
 p99(bytes_received)
 p50(salary) # median
Run Code Online (Sandbox Code Playgroud)