じゃあ、おうちで学べる

本能を呼び覚ますこのコードに、君は抗えるか

OpenTelemetryについて調べる時に見るページ

はじめに

OpenTelemetryは、分散システムの可観測性を向上させるためのオープンソースフレームワークです。アプリケーションのパフォーマンス、動作、エラーなどを追跡し、収集されたデータを分析および視覚化することで、システムの健全性を監視し、問題の早期発見と解決に役立てることができます。約2年前にOpenTelemetryについてブログに書きましたが、その内容は現状と大分差異があるように感じます。OpenTelemetryプロジェクトは急速に発展しており、公式ページの充実や新しい機能や改善が続々と追加されています。また、多くの組織がOpenTelemetryを採用し、勉強会などで資料を公開したり、オープンソースおよび商用の可観測性ツールとの連携も進んでいます。

syu-m-5151.hatenablog.com

書籍も出ました。こちらも書評を書いている途中です(ちゃんとします)。

本記事では、OpenTelemetryについて調べる際に参考になるページを紹介します。オススメがあればDMなどしてください。

紹介するページについて

以下のページは、OpenTelemetryについて学ぶ際に役立つ情報を提供しています。

1. The main OpenTelemetry website

  • OpenTelemetryプロジェクトの公式ウェブサイトです。
  • プロジェクトの概要、ドキュメント、ブログ、イベントなどの情報が掲載されています。
  • OpenTelemetryを始めるための出発点として最適なページです。
  • 特に、ドキュメントセクションでは、OpenTelemetryの概念、APISDKなどについて詳しく解説されています。

2. The OpenTelemetry GitHub organization

  • OpenTelemetryプロジェクトのGitHubオーガニゼーションページです。
  • プログラミング言語SDKやツール、仕様などのリポジトリが管理されています。
  • コードの閲覧、イシューの確認、プルリクエストの提出などができます。

3. The OpenTelemetry Enhancement Proposal repository

  • OpenTelemetryの拡張提案(OTEP)を管理するリポジトリです。
  • 新機能や変更の提案、議論、承認などのプロセスが記録されています。
  • OpenTelemetryの開発方針や将来の計画を知るのに役立ちます。

4. The OpenTelemetry specification

  • OpenTelemetryの仕様を定義しているリポジトリです。
  • APISDK、データモデル、セマンティック規約などの詳細な仕様が記載されています。
  • OpenTelemetryの実装や互換性を理解するための重要なリソースです。
  • 用語集仕様書も参照すると理解が深まります。

5.OpenTelemetry Semantic Conventions

  • OpenTelemetryのセマンティック規約を定義しているリポジトリです。
  • 属性、メトリック、リソース、イベントなどの命名規則や意味づけが規定されています。
  • 一貫性のあるデータ収集とカタログ化を実現するための指針となります。
  • 最新版の規約はこちらから確認できます。

6. Organizations that have adopted OpenTelemetry

7. OSS and commercial observability tools that support OpenTelemetry

  • OpenTelemetryをサポートしているオープンソースおよび商用の可観測性ツールの一覧ページです。
  • 各ツールの名前、ロゴ、説明、リンクなどが掲載されています。
  • OpenTelemetryと連携可能なツールを探す際に便利です。

8.OpenTelemetry Meetup

  • 国内のOpenTelemetry に関する勉強会
  • ちょっとづつ具体的な話が増えてきている印象がある

9. Datadog's $65M Bill and Why Developers Should Care

  • この記事では、Datadogが直面した高額な請求問題と、それが開発者にとって何を意味するのかを洞察に富んだ視点で解説しています。コスト管理とパフォーマンス最適化に関して、開発者がどのように対応すべきかの実践的なアドバイスが含まれています。
  • OpenTelemetryを活用することで、ベンダーロックインを避け、コストを最適化できる可能性があります。

10. Distributed Systems Observability

  • 分散システムの可観測性に関する包括的なガイドを提供するこの書籍は、理論から実践までを網羅しています。特に、OpenTelemetryを含む様々なツールを用いた観測戦略が詳述されており、実用的な知識を深めるのに役立ちます。

11. Designing Distributed Systems

  • 分散システムを設計する際の重要な考慮事項を解説するこの資料は、システムの可観測性を高めるための実践的なデザインパターンを豊富に提供しています。読者にとって指導的なリソースとなるでしょう。

12. Report shows consumers won't wait long for web pages to load

  • ウェブサイトのパフォーマンスがエンドユーザーの行動にどのように影響するかを掘り下げたこのレポートは、サイトの速度とユーザー満足度の関係を明らかにしています。パフォーマンス監視の重要性についての価値ある洞察が得られます。
  • OpenTelemetryを使ってウェブアプリケーションのパフォーマンスを計測・改善することが、ユーザー体験の向上につながります。

