ストーリー
田
田中VPoE
Step 1で現状を把握し、戦略を描いた。Step 2ではその戦略を具現化する「統合可観測性プラットフォーム」を設計する
田
田中VPoE
「ツールの統一」と「プラットフォームの設計」は別物だ。統一は手段に過ぎない。プラットフォームとは、データの生成から収集、保存、分析、可視化までのEnd-to-Endのアーキテクチャだ。ここを間違えると、数千万円の投資が無駄になる
田
田中VPoE
その通りだ。ツール選定はアーキテクチャの後だ。まず組織に必要な機能要件と非機能要件を定義し、それを満たすアーキテクチャを設計し、最後にそのアーキテクチャを実現するツールを選定する
プラットフォームアーキテクチャの全体像
レイヤー構成
┌─────────────────────────────────────────────────────┐
│ 消費レイヤー │
│ ダッシュボード │ アラート │ 分析 │ レポート │
├─────────────────────────────────────────────────────┤
│ 分析レイヤー │
│ クエリエンジン │ 相関分析 │ 異常検知 │ ML基盤 │
├─────────────────────────────────────────────────────┤
│ ストレージレイヤー │
│ メトリクスDB │ ログストア │ トレースDB │ 長期保管 │
├─────────────────────────────────────────────────────┤
│ 処理レイヤー │
│ フィルタリング │ サンプリング │ エンリッチメント │
├─────────────────────────────────────────────────────┤
│ 収集レイヤー │
│ OTel Collector │ エージェント │ API受信 │
├─────────────────────────────────────────────────────┤
│ 計装レイヤー │
│ 自動計装 │ 手動計装 │ SDK │ ライブラリ │
├─────────────────────────────────────────────────────┤
│ ソースレイヤー │
│ アプリケーション │ インフラ │ ネットワーク │ 外部SaaS │
└─────────────────────────────────────────────────────┘
計装(Instrumentation)戦略
OpenTelemetryを標準計装に
| 選定理由 | 説明 |
|---|
| ベンダー非依存 | 特定バックエンドにロックインされない |
| 業界標準 | CNCF Graduated Project、主要クラウドプロバイダーがサポート |
| 3本柱統合 | メトリクス・ログ・トレースを単一フレームワークで計装 |
| 自動計装 | 主要言語・フレームワークに対応した自動計装 |
| エコシステム | 豊富なReceiver/Processor/Exporterの組み合わせ |
計装の階層
| 階層 | 内容 | カバレッジ目標 |
|---|
| 自動計装 | OTel SDKによるHTTPリクエスト、DB呼び出し等の自動トレース | 全サービス100% |
| フレームワーク計装 | ミドルウェア・フレームワークレベルの計装 | 全サービス100% |
| ビジネス計装 | ビジネスロジック固有のメトリクス・スパン | 主要サービス80% |
| カスタム計装 | 特殊な要件に対応するカスタム計装 | 必要なサービスのみ |
計装例(Go + OpenTelemetry):
// 自動計装: HTTPサーバーのミドルウェア
handler = otelhttp.NewHandler(handler, "api-service")
// ビジネス計装: カスタムスパン
ctx, span := tracer.Start(ctx, "process-payment")
defer span.End()
span.SetAttributes(
attribute.String("payment.method", method),
attribute.Float64("payment.amount", amount),
)
// カスタムメトリクス
paymentCounter.Add(ctx, 1, metric.WithAttributes(
attribute.String("status", "success"),
))
アーキテクチャパターン
パターン1: 集中型(Centralized)
全サービス → OTel Collector → 単一バックエンド
(例: Datadog, Grafana Cloud)
| メリット | デメリット |
|---|
| 運用が単純 | ベンダーロックイン |
| 統合分析が容易 | スケーラビリティの上限 |
| コスト予測が容易 | 単一障害点のリスク |
適用: 中小規模の組織(サービス数30以下)
パターン2: 分散型(Distributed)
全サービス → OTel Collector → ルーティング → メトリクス: Prometheus/Mimir
→ ログ: Loki
→ トレース: Tempo
→ 統合可視化: Grafana
| メリット | デメリット |
|---|
| ベンダー非依存 | 運用が複雑 |
| コンポーネントごとの最適化 | 統合に追加の設定が必要 |
| スケーラビリティ | 運用チームのスキルが必要 |
適用: 大規模な組織、OSSを好む組織
パターン3: ハイブリッド型(Hybrid)
全サービス → OTel Collector → ルーティング → SaaS(メイン分析)
→ OSS(長期保管・コスト最適化)
→ 別SaaS(特定ユースケース)
| メリット | デメリット |
|---|
| 柔軟性が高い | アーキテクチャが複雑 |
| コスト最適化しやすい | データの一貫性維持が必要 |
| ベストオブブリード | 複数ツールの管理 |
適用: 大規模組織、コスト最適化が重要な組織
ツール選定の評価フレームワーク
| 評価軸 | 重み | 評価項目 |
|---|
| 機能性 | 25% | 3本柱統合、相関分析、異常検知、SLO管理 |
| スケーラビリティ | 20% | データ量、クエリ性能、マルチテナント |
| 運用性 | 20% | マネージド度、アップグレード容易性、障害耐性 |
| コスト | 15% | ライセンス、ストレージ、人件費(運用工数) |
| エコシステム | 10% | OTel対応、インテグレーション、API |
| セキュリティ | 10% | データ暗号化、アクセス制御、コンプライアンス |
「ツール選定で最もよくある失敗は”機能比較表”だけで決めることだ。TCO(総所有コスト)、運用工数、組織のスキルセット、将来の拡張性。これらを含めた総合評価が必要だ」 — 田中VPoE
まとめ
| ポイント | 内容 |
|---|
| レイヤー構成 | ソース→計装→収集→処理→ストレージ→分析→消費の7層 |
| 計装標準 | OpenTelemetryを全社標準として採用 |
| アーキテクチャパターン | 集中型、分散型、ハイブリッド型から組織に適したものを選択 |
| ツール選定 | 機能性、スケーラビリティ、運用性、コスト、エコシステム、セキュリティの6軸で評価 |
チェックリスト
次のステップへ
次は「データ収集パイプライン」を学びます。テレメトリデータをどのように効率的に収集し、処理するかの設計手法を身につけましょう。
推定読了時間: 30分