# ログ重複排除
## 定義
ログ重複排除(log deduplication)は、意味的に同一のログエントリを集約し、発生頻度と時間範囲を保持しつつ冗長なストレージと処理を排除する手法である。サンプリング(データを恒久的に破棄)とは異なり、「何が起きたか」「どの頻度で」「いつからいつまで」の情報を保持する点が特徴。(Source: [[@2026__OTelBlog__Log Deduplication Processor]])
## 実装アプローチ
**Collector 層(パイプライン内重複排除)**: [[OpenTelemetry]] Collector のログ重複排除プロセッサは、リソース属性・スコープ・メッセージ本文・属性・重大度・イベント名のハッシュで同一性を判定し、設定可能な時間窓内で集約する。出力に `log_count`・`first_observed_timestamp`・`last_observed_timestamp` を含める。OTTL 式による条件指定と `exclude_fields` で高基数フィールドを除外可能。(Source: [[@2026__OTelBlog__Log Deduplication Processor]])
**カーネル層(書き込み前抑止)**: [[LogReducer]]([[@2023__ICSE__LogReducer - Identify and Reduce Log Hotspots in Kernel on the Fly]])は [[eBPF]] で `sys_write()` をインターセプトし、ログホットスポットをディスク書き込み前にカーネル空間でドロップする。WeChat 60 万台で 39.08% 削減・CPU 0.008%。
## 横断的知見
- **Collector 層とカーネル層の重複排除は相補的にテレメトリパイプラインの異なる段階でログ量を削減する**: LogReducer がカーネル空間でディスク書き込み前にホットスポットを除去し(最上流フィルタ)、OTel 重複排除プロセッサが Collector パイプライン内で転送前に集約する(中流フィルタ)。いずれも博士論文([[@2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]])が述べた「計装層と分析層の両端で文脈を使って絞る」設計指針の具体化であり、Collector 層は OTTL 式で条件を柔軟に指定できる一方、カーネル層はオーバーヘッドが桁違いに小さい(0.008% vs パイプライン処理コスト)。(Source: [[@2026__OTelBlog__Log Deduplication Processor]]、[[@2023__ICSE__LogReducer - Identify and Reduce Log Hotspots in Kernel on the Fly]])
- **重複排除はサンプリングと排他ではなく組み合わせ可能**: サンプリングは「全体の割合」を確率的に間引くのに対し、重複排除は「同一メッセージの反復」を集約する。両者はパイプラインの異なる段階で適用可能であり、重複排除で反復ノイズを除去した後にサンプリングで総量を制御する二段構成が考えられる。
## 未解決の問い
- Collector 層の重複排除プロセッサと、LogReducer のようなカーネル層抑止を同時適用した場合の効果の重複・干渉はどう評価されるか。
- 重複排除の時間窓(インターバル)設定がリアルタイムアラートの検知遅延に与える影響の定量的評価。1 秒は許容範囲だが、異常バーストの初動検知にはどこまで短縮可能か。
- 監査ログ・コンプライアンスログの除外ルールを OTTL 式で定義する運用プラクティスは確立されているか。
## 関連
- 概念: [[テレメトリ]] / [[ログ解析]] / [[ログベース障害診断]] / [[eBPF]]
- エンティティ: [[OpenTelemetry]] / [[LogReducer]]
- ソース: [[@2026__OTelBlog__Log Deduplication Processor]] / [[@2023__ICSE__LogReducer - Identify and Reduce Log Hotspots in Kernel on the Fly]]
## 出典
- [[@2026__OTelBlog__Log Deduplication Processor]]
- [[@2023__ICSE__LogReducer - Identify and Reduce Log Hotspots in Kernel on the Fly]]