オブザーバビリティ

システムの内部状態を外部から観測可能にし、問題の原因を迅速に特定するための仕組み

運用オブザーバビリティ

オブザーバビリティとは

オブザーバビリティ (Observability) は、システムの内部状態を外部から観測可能にし、「なぜ問題が起きたか」を迅速に特定するための仕組みである。モニタリングが「既知の問題を検知する」のに対し、オブザーバビリティは「未知の問題を調査する」能力を提供する。

3 つの柱

説明 AWS サービス
ログ (Logs) イベントの詳細な記録 CloudWatch Logs
メトリクス (Metrics) 数値データの時系列 CloudWatch Metrics
トレース (Traces) リクエストの経路追跡 X-Ray

ログ

// 構造化ログ (JSON)
console.log(JSON.stringify({
  level: 'ERROR',
  message: 'Failed to process order',
  orderId: '123',
  error: err.message,
  timestamp: new Date().toISOString(),
}));

構造化ログ (JSON) にすることで、CloudWatch Logs Insights でクエリできる。

-- CloudWatch Logs Insights
fields @timestamp, orderId, error
| filter level = 'ERROR'
| sort @timestamp desc
| limit 20

メトリクス

// カスタムメトリクスを CloudWatch に送信
await cloudwatch.putMetricData({
  Namespace: 'MyApp',
  MetricData: [{
    MetricName: 'OrderProcessingTime',
    Value: duration,
    Unit: 'Milliseconds',
    Dimensions: [{ Name: 'Environment', Value: 'prod' }],
  }],
});

トレース (X-Ray)

[API Gateway][Lambda A][DynamoDB][Lambda B][SQS]

X-Ray トレースマップ:
  API Gateway (50ms) → Lambda A (120ms) → DynamoDB (30ms)
                                        → Lambda B (80ms) → SQS (10ms)
  合計: 170ms

X-Ray はリクエストがどのサービスを通過し、どこで時間がかかっているかを可視化する。

モニタリング vs オブザーバビリティ

観点 モニタリング オブザーバビリティ
目的 既知の問題を検知 未知の問題を調査
アプローチ ダッシュボード + アラート ログ + メトリクス + トレースの相関分析
質問 「CPU 使用率は正常か?」 「なぜこのリクエストが遅いのか?」

理論と実装の両面から学ぶなら関連書籍が参考になる。

関連用語