Datastoreのエクスポートコストは Google Cloud Monitoring に表示されません。リアルタイムアラートで的確に把握する方法を紹介します。
GCP Operations(旧 Stackdriver)や App Engine ダッシュボードで利用できる Google Cloud Datastore のモニタリングでは、Datastore オペレーションのメトリクスを確認でき、クラウドコストやインフラ負荷の発生源を追跡できます。

Google Cloud Datastore に潜む隠れたコストを可視化する
ただし、それも「ほぼ」の話です。

エクスポート実行中の GCP Operations ダッシュボードにおける Datastore モニタリング

エクスポート実行中の GCP Operations ダッシュボードにおける Datastore モニタリング
Datastore Export の一部として行われる読み取りオペレーションは、モニタリングに反映されません。左の2枚の画像を見ると、その様子が確認できます。
これらを、通常の Datastore オペレーション時のダッシュボード表示と比べてみてください(本記事末尾の Appendix を参照)。
つまり、Export を使って大規模なバックアップを実行した場合、費用は確実に発生するにもかかわらず、その発生源を簡単に突き止めることができません。さらに厄介なのは、Export は通常 cron ジョブなどで定期実行するように設定されるため、知らないうちに大規模な Export が頻繁に走っている可能性があることです。
コストは GCP Billing や reOptimize でも追跡できますが、いずれも反映に1日のタイムラグがあり、コストの正確な発生源までは示してくれません。
Datastore の利用をリアルタイムアラートで検知する
そこで、GCP のログから ExportEntities のエントリを探します。次の高度なログビューアフィルタを使うか、こちらから直接アクセスしてください。
このログクエリにアラートを設定しておけば、Datastore が(場合によっては大規模に)使用されていることをすぐに把握できます。
手順は、ログベースのメトリクスを作成する一般的な流れと同じです。
- ログビューアのクエリ画面を開きます。
- 「Create Metric」を選択します。
DatastoreExportのような名前を付け、それ以外はデフォルト(Counter Metric)のままにします。「Create Metric」をクリックすると、Metrics ページに移動します。- スクリーンショットのように、作成したメトリクス右端の縦三点リーダーをクリックし、「Create alert from metric」を選びます。

ログメトリクスから「Create alert」を選択
自動入力された値に不具合があり(エラー表示が出ます)、ここで一度コンディションパネルを閉じる必要がある場合があります。
- アラートポリシーに名前を付けます(例:
exporting-alert)。 - 「Add Condition」をクリックして、コンディションパネルをもう一度開きます。
- Target に作成したログベースのメトリクス(
logging/user/DatastoreExport)を指定し、トリガー条件を 「is above 0」 に設定します。「Add」をクリックします。

アラートポリシーの作成
- 「Add notification channel」をクリックし、「Email」を選択してアドレスを入力したら、「Add」をクリックします。
これで、Export が実行されるたびにメールで通知が届くようになります。
Appendix
以下のダッシュボード画像は、モニタリングが正常に動作している状態を示したもので、Datastore のオペレーションが正しく表示されています。

通常運用時の GCP Operations ダッシュボードにおける Datastore モニタリング

通常運用時の GCP Operations ダッシュボードにおける Datastore モニタリング

通常運用時とエクスポート時の AppEngine ダッシュボードに表示される Datastore の課金状況

(cron で起動された可能性のある)コストの原因となった Export を特定する