mcpField
G
gcloud-usage

gcloud-usage

github.com/fcakyonクラウド・DevOps1.2k95 回インストール今日更新
リポジトリ

gcloud-usage について

ログ、メトリクス、トレース、アラートを設定する人向けに、Google Cloud のオブザーバビリティ実践例をまとめたスキルです。クエリ例とトラブルシューティング手順も含みます。

主な機能

  1. 01構造化 JSON ログ
  2. 02重大度によるログ絞り込み
  3. 03ログクエリ例
  4. 04メトリクス・ログ・トレースの指針
  5. 05アラートポリシーの推奨事項
  6. 06ログコストの削減方法

活用シーン

  1. 01検索しやすいアプリログの設計
  2. 02サービスのエラーや遅延の調査
  3. 03実行可能な監視アラートの設定
  4. 04ログ取り込み・保持コストの削減

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fcakyon/claude-codex-settings --skill gcloud-usage

インストール後、Claude Code で/gcloud-usageを入力して読み込まれたか確認します。

詳細

GCP オブザーバビリティのベストプラクティス

構造化ロギング

JSON ログ形式

クエリしやすくするため、構造化 JSON ロギングを使用します。

{
  "severity": "ERROR",
  "message": "Payment failed",
  "httpRequest": { "requestMethod": "POST", "requestUrl": "/api/payment" },
  "labels": { "user_id": "123", "transaction_id": "abc" },
  "timestamp": "2025-01-15T10:30:00Z"
}
重大度レベル

フィルタリングには適切な重大度を使用します。

  • DEBUG: 詳細な診断情報
  • INFO: 通常の運用、節目となるイベント
  • NOTICE: 通常のイベントだが、重要なもの
  • WARNING: 潜在的な問題、パフォーマンスの低下
  • ERROR: サービスを停止させない障害
  • CRITICAL: 直ちに対応が必要な障害
  • ALERT: 担当者が直ちに対応する必要がある状態
  • EMERGENCY: システムが使用不能な状態

ログフィルタリングクエリ

よく使われるフィルタ
# By severity
severity >= WARNING

# By resource
resource.type="cloud_run_revision"
resource.labels.service_name="my-service"

# By time
timestamp >= "2025-01-15T00:00:00Z"

# By text content
textPayload =~ "error.*timeout"

# By JSON field
jsonPayload.user_id = "123"

# Combined
severity >= ERROR AND resource.labels.service_name="api"
高度なクエリ
# Regex matching
textPayload =~ "status=[45][0-9]{2}"

# Substring search
textPayload : "connection refused"

# Multiple values
severity = (ERROR OR CRITICAL)

メトリクスとログとトレース

それぞれを使う場面

メトリクス: 時間の経過に伴う集計済みの数値データ

  • リクエスト数、レイテンシのパーセンタイル
  • リソース使用率(CPU、メモリ)
  • ビジネス KPI(1 分あたりの注文数)

ログ: 詳細なイベント記録

  • エラーの詳細とスタックトレース
  • 監査証跡
  • 特定のリクエストのデバッグ

トレース: サービス間のリクエストフロー

  • サービスごとのレイテンシの内訳
  • ボトルネックの特定
  • 分散システムのデバッグ

アラートポリシーの設計

アラートのベストプラクティス
  • アラート疲れを防ぐ: 対応可能な問題だけにアラートを出します
  • 複数条件のアラートを使用する: 一時的な急増によるノイズを減らします
  • 適切な期間を設定する: ほとんどのメトリクスでは 5~15 分にします
  • ランブックへのリンクを含める: 対応担当者が迅速に行動できるようにします
よく使われるアラートパターン

エラー率:

  • 条件:エラー率が 5 分間 1% を超える
  • 適用先:サービスの健全性の監視

レイテンシ:

  • 条件:P99 レイテンシが 10 分間 2 秒を超える
  • 適用先:パフォーマンス低下の検出

リソース枯渇:

  • 条件:メモリ使用率が 5 分間 90% を超える
  • 適用先:キャパシティプランニングのトリガー

コストの最適化

ログコストの削減
  • 除外フィルタ: 取り込み時に冗長なログを除外します
  • サンプリング: 大量に発生するイベントは、一部の割合だけをログに記録します
  • 保持期間の短縮: デフォルトの 30 日間の保持期間を短くします
  • ログの格下げ: より安価なストレージバケットに転送します
除外フィルタの例
# Exclude health checks
resource.type="cloud_run_revision" AND httpRequest.requestUrl="/health"

# Exclude debug logs in production
severity = DEBUG

デバッグのワークフロー

  1. メトリクスから始める: 問題がいつ始まったかを特定します
  2. ログと関連付ける: 問題が発生した時刻の前後でログをフィルタリングします
  3. トレースを使用する: サービス間の特定のリクエストを追跡します
  4. リソースログを確認する: インフラストラクチャの問題を探します
  5. ベースラインと比較する: 正常と確認された期間と比較します

コメント