OpenTelemetryを使い始める
街を見渡している双眼鏡

OpenTelemetryとは何か?

OpenTelemetryはサービスインストゥルメンテーション(パフォーマンスを測定する方法)のオープンソースプロジェクトであり、統一規格です。OpenTelemetryプロジェクトは、Java、Go、Pythonなどのさまざまなプログラミング言語向けのソフトウェア開発キット(SDK)を含む、単一のアプリケーションプログラミングインターフェース(API)、ライブラリ、およびインテグレーションで構成されています。標準化されたAPIを使用するDevOpsチームは、SDKを切り替える際のコードの変更について心配する必要がありません。これにより時間が節約され、作業量が減り、パフォーマンス向上とトラブルシューティング活動が合理化されます。

Cloud Native Computing Foundation (CNCF)がスポンサーとなっているOpenTelemetryはOpenTracingOpenCensusを置き換えるものです。その目的は、テレメトリーデータを収集してバックエンドプラットフォームに送信する方法を標準化することです。また、アプリケーションやサービスからテレメトリーデータを収集するために使用できる、一元的なコレクターサービスも定義されています。お好みのオブザーバビリティプラットフォームにデータを送信するためのエクスポーターも含まれています。

OpenTelemetryはモニタリングソフトウェアの3つの側面、すなわち記録機器のインストゥルメンテーション、データのキャプチャ、分析のための情報のエクスポートをすべてカバーします。OpenTelemetryはベンダーに依存しません。開発チームは、ベンダーニュートラルなソリューションを必要とする場合に、モニタリングソリューションを手作業で開発する必要はありません。OpenTelemetryを使用すると、クライアントの仕様を満たすためにソリューションプロバイダーのインストゥルメンテーションライブラリを使用する必要はなくなります。

最も価値のあるOpenTelemetryのユースケース

チームは、優先度の高い以下の3つのユースケースでOpenTelemetryの価値が最も高まると考えています:

  • データが複数のプラットフォーム上に存在する
  • ベンダーニュートラルと必要としている
  • 貴重なチームの時間を最適化したい

このブログ投稿では、OpenTelemetryの概要と、このオープンスタンダードがインストゥルメンテーションの未来である理由を説明します。まずはビデオをご覧ください:

OpenTelemetryがインストゥルメンテーションの未来である理由

ビデオで説明されているように、OpenTelemetryがインストゥルメンテーションを変える理由は次の4つです:

  1. 大規模なオープンソースコミュニティによって構築・サポートされているため、広く深いさまざまなインストゥルメンテーションを利用することができます。昨年は300社以上の企業がOpenTelemetryプロジェクトに貢献し、貢献件数は10万件を超えました。また、過去1年間で2,000人以上の貢献者がOpenTelemetryコミュニティに参加しました。オープンスタンダードであるOpenTelemetryは、世界中のエンジニアがインストゥルメンテーションに貢献するため、幅広いコラボレーションを促進し、カバレッジ、柔軟性、普遍性を促進します。
  2. 標準的なインストゥルメンテーションとは、異なるツールやサービスが一緒に動作することであり、ユーザーにシステム全体の可視性をもたらします。OpenTelemetryには相互運用性があります。つまり、さまざまなシステムが全てのサービスで情報を交換するために、この標準形式のインストゥルメンテーションを使用できます。アプリケーションのすべてのサービスで使用できる標準的なインストゥルメンテーションがないと、盲点やデータサイロが発生して、トラブルシューティングに影響を及ぼし、問題を迅速に検出して解決する能力が削がれてしまいます。OpenTelemetryは可視性のギャップを解消します。
  3. バックエンドのオブザーバビリティツールを柔軟に変更することができます。ほとんどのプロプライエタリモニタリングソリューションでは、テレメトリデータを収集するために特定のインストゥルメンテーションエージェントをインストールする必要があります。別のツールに切り替える場合、別のプロプライエタリエージェントをインストールしたり、コードを再計装したりするために、より多くの時間とリソースを費やさなければなりません。OpenTelemetryでは、ユーザーのパスはさまざまなプロプライエタリツールから独立したものとして扱われます。バックエンドのオブザーバビリティツールを変更しても、インストゥルメンテーションを変更する必要はありません。OpenTelemetryのソースコードを完全に把握し、コミュニティがどのように機能を開発してバグを修正しているのかを知ることができます。
  4. 新しい技術を容易に監視することができます。新しい技術が開発されると、OpenTelemetryのインストゥルメンテーションは、アプリケーションがすでに使用しているライブラリやフレームワークの一部となります。つまり、個々のモニタリングツールが最新技術をサポートするのを待つ必要はありません。

オブザーバビリティを生み出した開発スレッドの2つは、Kubernetesのようなオーケストレーションされたシステムをより理解しやすいものにする必要性と、アプリケーションパフォーマンスモニタリング(APM)をより透明性の高いものにする必要性によるものでした。オブザーバビリティの使用目的は、システムがどのように動作するかについて、豊富なコンテキストと非常に詳細な洞察を提供することです。

オブザーバビリティにとってOpenTelemetryが必要である理由

オブザーバビリティを生み出した2つの主なソフトウェア開発スレッドは、Kubernetesのようなオーケストレーションされたシステムをより理解しやすいものにする必要性と、アプリケーションパフォーマンスモニタリング(APM)をより透明性の高いものにする必要性です。オブザーバビリティの使用目的は、システムがどのように動作するかについて、豊富なコンテキストと非常に詳細な洞察を提供することです。

オブザーバビリティのために必要なこと

  • メトリクス、トレース、ログなどの関連データを収集するシステムとアプリケーションを作成する
  • 関連データを、分析に使用しているプログラムの外部のプラットフォームに容易にまたは自動的にエクスポートできるようにする
  • システム全体を視覚化し、洞察を提供するための分析(これにはアプリケーションの開発における変更がエンドユーザーエクスペリエンスにどのように影響を与えるかが含まれます)

オブザーバビリティにより、開発者と利害関係者はシステムおよびプラットフォーム全体を監視し、どのように機能しているかを判断できます。ただし、サポートなしでオブザーバビリティを測定して分析するのは困難です。OpenTelemetryのようなツールは、さまざまなベンダーや言語のパフォーマンスの監視を合理化し、開発者がオブザーバビリティメトリクスを観察し、監察結果を報告するのに役立ちます。OpenTelemetryが製品に適しているかを判断するために、開発者は次のような質問をするべきです:

  • 使用しているプログラミング言語やプラットフォーム、フレームワークは何か?
  • 分析対象のデータの種類は何か?
  • 分析のためにデータを送り込む先の分析ツールは何か?

OpenTelemetryを最高の状態で機能させるには、オブザーバビリティと組み合わせる必要があります。OpenTelemetryのコレクターの一部(レシーバー、プロセッサー、およびエクスポーター)が、パフォーマンスとトラブルシューティングのための分析が適切に行える形式で提供される意味のあるデータ 情報を取り込み、コンパイルし、配布すると、開発者は1つのツールで完全なオブザーバビリティとモニタリングにアクセスすることができます。

New RelicとOpenTelemetry

New RelicはOpenTelemetryの設立当初からの主要な貢献者の1社です。当社は2020年に、エージェントをオープンソース化し、オブザーバビリティ関連の製品をOpenTelemetryに準拠させるなど、オープンソースインストゥルメンテーションに全面的に取り組むと発表しました。New Relicのネイティブな OpenTelemetryプロトコル(OTLP)のサポート と充実したユーザーエクスペリエンスにより、ユーザーはこの新しいインストゥルメンテーション標準を利用してシステムを理解し、トラブルシューティングを行い、最適化することができます。