OpenTelemetry デモが一般提供になりました!

Blog posts are not updated after publication. This post is more than a year old, so its content may be outdated, and some links may be invalid. Cross-verify any information before relying on it.

今年の初めに、OpenTelemetry の機能と言語の幅広さを表す OpenTelemetry デモを構築するプロジェクトを発表しました。 本日、Demo SIG は OpenTelemetry Demo v1.0 のリリースを誇りを持ってお知らせします! このデモにより、100% OpenTelemetry のトレースとメトリクスで計装された完全なエンドツーエンドの分散システムを素早く実行できます。

Jaeger UI でDAG(有向非巡回グラフ)として表現されたデモアプリケーションのシステムアーキテクチャ

このプロジェクトの主な目標の一つは、開発者が OpenTelemetry を学ぶ際に使用できる堅牢なサンプルアプリケーションを作成することでした。 そしてまさにそれを実現できたことを誇りに思います。 Swift を除くすべての OpenTelemetry 言語 SDK がこのリリースに含まれています。 はい、PHP も含まれています! 以下のような一般的な計装タスクの幅広さを実演する完全なトレースフローを構築しました。

  • 自動計装からのスパンのエンリッチメント。
  • よりリッチで有用なトレースのためのカスタムスパンの作成。
  • トレースコンテキストの自動および手動での伝搬。
  • サービス間で属性を渡すためのオブザーバビリティバゲージの処理。
  • 属性、イベント、その他のテレメトリーメタデータの作成。

また、ランタイムおよびビジネスメトリクスのユースケースに対応するために、複数のサービスに OpenTelemetry メトリクスを統合しました。

OpenTelemetry の優れたデモンストレーションを提供するだけでも十分ですが、1.0リリースで重視したのは、OpenTelemetry の「どのように」だけでなく「なぜ」を示すことでした。 そのために、フィーチャーフラグで制御される障害シナリオを実装するフレームワークを構築しました。 さらに、事前設定されたダッシュボードと、各サービスが出力するテレメトリーデータを読み取り解釈してアプリケーションのパフォーマンス低下の根本原因を発見する方法についてのウォークスルーをドキュメントに含めています。

このデモのもう一つの目標は、ベンダーや OpenTelemetry の商用実装者が、デモを構築するための標準化されたターゲットを持てるようにすることです。 すでに多くの採用が見られ、Datadog、Dynatrace、Honeycomb、Lightstep、New Relic の5社がコミュニティデモアプリケーションを自社の製品デモに統合しています。 今後もこの方向でのさらなるコントリビューションとコラボレーションを促進したいと考えています。

ただし、1.0に到達したからといって、止まるわけではありません。 このデモは生きた成果物であり、今後も改善を続ける予定です。 今後数か月間、より多くの SDK が成熟するにつれて、メトリクスとログのカバレッジを反復的に改善し続ける計画です。

また、アプリケーションの機能を拡張することで、新しい計装シナリオとパターンを追加したいと考えています。 キューやリクエストの非同期処理、セットアップ不要でデモを探索できるホスト版、Swift のサポートの追加などを予定しています。

ぜひデモを試してご感想をお聞かせください! ドキュメントをご覧いただくか、Docker または Kubernetes でデモを実行して、ご意見をお聞かせください。 コントリビューションを希望される方は、GitHub でイシューを作成するか、CNCF Slack の #otel-community-demo にご参加ください。