PCD#452(managing)
Cloud Run サービスでビジネス KPI として「1 分あたりの注文成立件数」を Cloud Monitoring へ送信し、アラートと SLO の両方で参照したいです。最も推奨されるアプローチはどれでしょうか。
正解:C
正解の根拠
ビジネス KPI を継続的に観測しアラートと SLO で参照するには、Cloud Monitoring に Custom Metric として送信するのが王道です。Cloud Run のような GA サービスでは OpenTelemetry の Metrics SDK と GCP Exporter を組み合わせると、追加のサイドカー無しで集計済みカウンタやヒストグラムを送信できます。送信後は MQL や PromQL で時系列クエリを書き、同じ指標を Alert ポリシーと Service Monitoring の SLI 双方で参照可能です。
送信方式の比較
| 方式 | 遅延 | SLO 連携 | 運用負荷 |
|---|---|---|---|
| OpenTelemetry Custom Metric | 低 | 直接 SLI 化可能 | 低 |
| ログ集計のみ | 中 | log-based metric が別途必要 | 中 |
| Trace span 数代替 | 低 | サンプリングで欠損 | 不安定 |
サンプル送信コード
from opentelemetry import metrics
meter = metrics.get_meter("orders")
order_counter = meter.create_counter("orders_completed_total")
order_counter.add(1, {"region": "asia-northeast1"})不正解の理由
- A: 手動 CSV 集計は自動化と SLO 連携の要件を満たせず、アラートのリアルタイム性も確保できません。
- B: Trace は通常サンプリングが効くため、件数の正確な計測には設計上向いていません。
- D: Cloud Storage 経由のバッチ集計は遅延が大きく、Monitoring と SLO API への直接連携も別途必要となります。

コメント