计算中位数,splunk 中总结果的平均值

问题描述 投票:0回答:0

我需要建立一个包含大约 50 万个事件的报告。要求是报告将包含三行 - 我需要计算 httpStatus 是否正常,并将每个 eventId 分类到适当的位置。 (要求是我们的行数最少!!!我不能复制或超过 10 行)

所以报告基本上是这样的:

|*MY SEARCH * 
|stats count(request.uri) as totalCount values(uri) as uri values(timeTaken.total) as newTime perc95(timeTaken.total) as prec95 perc5(timeTaken.total) as prec5 median(timeTaken.total) as med avg(timeTaken.total) as average max(date) as maxDate 
min(date) as minDate values(timeTaken.total) as time by status 

|table  uri totalCount prec95 prec5 med average status maxDate minDate time

现在我的问题是-

我需要在其他行的基础上添加一行新的总计。

因为我使用的是 avg、median 等函数,我认为我不能使用 |addtotals

一个非常重要的注意事项是我在时间和 uri 列中的所有值都不不同。这意味着它们可以出现不止一次,然后我的计算就错了,我不能根据前一个统计数据来计算后续统计数据。我试过使用列表,但它有 100 个值的限制,而我有数十万个。

我该怎么做才能添加另一个总计行来计算我的所有事件?

我已经尝试根据我在 stats 命令中获得的结果以这种方式添加 |appendPipe 它,但是我当然得到了错误的值(因为时间结果不明显,并且统计信息中显示的值是不同的)

那是我添加总计算后的报告(没有用)

|*MY SEARCH *
|stats count(request.uri) as totalCount values(uri) as uri values(timeTaken.total) as newTime perc95(timeTaken.total) as prec95 perc5(timeTaken.total) as prec5 median(timeTaken.total) as med avg(timeTaken.total) as average max(date) as maxDate 
min(date) as minDate values(timeTaken.total) as time by status 

|appendpipe [stats sum(totalCount) as totalCount  values(uri) as uri values(newTime) as newTime perc95(time) as prec95 perc5(time) as prec5 median(time) as med avg(time) as average| eval status="TOTAL"]

|table  uri totalCount prec95 prec5 med average status maxDate minDate time

我真的希望我把问题说清楚了

提前致谢:)

report splunk splunk-query splunk-formula splunk-calculation
© www.soinside.com 2019 - 2024. All rights reserved.