【要約】ログを観測の単一ソースにする — CodeRouter v1.5.0 観測まわり 4 つの設計判断 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
観測基盤の構築において、メトリクス専用の計測コードが業務ロジックに散在することで、ログとメトリクスの値が乖離する「二重実装問題」が発生しやすい。また、タイムゾーン処理の不備による集計ミスや、過剰な外部ライブラリへの依存によるランタイムの肥大化も、運用上の大きな課題となる。
// Approach
ログを「真実の単一ソース」と定義し、logging.Handlerを介して非侵襲的にメトリクスを収集する。集計はUTCに固定して表示層で変換を行い、データと描画を分離することで表示の整合性を担保する。さらに、Prometheus形式の出力を手書きすることで、依存関係を最小限に抑える設計を採用した。
// Result
業務ロジックへの計測コードの混入をゼロにし、ログとメトリクスの完全な整合性を実現した。依存ライブラリを5個に抑えつつ、CLI TUIとHTMLダッシュボードの両方で一貫したデータを提供できる、軽量かつ堅牢な観測パイプラインを構築することに成功した。
Senior Engineer Insight
> 極めて合理的かつ、現場の痛みを理解した設計だ。特に『ログを単一ソースとする』判断は、分散システムにおける観測の整合性問題を、実装レベルではなくアーキテクチャレベルで解決している。logging.Handlerを用いた非侵襲的なメトリクス収集は、開発者の認知負荷を下げつつ、ログとメトリクスの乖離という古典的な失敗を構造的に防いでいる。依存関係を最小化する『5個ルール』や、Prometheus出力を手書きする判断も、ランタイムの軽量化とサプライチェーンリスク低減を両立させた、実戦的な審美眼の賜物と言える。