根据开始时间和结束时间使用bash脚本计算日志文件中每个请求的百分位数

发布于 2025-01-20 20:32:19 字数 989 浏览 0 评论 0原文

我有一个simulation.log文件将其结果以下,我想通过读取文件来计算每个请求的第5、25、95、99%,通过读取文件。

以下是示例simulation.log文件,其中164941039141和1649410341026的开始和结束时间以毫秒为单位。

REQUEST1    somelogprinted  TTP123099SM000202 002   1649410339141   1649410341026   OK  
REQUEST2    somelogprinted  TTP123099SM000202 001   1649410339141   1649410341029   OK
......

我尝试了以下代码,但没有给我任何结果,我不是Unix开发人员:

FILE=filepath 

sort -n $* > $FILE 

N=$(wc -l $FILE | awk '{print $1}') 

P50=$(dc -e "$N 2 / p") 
P90=$(dc -e "$N 9 * 10 / p") 

P99=$(dc -e "$N 99 * 100 / p") echo ";; 
50th, 90th and 99th percentiles for 
$N data points" awk "FNR==$P50 || FNR==$P90 || FNR==$P99" $FILE

示例输出:

Request | 5thpercentile | 25Percentile  | 95Percentile | 99Percentile

Request1 |  657  |          786  |     821    |          981

Request2 |  453  |          654  |     795    |         854

I have a simulation.log file where it will have below results and I want to calculate 5th, 25th, 95th, 99th percentile of each request using shell script by reading the file.

Below is a sample simulation.log file where 1649410339141 and 1649410341026 are start and end time in milliseconds.

REQUEST1    somelogprinted  TTP123099SM000202 002   1649410339141   1649410341026   OK  
REQUEST2    somelogprinted  TTP123099SM000202 001   1649410339141   1649410341029   OK
......

I tried below code but did not give me any result and I am not a Unix developer:

FILE=filepath 

sort -n $* > $FILE 

N=$(wc -l $FILE | awk '{print $1}') 

P50=$(dc -e "$N 2 / p") 
P90=$(dc -e "$N 9 * 10 / p") 

P99=$(dc -e "$N 99 * 100 / p") echo ";; 
50th, 90th and 99th percentiles for 
$N data points" awk "FNR==$P50 || FNR==$P90 || FNR==$P99" $FILE

Sample output:

Request | 5thpercentile | 25Percentile  | 95Percentile | 99Percentile

Request1 |  657  |          786  |     821    |          981

Request2 |  453  |          654  |     795    |         854

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文