運用しているサービスの可用性を簡単に可視化できないものかと思っていた所、GCP CloudMonitoringのUptime ChecksとDatadogで簡単に可視化できそうだったのでそのメモになります。
Uptime Checks
GCPのCloudMonitoringの機能の一つで、HTTP(HTTPS)・TCPのプロトコルに対し、下記で指定した宛先に一定時間ごとにリクエストを送ってステータスをチェックしてくれます。そこからアラート通知することも可能です。
- URL
- GCP Instance
- AWS Elastic Load Balancer
- GCP App Engine
GCPだけでなくて何にでも使えるのが嬉しい所、、、
HTTPヘッダも追加できます。
使用料金はなんと無料。(Basic Tierに含まれます)
https://cloud.google.com/stackdriver/pricing?hl=ja
チェック元のマシンのロケーションはなんと6通りもあり、要したレイテンシ時間も標準メトリクスとして取得できます。
(もちろんチェック元のマシンはGCP側でマネジメントされています)

一般公開していないサービスの場合、チェック元マシンのIPアドレスを許可する必要があります。
そのリストの取得方法は下記のドキュメントを参照。(UIやAPI経由で取得できます。)
Datadog
GCPをIntegration
上記のUptime ChecksのメトリクスはDatadog側でGoogle PlatformをIntegrationすることで簡単に取得できるようになります。
Integrationすると、下記のメトリクスが取れるようになっていると思います。
- gcp.monitoring.uptime_check.check_passed
- gcp.monitoring.uptime_check.request_latency
- gcp.monitoring.uptime_check.content_mismatch
今回利用するのは一番上のcheck_passedになります。
メトリクスの詳細については下記参照。
https://cloud.google.com/monitoring/api/metrics
check_passedはチェックに成功するとBOOL型でTrueを返してくるとのこと。
と成功すると1, 失敗すると0を返すということで、ある期間のメトリクスの平均を取ればいいはず。
グラフの作成
任意のダッシューボードでQuery Valueをドラッグ&ドロップします。
すると、グラフ作成のダイアログが開きます。

それでは先ほどのメトリクスを元に設定項目を追加していきます。(図参照)

ちなみに、ある値を下回ったら赤で、上回っていたら緑で表示するようにもできます。
(SLAで既に可用性の値を決めている場合に使えるのではないでしょうか。)
図では99.99を目標として99.985を閾値にしています。(四捨五入されるため)

ここまで入力したら、Doneボタンを押して保存して一つのグラフの完成です。
これを使うことで下記のようなDashboardの作成が可能です。
