OpenTelemetryは、サービスに対してさまざまな方法で実装できる柔軟なツールキットです。ホストに関するテレメトリを収集することを計画している場合は、 コレクターの指示にスキップしてください。
ヒント
最初にサンプルを使用して練習する場合は、次のいずれかのオプションを使用して、独自の開発環境でサンプルサービスを実行します。
- OpenTelemetryマスタークラス:OpenTelemetryについて学び、.NETまたはPythonの実践的なチュートリアルを試してください
- New Relic OpenTelemetryの例:.NET、Go、Java、またはPythonのサンプルプログラムを使用してインストルメンテーションを試してください
次の5つの手順は、OpenTelemetryを使用して独自のサービスをインストルメント化するのに役立ちます。
- 前提条件
- OpenTelemetryを使用してサービスを計測する
- テレメトリデータをNewRelicにエクスポートするための構成を確認する
- 構成のエクスポート手順を完了します
- NewRelicUIでデータを表示する
ステップ1:前提条件
まず最初に:
- まだ行っていない場合は、無料のNewRelicアカウントにサインアップしてください。
- データを報告するNewRelicアカウントのライセンスキーを取得します。
ステップ2:OpenTelemetryを使用してサービスをインストルメント化する
これらの手順は、サービスのインストルメンテーションに焦点を当てています。インストルメンテーションホストについては、 コレクターの説明にジャンプしてください。
OpenTelemetryは、サービスのインストルメンテーションを支援するために、言語固有の製品とSDKを提供しています。多くの言語は、一般的なライブラリとフレームワーク用のすぐに使えるインストルメンテーションを提供します。各言語は、サービスを手動でさらにインストルメント化するためのAPIも提供します。
ご使用の言語のリポジトリに移動し、指示に従ってサービスをインストルメント化します。完了したら、ここに戻って手順3:テレメトリデータをNewRelicにエクスポートするための構成を確認します。
ステップ3:テレメトリデータをNewRelicにエクスポートするための構成を確認する
テレメトリデータのエクスポートを設定する前に、まずNewRelicの設定のこのセクションを確認してブックマークする必要があります。この情報は、後でエクスポート手順を説明している他のページに移動するときに必要になります。
エクスポートは、OpenTelemetryプロジェクト用に設計された汎用テレメトリデータ配信プロトコルであるOpenTelemetryプロトコル(略してOTLP)に依存しています。このプロトコルでは、テレメトリデータをエンコードおよび送信する方法について説明します。これにより、テレメトリデータはデータ転送に自然に選択されます。各言語SDKは、OTLPを介してデータをエクスポートするように構成できるOTLPエクスポーターを提供します。
OTLPを介してNewRelicにデータをエクスポートするには、次の2つの選択肢があります。
アプリから直接:
サービス内のOTLPエクスポーターは、NewRelicOTLPレシーバーに直接エクスポートできます。
OpenTelemetryコレクターからのエクスポート:
コレクターを、New Relic OTLPレシーバーを受信、処理、およびエクスポートするゲートウェイとして設定できます。または、アプリケーションで実行されるエージェントまたは同じホストで実行されるエージェントとしてコレクターを設定することもできます。
アプリから直接エクスポートする場合でも、コレクターからエクスポートする場合でも、次のことを行う必要があります。
- ヘッダー(
api-key
)を追加するようにOTLPエクスポーターを構成する準備をします。値は、データを送信するNewRelicアカウントのライセンスキーです。 - 統合に基づいて、エクスポーターがNewRelicにデータを送信するエンドポイントを構成する準備をします。エンドポイントは地域固有であるため、アカウントの拠点に応じたものを使用してください。たとえば、アカウントがヨーロッパを拠点としている場合は、EUエンドポイントを使用します。以下の表をガイドとして使用し、以下のポートとエンドポイントに関する追加の考慮事項を参照してください。
統合 | gRPC | HTTP | 終点 | サポートされているポート | APIヘッダー名 | APIヘッダー値 | TLS暗号化が必要 |
---|---|---|---|---|---|---|---|
US OTLP | ✅ | ✅ |
|
|
| ライセンスキー | ✅ |
EU OTLP | ✅ | ✅ |
|
|
| ライセンスキー | ✅ |
US FedRAMP OTLP | ✅ | ✅ |
|
|
| ライセンスキー | ✅ |
無限のトレース | ✅ | ❌ |
|
|
| ライセンスキー | ✅ |
重要
Node.jsでは、 opentelemetry-collector-exporter-grpcライブラリにTLSを有効にするための追加オプションが必要です。
ステップ4:エクスポート構成ステップを完了します
エクスポートするためのNewRelic固有の構成に慣れたので、データをエクスポートする方法の手順に従います。
アプリからNewRelicに直接エクスポートする
ご使用の言語については、以下のリンクをクリックして、構成手順を完了してください。完了したら、ここに戻ってステップ5を完了します。NewRelicUIでデータを表示します。
コレクターからNewRelicにエクスポート
コレクターは、さまざまな方法でさまざまな目的に設定できます。セットアップに入る前にコレクターに関する一般的な情報が必要な場合は、概要を参照してください。
エクスポートするコレクターを設定する例を表示するには、次のいずれかを選択してください。
ステップ5:New Relic UIでデータを見る
サービスをインストルメント化し、データをNew Relicにエクスポートするように構成したら、New Relic UIでトレース、 メトリック、 ログを確認します。
OpenTelemetryのUIは、APMエージェントのUIといくつかの類似点があるため、それに精通している場合は、UIに直接アクセスできます。OpenTelemetry UIオプションの理解、またはデータがUIに表示されることを確認する方法についてサポートが必要な場合は、 「NewRelicでのOpenTelemetryデータの表示」を参照してください。
サポートされていない仕様
New Relicは現在、いくつかの例外を除いて、 opentelemetry-specification v1.8.0
をサポートしています。
- New Relicからの成功した応答には、データ型に基づいてProtobufでエンコードされた応答ではなく、応答本体がありません。New Relicは、認証後、デコードと検証の前に、成功を収めて応答します。
- OTLPクライアントは
Status
オブジェクトを使用しないため、NewRelicからの失敗応答にはStatus.message
またはStatus.details
は含まれません。
次は何ですか?
初期設定を行った後、OpenTelemetryとNewRelicの使用を改善するためのヒントについてのベストプラクティスガイドを確認してください。