LoginSignup
0
0

awkコマンドで99.0タイルを取得

Posted at

はじめに

過去対向システムが既存機能を使いたい希望があり、
ピーク時間帯の応答時間(TAT)の99.0パーセントタイル値を取得する依頼がありました。

「なんだ?99.0パーセントタイルって」という状態だったので、ググって参考にしたのは以下のページでした。

@atsutama さんの投稿
99.0パーセントタイルってどういう意味?

awkコマンドで取得

もちろん色んな方法があると思いますが、よっぽど叩かれている機能だったし、
ピークごと機能ごと定期的に取得しているわけではなかったので、
ログから取得せざるを得ませんでした。

色々調べたところ、既存ツールがあったので
そこからコマンドを少しずつ抜粋したり応用してできました。

まず、機能と期間に絞るログ整形はした上で、以下のような形でファイルで出力しました。
※時間帯は全部同じ(ピーク時間帯の1時間)

#分、秒、応答時間ms
00 00 1000
00 00 2000
00 00 1500
00 01 800

その上、以下コマンドを実行すると
ちょうど応答時間msが99.0パーセントタイル値で出力されました。

cat ファイル名 | sort -n | awk 'BEGIN{c=0} length($0){a[c]=$0;c++]END{pt=(c/100*(100-99)); pt=pt%1?int(pt-0.5)+1:pt; print a[c-pt-1]}'

検証方法

一番簡単なのは、100行くらいデータを作成して、
excelとかに貼り付けて取得した99.0パーセントタイル値が同じであるかを
コマンド結果と比較することで簡単にいけました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0