Cloud Monitoring の SLO 機能を使った本番アラート設計を完全チュートリアル化します。 SLI 選定から Burn Rate Multi-window アラート、Terraform IaC 化、Synthetic Monitoring まで網羅します。
| サービス | SLI |
|---|---|
| REST API | HTTP 2xx/3xx 率 + P95 Latency |
| 非同期処理 | 処理成功率 + Queue 滞留時間 |
| バッチ処理 | 完了時間内成功率 |
| データパイプライン | Freshness + Correctness |
| Storage | Read/Write 成功率 + Latency |
resource "google_monitoring_service" "api" {
service_id = "api-service"
display_name = "Order API"
basic_service {
service_type = "CLOUD_RUN"
service_labels = {
service_name = "order-api"
location = "asia-northeast1"
}
}
}
resource "google_monitoring_slo" "availability" {
service = google_monitoring_service.api.service_id
slo_id = "availability-99-9"
display_name = "99.9% Availability over 28d"
goal = 0.999
rolling_period_days = 28
basic_sli {
availability {}
}
}
resource "google_monitoring_slo" "latency" {
service = google_monitoring_service.api.service_id
slo_id = "latency-p95-500ms"
display_name = "95% requests under 500ms"
goal = 0.95
rolling_period_days = 28
basic_sli {
latency {
threshold = "0.5s"
}
}
}resource "google_monitoring_alert_policy" "fast_burn" {
display_name = "Fast burn: 14.4x in 1h"
combiner = "OR"
conditions {
display_name = "Fast burn"
condition_threshold {
filter = <<EOT
select_slo_burn_rate("${google_monitoring_slo.availability.name}", 3600s)
EOT
threshold_value = 14.4
duration = "60s"
comparison = "COMPARISON_GT"
}
}
notification_channels = [google_monitoring_notification_channel.pagerduty.id]
}
resource "google_monitoring_alert_policy" "slow_burn" {
display_name = "Slow burn: 3x in 24h"
combiner = "OR"
conditions {
display_name = "Slow burn"
condition_threshold {
filter = <<EOT
select_slo_burn_rate("${google_monitoring_slo.availability.name}", 86400s)
EOT
threshold_value = 3
duration = "300s"
comparison = "COMPARISON_GT"
}
}
notification_channels = [google_monitoring_notification_channel.slack.id]
}# PagerDuty
resource "google_monitoring_notification_channel" "pagerduty" {
display_name = "PagerDuty: SRE"
type = "pagerduty"
labels = { service_key = var.pagerduty_key }
}
# Slack
resource "google_monitoring_notification_channel" "slack" {
display_name = "Slack: #alerts"
type = "slack"
labels = {
channel_name = "#alerts"
auth_token = var.slack_token
}
}
# Webhook
resource "google_monitoring_notification_channel" "webhook" {
display_name = "Custom Webhook"
type = "webhook_tokenauth"
labels = { url = "https://api.example.com/alerts" }
}from opentelemetry import metrics, trace
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.exporter.cloud_monitoring import CloudMonitoringMetricsExporter
resource = Resource.create({"service.name": "order-api", "service.version": "1.0.0"})
reader = PeriodicExportingMetricReader(CloudMonitoringMetricsExporter())
metrics.set_meter_provider(MeterProvider(resource=resource, metric_readers=[reader]))
meter = metrics.get_meter(__name__)
order_counter = meter.create_counter("orders_total", description="Total orders")
order_latency = meter.create_histogram("order_latency_ms", unit="ms")
# アプリ内で記録
order_counter.add(1, {"status": "success"})
order_latency.record(123.4)// Puppeteer Script (synthetic-script.js)
const synthetics = require('@google-cloud/synthetics-sdk');
synthetics.GenericSynthetic(async () => {
const browser = await synthetics.launch();
const page = await browser.newPage();
await page.goto('https://app.example.com/login');
await page.fill('#email', '[email protected]');
await page.click('#login-button');
await page.waitForSelector('#dashboard');
return { success: true };
});
# デプロイ (Cloud Functions として)
gcloud functions deploy synthetic-login \
--gen2 --runtime=nodejs20 --trigger-httpSLO はどう設計する?
ユーザー体験に直結する SLI を選ぶ (Availability / Latency P99)。SLO はビジネス要件と運用負荷のバランス、通常 99.9% から始める。
Burn Rate アラートの推奨設定は?
Multi-window Multi-burn-rate パターン: Fast burn (14.4x × 1h) → PagerDuty 即時、Slow burn (3x × 24h) → Email 翌営業日。
Cloud Monitoring の SLO 機能でどこまで自動化される?
SLI 計算 + SLO 評価 + Error Budget 可視化 + Burn Rate アラートが自動。手動は SLI 定義 + 通知チャネル設定のみ。
OpenTelemetry で計装すべき?
推奨。Vendor lock-in 回避 + 標準仕様 + Auto-instrumentation (Java/Python/Go)。Cloud Monitoring / Trace / Logging に標準送信可。
通知チャネルは何を使う?
本番アラート: PagerDuty、社内通知: Slack、定期レポート: Email、自動化: Pub/Sub → Cloud Functions。複数併用が標準。
Datadog / New Relic と併用するべき?
Cloud Monitoring で十分なケースが多い。Multi-cloud / 高度な APM 必要なら Datadog 併用。コスト最優先なら Cloud Monitoring のみ。
ダッシュボードはどう作る?
Service ごとに 1 ダッシュボード推奨。Golden Signal (Latency / Traffic / Errors / Saturation) を含める。Terraform で IaC 化が定石。
Synthetic Monitoring は何ができる?
ブラウザ操作シナリオを定期実行 (Puppeteer ベース、2024 GA)。ログイン → 検索 → 購入 等の E2E パスを外部監視可能。
関連記事・可観測性 / SRE
GCP Professional Cloud Developer (PCD) 完全ガイド|Cloud Run・GKE・CI/CD・APM
Google Cloud Professional Cloud Developer の試験範囲、Cloud Run / GKE / Cloud Build / Cloud Trace、AWS DVA / Azure AZ-204 比較、学習ロードマップを徹底解説。
GCP PCDOE 試験対策|SRE / SLI / SLO / Error Budget 実装パターン完全ガイド
Google Cloud Professional Cloud DevOps Engineer (PCDOE) の SRE 領域を実装視点で深掘り。SLI / SLO / Error Budget / Burn Rate / Toil 削減 / Postmortem / Cloud Monitoring SLO 機能を解説。
Cloud Scheduler + Cloud Functions/Run で定期バッチ自動化チュートリアル (GCP)
Google Cloud Scheduler と Cloud Functions / Cloud Run Job で定期バッチ自動化。cron 形式、OIDC 認証、リトライ、Dead Letter、Workflows 連携、Cloud Run Job 並列実行を 2026 年最新版で解説。
GCP Professional Cloud DevOps Engineer (PCDOE) 完全ガイド|SRE・GKE・CI/CD・SLO
Google Cloud Professional Cloud DevOps Engineer の試験範囲、SRE / SLI / SLO / Error Budget、GKE / Cloud Build / Cloud Deploy、AWS DOP・Azure AZ-400 比較を徹底解説。
※ Google Cloud は Google LLC の商標です。最新は SLO Monitoring 公式 をご確認ください。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Google Cloud (GCP) 認定資格ロードマップ 2026 完全版|全 15 試験を体系化
Google Cloud 認定資格 全 15 試験 (Foundational 2 + Associate 3 + Pr...
Cloud Digital Leader (CDL) 完全ガイド|出題範囲・学習リソース・合格戦略
Google Cloud Cloud Digital Leader (CDL) の完全ガイド。6 ドメイン 92 bul...
Generative AI Leader (GAIL) 完全ガイド|Google Cloud 生成 AI 認定
Google Cloud Generative AI Leader (GAIL、2025-05-14 リリース) の完全...
Vertex AI 入門|Google Cloud 統合 ML プラットフォームの全機能
Google Cloud Vertex AI の入門解説。Vertex AI Studio / Agent Builde...
GCP Associate Cloud Engineer (ACE) 完全ガイド|試験範囲・受験料・学習ロードマップ
Google Cloud Associate Cloud Engineer (ACE) の試験範囲・受験料 125 US...