ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。プログラム&ロボット大好きなポンコツが日々の記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

GCPのロードバランサのlatencyのpercentileのグラフを確認してみた。

このブログでも使っているGCPのロードバランサですが、そのログを見ていたときにちょっと気になったのです。

Stackdriver Loggingを見てみよう

以下のように、Stackdriver Loggingでログで、Cloud HTTP ロードバランサのログが見れると思います。

この右から4番目のnullってなんだって話。

カーソルをあわせてみると・・・

どうやらhttpRequest.latencyの値を拾ってきているけど、データが入っていないっぽい。

たしかにhttpRequestの中にはlatencyという項目はない。。

いろいろ調べたり、GCPに詳しい人とかにも聞いてみたのですが、ここのロギングの項目には見つからない。。

Datadogではなんとlatencyのavg(平均)は見れるっぽいのですが、percentileとかは見れないのです。。

ロードバランサのレスポンスタイムとかの平均値を知ったところで、個人的にはあまり意味がないって感じているんです。。パーセンタイルが知りたいなって。

(ロギングのアクセスごとのreceiveTimestampとtimestampの差分を求めれば、もしかしたらターンアラウンドタイムが求まるんじゃないかって思ったのですが、これについては試してないです。。)

 

じゃあ、どうやってパーセンタイルを知ることができるのか?

 

Stackdriver モニタリングを見てみよう

ということで、Stackdriver monitoringを見てみましょう。

メニューからいけます。

開くと以下のようにStackdriverが起動します。右のメニューから「Resources > Google Cloud Load Balancers」を選択する。

みたいロードバランサを選択する。自分の場合はwordpress-blog-pnktsという名前のロードバランサを選択しました。

右の方にあるグラフがそれにあたります。

ちゃんとLatencyの以下のパーセンタイルが見れています

  • 99パーセンタイル
  • 95パーセンタイル
  • 50パーセンタイル
  • 5パーセンタイル
  • 平均値(画像では隠れてしまっているが)

もちろん、Total Latencyだけでなく、Backend Latency、Frontend RTTの項目のパーセンタイルを確認することができます。

最後に

このように、GCPではロードバランサのlatencyが取りにくそうですが、でも見れないことはなさそうってところまで確認しました。

生ログをBig Queryに投げて集計とかしちゃえばいいのかもしれないですが、こういうやり方もありましたっていう紹介記事でした。

ちなみにAWSのALB(Application Load Balancer)などのロードバランサは、ちゃんとlatencyのパーセンタイルのメトリックは出力されているので、Datadogでも簡単に表示ができますね。そういうのを体感するとAWSのほうがいろいろしっかりしてるのかもって思っちゃいます。。