# OpenTracing Processor (OTP) [[Andre Bento]] らが [[@2021__J Grid Computing__Automated Analysis of Distributed Tracing - Challenges and Research Directions]] で発表した、OpenTracing 形式の分散トレースから「自動分析できる高次の派生データ」を生成する OSS ツール。GitHub に andrepbento/OpenTracingProcessor として公開された(URL: https://github.com/andrepbento/OpenTracingProcessor)。 ## 入出力 - **入力**: [[OpenTracing]] 標準に従う span(Zipkin バックエンド経由)。 - **出力**: 時系列 DB([[OpenTSDB]])に書き込む派生メトリクス。下流で Data Analyser(Isolation Forest)に流す。 ## 抽出する派生データ 指定時間区間あたりに以下を計算(§3.1): - サービスごとの incoming/outgoing 呼び出し数 - サービスごとの平均応答時間 - サービス近傍の変化(incoming/outgoing 両方の依存関係の追加・削除) 論文は他にも service connection degrees・サービス数の時間推移・服役 / 退役 サービス数推移を取り出せるが、対象 dataset では有用性が低かったため使わなかったと記す。 ## 実装 - **trace 再構築**: 既存トレーシングバックエンドは span のみエクスポートし trace の再構築は利用者任せ。OTP は Java Streaming API で並列化して span → trace tree 化を実装。 - **dependency graph**: [[NetworkX]](Python のグラフ処理ライブラリ)で抽出・処理。 - **時系列ストア**: [[OpenTSDB]]、可視化は [[Grafana]]。 - **下流**: 別ツールの Data Analyser(Python + Jupyter Notebook + Pandas + Scikit-learn の Isolation Forest)で外れ値検出([[異常検知]])。 ## 関連 - ソース: [[@2021__J Grid Computing__Automated Analysis of Distributed Tracing - Challenges and Research Directions]] - 開発者: [[Andre Bento]](corresponding author) - 関連基盤: [[OpenTracing]] / [[OpenTSDB]] / [[Grafana]] / [[NetworkX]] - 関連概念: [[分散トレーシング]] / [[異常検知]] / [[トレース品質]] ## 出典 - [[@2021__J Grid Computing__Automated Analysis of Distributed Tracing - Challenges and Research Directions]] §3.1・§3.2、脚注 1 - GitHub: https://github.com/andrepbento/OpenTracingProcessor