13. Burnout in software engineering: A systematic mapping study

  • ソフトウェアエンジニアリングの分野で発生しているバーンアウト現象についての体系的な研究を提供するこの記事は、業界における心理的健康問題とその対策について詳細に分析しています。
  • システムの可観測性を高めることで、障害対応の負担を軽減し、エンジニアのストレスを緩和できる可能性があります。

14. Observability Engineering

  • 可観測性を中心に据えたこの書籍は、システムの透明性を高めるためのエンジニアリングプラクティスを提案しています。具体的な戦略やツールの使用方法が詳細に解説されており、技術者にとっては非常に参考になる内容です。

15. Introducing Domain-Oriented Microservice Architecture

  • Uberが採用しているドメイン指向のマイクロサービスアーキテクチャに焦点を当てたこの記事は、効率的なサービス設計と運用の実践例を提供しています。システムアーキテクトにとって貴重なケーススタディとなるでしょう。
  • OpenTelemetryを活用することで、マイクロサービス間の依存関係や性能を可視化し、最適化することができます。

16. The Four Golden Signals

  • Googleが提唱するシステムモニタリングの四つの基本指標(レイテンシートラフィック、エラー、飽和)について詳しく解説しています。効果的な監視システムの設計に不可欠な指標を、具体的な例と共に学ぶことができます。
  • OpenTelemetryを使って、これらの指標を収集・分析することができます。

17. Why and How eBay Pivoted to OpenTelemetry

  • eBayがなぜOpenTelemetryへの移行を決めたのか、そのプロセスはどのように進行したのかについての詳細な分析が行われています。大規模な技術移行を検討している企業にとって参考になる事例です。

18. OpenTelemetry Lambda

  • AWS LambdaでOpenTelemetryを効率良く使用するための実践的なガイドとリソースが提供されています。サーバレスアーキテクチャにおける可観測性の課題を克服するのに役立ちます。
  • 自分の環境で利用しているFaaS(Function as a Service)についても、OpenTelemetryのサポート状況を調べてみることをお勧めします。

19. OpenTelemetry Protocol with Apache Arrow

  • Apache Arrowを利用してOpenTelemetryデータを効率的に処理する新たなプロトコルについての解説です。データ処理とパフォーマンスの最適化に関心がある開発者にとって重要なリソースです。

20. Context

  • OpenTelemetryのコンテキストについて解説しています。コンテキストは、分散トレーシングにおいて重要な役割を果たし、リクエストの流れを追跡するために使用されます。

21. Propagators API

  • OpenTelemetryのプロパゲーターAPIについて説明しています。プロパゲーターは、分散システム間でコンテキストを伝搬するために使用されます。

22. Trace Context - W3C Recommendation

  • W3Cが推奨するトレースコンテキストの仕様です。OpenTelemetryは、この仕様に準拠してトレース情報を伝搬します。

23. OpenTelemetry Transformation Language

  • OpenTelemetry Transformation Language(OTTL)は、OpenTelemetryデータを変換するための言語です。コレクターでデータを加工する際に使用されます。

24. OpenTelemetry Collector

25. OpenTelemetry Operator for Kubernetes

  • Kubernetes環境でOpenTelemetryを簡単に導入するためのOperatorです。
  • Helm Chartも提供されています。
  • Target Allocatorを使って、リソースの動的割り当てが可能です。

26. stanza

  • OpenTelemetry Collectorのログパーサーおよびプロセッサです。
  • 柔軟なログ解析とOpenTelemetryフォーマットへの変換が可能です。

27. Open Agent Management Protocol

  • エージェントの設定や管理を統一的に行うためのプロトコルです。
  • OpenTelemetryエージェントの一元管理を可能にします。

28. Traces For Kubernetes System Components

まとめ

本記事では、OpenTelemetryについて学ぶ際に参考になるページを紹介しました。公式ドキュメントやGitHubリポジトリ、仕様書、採用事例、関連書籍など、様々な角度からOpenTelemetryについて理解を深められる資料を取り上げました。

特に、分散システムの可観測性やOpenTelemetryの設計思想については、『Distributed Systems Observability』や『Observability Engineering』などの書籍が詳しく解説しています。また、eBayやUberといった大企業での導入事例は、実際のOpenTelemetry活用方法を知る上で参考になるでしょう。

さらに、OpenTelemetryの各種機能や関連プロジェクトについても触れました。コンテキストの伝搬、データ変換、Kubernetes連携など、OpenTelemetryのエコシステムは非常に広がりを見せています。これらのリソースを活用することで、システムの可観測性を高め、運用効率の改善やパフォーマンスの最適化につなげることができるでしょう。