OpenTelemetryまわりのことをぼーっと妄想

OpenTelemetry Meetupにリモート参加した

当日は家のことをあれこれやっていてちょこっとしか聴けなかったんだけど、次の日の朝に録画をゆっくりみた。とてもありがたい。

opentelemetry.connpass.com

OpenTelemetryの最近の様子についての話

どの話も面白かった。その中でも自分にとっては特に、山口さんの「OpenTelemetryのここ 1年 4年弱の流れ(仮)」がOpenTelemetryのこれまでと現在の状態がとても分かりやすくてよかった。

ZipkinとJaegerはなんとなく知ってたけど、その後のOpenなんとかがどうなってOpenTelemetryになったんだろう?っていうのがよく分かってなかったので勉強になった。

共通仕様を作る流れはとてもいいなぁ

各ベンダーやプロダクトがバラバラの仕様で進めると、そのベンダーやプロダクトに閉じてしまうので、共通の仕様を作る流れはとてもいいなと思う。

バラバラだとベンダーロックインしてしまうから、というのをよく聞くけど、僕自身は、そこはあんまり気にしていないかな。いちど決めてしまうと、そんなに切り替えたいこともないだろうし。

それよりも、仕様がバラバラだとコミュニティもバラバラになって狭くなってしまうのが、もったいないかなって思う。

どこかのベンダーに閉じたテレメトリーの勉強会だとそのベンダーを使ってる人だけが集まる感じになっちゃうけど、今回みたいなOpenTelemetryのMeetupだとテレメトリーに関わってるみんなが集まって知見が共有されていいなって思う。

トレーシングから始まって色々合流しているのもいいなぁ

トレーシングだけじゃなくて、メトリクス、ログ、(これからプロファイル)が集まってテレメトリーとしての仕様になってるのいいなぁ。と思う。

これからどうなっていくかなぁ?

ここからは、僕の妄想。

OSSプロダクト

テレメトリーを出力する側のOSSなプロダクトは、各言語ごとにOpenTelemetryの仕様に合わせた計装のライブラリが出たり、Webフレームワークはその仕組みを組み込んで簡単にテレメトリーを出力できるようになっていきそう(すでになってる?)。

テレメトリーを受け取って見えるようにする方のプロダクトは、Exporterを提供するよね。受け取る側は、トレーシング・ロギング・メトリクスそれぞれに特化したものよりも、全部入りのプロダクトが強そうだな。

そんな風にして、出力側も受信側も、ユーザーが好きなものを選んで組み合わせられるようになるんだろうなと思う。

ベンダー

ベンダーとしては、OpenTelemetry対応を表に出していく(出している)と思うんだけど、最優先はExporterの部分なんじゃないかなと思う。「OpenTelemetryの仕様で出力されたデータを、自分のプラットフォームにExportできますよ」という部分。そうすると、OpenTelemetry対応したプロダクトから、自分のプラットフォームにデータを送ってもらえるから。

OpenTelemetryの計装の部分は、OSSが中心になるんじゃないかなぁ。ベンダーは独自フォーマットの計装に注力して、その独自計装のお手軽さを押し出していきそう。

そのベンダー独自の計装ライブラリを使うと、もちろんそのベンダーのプラットフォームを使うようにするよね。「APMを入れてAgentにつなぐだけでコードに手をいれなくてもテレメトリーがこんなに簡単に見えるようになりますよ!」って。

その動き自体は自然だと思うし、ユーザーにとってもお手軽というメリットがあって悪くないと思う。ただ、その部分が目立ちすぎると避けられがちになるので、コミュニティにも一定貢献しつつ独自さも打ち出していくの悩ましそう。それか、お手軽さで突き抜けるか。どっちにしても大変そう。

クラウドプラットフォーム

これは本当に個人の妄想なんだけど、GCPはOpenTelemetryを全面に押し出してサポートしたり、コミュニティを盛り上げたりしていきそう。そして「OpenTelemetryで出力していたらGCP上でシームレスにそのテレメトリーが見られますよ」ってやりそう。

AWSは、X-Ray用に独自の計装を提供しつつ、OpenTelemetryのExporter(to X-Ray)は用意する(すでに用意してる)だろうなぁと思う。もし、見えるようにする方のOSSの全部入りプロダクトが成熟してきたら、そのOSSを利用したサービスを提供する可能性もあるのかな。OSS側もそうならないように先にライセンスに手を入れてたりするのかな?

他のクラウドプラットフォームもOpenTelemetryのデータを取り込んで見る側には力をいれそう。ボタンひとつでプラットフォーム上にAgentやコレクターが起動する、みたいなのは用意される(されてる)のかもなぁ。

ユーザー

ユーザーとしての自分は、OpenTelemetryの流れはとてもいいなと思う。そのうえで、こういう選択肢になるのかな↓

  • (1) 簡単便利を推し進めるであろうベンダーのプロダクトを使うか
  • (2) OpenTelemetryに対応するであろうOSSを使って自前で色々やるか
  • (3) OpenTelemetry対応なクラウドプラットフォームに乗って便利だけど別プラットフォームも使えるよって状態にしておくか

自分なら、小規模なうちは(1)で、ある程度大きくなると(3)、もっと大きくなると(2)って感じかな。まぁだから(1)から(3)に行きにくいように(1)は突き抜けようとするんだろうな。

OpenTelemetry自体は、まだこれからって感じがするので、エンジニアとして先行投資で勉強するもよし、もう数年、落ち着くのを待ってから考えるのもよしって感じかな。

面白かった!