watch コマンドを使って API を一定間隔で叩きレイテンシーを確認する
こんにちは、 @kz_morita です。
curl で一定間隔おきに API を叩いてレイテンシーを確認したいといったときに、watch コマンドをつかうと便利だったのでメモです。
ワンライナー 先に結論です。 特定の API を一定間隔で叩きレイテンシーを CSV に書き出すためには以下のようなワンライナーで実現できます。
$ echo '"http_code", "time_total"' > result.csv && watch -n 1 'curl -s localhost:8080 -o /dev/null -w "%{http_code}, %{time_total}\n" >> result.csv' 以下のような CSV ファイルを吐き出すことができます。
"http_code", "time_total" 200, 0.000691 200, 0.000557 200, 0.000604 200, 0.000708 200, 0.000751 200, 0.000678 watch コマンド便利ですね。
以下上記のコマンドについて順を追って説明していきます。
APIを叩いてレイテンシーを確認する 例えば localhost:8080 に対してリクエストをしたいといったときには、以下のように Curl を用いるかと思います。
$ curl localhsot:8080 レイテンシーを計測する際には、以下のように結果を破棄しつつ、-w コマンドでAPIから結果が返却されるまでの時間を取得することができます。
$ curl -s localhost:8080 -o /dev/null -w "%{http_code}, %{time_total}\n" 結果を破棄するには -o /dev/null で。