## Memo ## Abstract 潜在的な問題は複雑で、多様で、予測不可能である。現在一般的に使用されている監視・診断ツール(ログ、カウンタ、メトリクス)には、2つの重要な限界がある。それは、記録される内容が事前に定義されていることと、情報がコンポーネントやマシン中心で記録されるため、これらの境界を越えたイベントの相関をとることが非常に難しいことである。本論文では、動的なインスツルメンテーションと新しい関係演算子である[[Happened-before]] joinを組み合わせることで、この2つの制限に対処する分散システムのモニタリングフレームワークであるPivot Tracingを紹介する。Pivot Tracingは、実行時に、ユーザがシステムのあるポイントで任意のメトリクスを定義する能力を提供し、同時に、コンポーネントやマシンの境界を越えても、システムの他の部分で意味のあるイベントを選択し、フィルタリングし、グループ化することができる。我々はJavaベースのシステム用にPivot Tracingのプロトタイプを実装し、HDFS、HBase、MapReduce、YARNで構成されるヘテロジニアスなHadoopクラスタ上で評価した。Pivotトレースが、ソフトウェアのバグ、設定ミス、ハードウェアの不具合など、様々な根本原因を効果的に特定できることを示す。また、Pivot Tracingは動的で拡張性が高く、実行オーバーヘッドを抑えながら、相互運用するアプリケーション間の階層をまたいだ分析が可能であることを示す。