可観測性(Observability)
システムの内部状態を外部から観察できる能力。メトリクス・ログ・トレースの3本柱で構成され、複雑な分散システムの問題を効率的に特定・解決するための基盤となる。
可観測性(Observability)とは?
可観測性(Observability、オブザーバビリティ)は、システムの内部状態を外部から観察・理解できる能力です。制御工学からの概念で、近年マイクロサービス・クラウドネイティブシステムの複雑化に伴い、SREやDevOpsの文脈で重要視されています。
可観測性の3本柱
| 柱 | 説明 | ツール例 |
|---|---|---|
| メトリクス | 時系列の数値データ(CPU・レイテンシ・エラーレート) | Prometheus, Datadog |
| ログ | 時刻付きのイベント記録(構造化ログが理想) | Elasticsearch, Loki |
| トレース | リクエストの処理経路の追跡(分散トレーシング) | Jaeger, Zipkin, Tempo |
最近は「プロファイリング」を第4の柱と呼ぶことも増えています。
モニタリングとの違い
| 項目 | モニタリング | 可観測性 |
|---|---|---|
| 質問 | 「壊れているか?」 | 「なぜ壊れているか?」 |
| アプローチ | 既知の問題を検知 | 未知の問題も調査できる |
| 手段 | アラートと閾値 | データの自由な探索 |
OpenTelemetry
OpenTelemetry(OTel)は、メトリクス・ログ・トレースを収集するためのオープンスタンダードです。ベンダー非依存でSDKが提供されており、将来的にツールを変更しても計装コードを書き直さずに済みます。
SLO・SLA・SLI
- SLI(Service Level Indicator): 計測する指標(例: 可用性)
- SLO(Service Level Objective): 目標値(例: 99.9%)
- SLA(Service Level Agreement): 顧客との合意(例: 99.5%)
まとめ
可観測性はマイクロサービスの複雑さが増すにつれて不可欠な基盤です。OpenTelemetryで計装しておくことで、将来どのバックエンドに移行してもデータを活用できます。
関連する用語 (DevOps)
全58件を見るIstio
Kubernetesで動作するオープンソースのサービスメッシュ実装。Envoyプロキシをサイドカーとして各Podに注入し、トラフィック管理・セキュリティ・可観測性を提供する。
ELK Stack
Elasticsearch・Logstash・Kibanaの3ツールの組み合わせ。ログの収集(Logstash)・保存・検索(Elasticsearch)・可視化(Kibana)をセットで提供する定番ログ分析基盤。
ArgoCD
Kubernetesのための宣言的GitOps継続デリバリーツール。Gitリポジトリ上のマニフェストと実際のK8sクラスタの状態を常に同期させる。変更を検知して自動でデプロイする。
Datadog
クラウドネイティブな統合監視・APMプラットフォーム。インフラ・アプリ・ログ・トレースを一元的に監視できるSaaS型ツール。エージェントをサーバーにインストールして使用する。
Chaos Engineering
本番システムに意図的に障害を注入し、システムの回復力(レジリエンシー)を検証する実践手法。Netflixが提唱しChaos Monkeyで有名。「障害は必ず起きる」という前提のもと、弱点を事前に発見する。
Namespace
Kubernetesクラスタ内のリソースを論理的に分離する仕組み。開発・ステージング・本番環境の分離や、チーム間のリソース分割に使用する。デフォルトでdefault・kube-system等が存在する。