Scribble at 2020-09-24 09:53:26 Last modified: 2020-09-24 16:22:57
もともと「テレメトリ」とは何かの機械の挙動を測定して遠隔の管理システムに集約してグラフ表示するような仕組みを指していた。日本語では、それこそ「遠隔測定法」という言い方がある。これをサーバとか、あるいはウェブ・アプリケーションのパフォーマンス測定に使っていこうということで、Google が社内の計測システムとして Dapper を作ったのが始まりである。特に、現代のウェブ・アプリケーションの多くはマイクロ・サービスを組み合わせた分散システムとなっているため、個々のサービスがどのリクエストに対する処理なのかという "context" をもつので、リクエスト毎に多くのサービスに分散している測定結果を集約しないといけない。
このような測定結果は、いまや膨大な数になっていて、もちろん Google を始めとする企業のサービスでは文字通りビッグ・データとなる。そのため、分散処理のトレーシング(個々のサービスのパフォーマンス計測)という処理能力の脈絡だけではなく、それら計測結果が膨大なデータ量になるという脈絡でも効率的な解析手法が望まれている。そして、この手の解析サービスは商用のものもいくつか出てきているのだが、仕様はそれぞれ違っていることから SDK をいちいち専用のものとしてシステムに組み込む必要があって、他社の仕様へロック・インされかねない。そのため、上記のようなオープンの API 規格が提唱されたりしているのだが…どうも内容が安定しておらず、採用に躊躇する人もいるようだ。
関連する規格として W3C の Trace Context というのがあるけれど、これはヘッダ情報の規格なので、僕らのような規模のサービスを運営する事業者にも一定の用途があるかもしれない。