OpenTelemetry APM UI は、サービス エンティティで利用できる厳選されたエクスペリエンスです。 New RelicとOpenTelemetryを使用してサービスを構成していない場合は、 OpenTelemetry APM監視」を参照してください。
OpenTelemetry APM UI ページは、問題を迅速に特定して診断できるように設計されています。 多くの場合、データはさまざまなOpenTelemetry セマンティック規則に準拠する必要がありますが、一部は汎用的です。 各ページの詳細情報と要件については以下を参照してください。
- 概要ページ
- トレースページの配布
- サービスマップページ
- トランザクションのページ
- データベースページ
- 外部サービスページ
- JVM ランタイム ページ
- ランタイムページへ
- ログページ
- Errors Inboxページ
- メトリクスエクスプローラーページ
次の New Relic の概念は、ページ間で繰り返されるか、重複しています。
OpenTelemetry APM サービスを探す
OpenTelemetry APM サービスを見つけるには、 All entities > Services > OpenTelemetryまたはAPM & Services [APM とサービス]に移動します。 サービスをクリックすると、サービスの概要ページに移動します。
エンティティ エクスプローラー内では、 エンティティ タグでフィルターできます。 エンティティ タグの計算方法の詳細については、 New Relic の OpenTelemetry リソースを参照してください。
ページ: 概要
概要ページには、次のようなサービスの健全性の概要が表示されます。
- ゴールデンシグナル: レスポンスタイム、完了、エラー率。 これらがどのように計算されるかの詳細については、 golden signalsを参照してください。
- 関連エンティティ: このサービスと通信する他のサービスおよび関連インフラストラクチャ。 詳細はサービスマップをご覧ください。
- アクティビティ: このサービスに対してアクティブなアラートのステータス。
- ディストリビューティッド(分散)トレーシング インサイト: 下流または上流のインフラストラクチャがパフォーマンスの低下に寄与しているかどうかを確認します。 詳細については、関連するトレース エンティティ信号を参照してください。
- インスタンス: サービスが水平方向にスケーリングされた場合のインスタンスごとのゴールデンシグナルの内訳。
service.instance.id
リソース 属性に依存します (詳細については、サービス エレメント 属性を参照してください)。
ページ: ディストリビューティッド(分散)トレーシング
ディストリビューティッド(分散)ト レーシング ページでは、 OpenTelemetryトレース データの詳細が提供されています。 ページの使用情報については、ディストリビューティッド(分散)トレーシングを参照してください。 データが OpenTelemetryNew Relicに取り込まれる方法の詳細についてはOpenTelemetryNew Relic 、 Relic の を参照してください。
ゴールデンシグナルと同様に、スパンのステータスがERROR
に設定されている場合 (たとえば、 otel.status_code = ERROR
)、スパンはエラーとして分類されます。 スパンはエラーの場合、エラーの詳細にスパンのステータスの説明(たとえば、 otel.status_description
)が表示されます。
OpenTelemetryスパン イベントは、追加のイベント コンテキスト情報を特定のスパンに添付します。 これらは例外情報をキャプチャするために最もよく使用されます。 利用可能な場合は、trace details [トレースの詳細]でスパンのイベントを表示できます。
ヒント
スパンの例外イベントが存在するだけでは、スパン自体がエラーであるとはみなされません。 スパン ステータスがERROR
に設定されているスパンのみがエラーとして分類されます。
ページ: サービスマップ
サービス マップ ページでは、アーキテクチャ全体を視覚的に表示します。 詳細についてはサービス マップを参照してください。
ページ: 履歴書
トランザクション ページには、サービスのトランザクションに関する問題を特定し、分析するためのツールが提供されます。
メトリクスの場合、クエリはデータがhttp メトリクスまたはrpc メトリクスのセマンティック規則に準拠していると想定します。 http.route
属性とrpc.method
属性は、トランザクションによるリスト表示とフィルタリングに使用されます。
スパンの場合には、クエリは汎用的であり、最上位レベルのスパンのデータ モデルのみを利用します。 スパンは、golden シグナルで説明されているように、スイッチング完了とレスポンスタイムにカウントされます。 スパンの名フィールドは、トランザクションによるリスト表示とフィルタリングに使用されます。
ページ: データベース
データベース ページには、サービスのデータベース クライアント操作に関する問題を特定し、分析するためのツールが用意されています。
現在、利用できるセマンティック規則がないため、データベースのメトリックスベースのビューはありません。
スパンの場合には、クエリはデータがDB スパンのセマンティック規則に準拠していると想定します。 スパン名、 db.system
、 db.sql.table
、 db.operation
属性は、データベース操作の一覧表示とフィルタリングに使用されます。
ページ: 外部サービス
外部ページには、呼び出し元エンティティ (上流サービス) や呼び出し先エンティティ (下流サービス) などのサービスの外部呼び出しに関する問題を特定し、分析するためのツールが用意されています。
外部サービスページのメトリックスベースのビューはありません。
スパンの場合には、クエリは汎用的であり、最上位レベルのスパンのデータ モデルのみを利用します。 スパンは、サービスを終了する場合、外部サービスの完了と応答時間にカウントされ、ヒューリスティックWHERE span.kind = client OR span.kind = producer
を使用して計算されます。 データベース クライアント サービスは、 WHERE db.system is null
を使用して除外されます (データベース ページを参照)。 ゴールデンシグナルと同様に、スパンのステータスコードがERROR
(たとえば、 otel.status_code = ERROR
) の場合、そのスパンはエラーになります。 利用可能な場合、 http spanおよびrpc spanセマンティック規則のデータを使用して、外部サービス呼び出しを分類します。
ページ: JVM ランタイム
JVM ランタイム ページには、Java サービスの JVM の問題を特定し、分析するためのツールが提供されています。 このページは、 OpenTelemetry javaを使用するサービスに対してのみ表示されます。 個別のサービス インスタンスを区別するために、ページではservice.instance.id
リソース プロパティを設定する必要があります (詳細については、サービス インスタンス プロパティを参照してください)。
JVMランタイム ページには、ランタイムの問題とサービスの使用状況を関連付けるために、 JVMランタイム メトリックスの横にゴールデン シグナルが表示されます。 span-metriksトグルは、ゴールデン シグナルがspan データによって駆動されるか、metriks データによって駆動されるかを決定します。 JVMランタイム メトリックにはスパンベースのビューはありません。
メトリックスの場合、クエリはデータがJVMメトリックスのセマンティック規則に準拠していると想定します。 これらの規則は、OpenTelemetryOpenTelemetry Java OpenTelemetryエージェントに自動的に含まれる ランタイム インストゥルメンテーション ライブラリ に組み込まれていることに注意してください。
ページ: Go ランタイム
Go ランタイム ページには、Go サービスのランタイムの問題を特定し、分析するためのツールが提供されています。 このページは、 OpenTelemetry Goを使用するサービスに対してのみ表示されます。 個別のサービス インスタンスを区別するために、ページではservice.instance.id
リソース プロパティを設定する必要があります (詳細については、サービス インスタンス プロパティを参照してください)。
Go ランタイム ページには、ランタイムの問題とサービスの使用状況を関連付けるために、Go ランタイム メトリクスの横にゴールデン シグナルが表示されます。 span-metriksトグルは、ゴールデン シグナルがspan データによって駆動されるか、metriks データによって駆動されるかを決定します。 Go ランタイムメトリックスにはスパンベースのビューはありません。
メトリクスの場合、クエリはOpenTelemetry Go ランタイム インストゥルメンテーション ライブラリによってデータが生成されることを前提としています。 なお、現在、Go ランタイム メトリックスにはセマンティック規則はありません。
ページ: ログ
ログ ページには、問題を特定し、サービスのログを分析するためのツールが提供されています。 詳細については、ログ UI を参照してください。
ページ: Errors Inbox
Errors Inboxページには、サービスのエラーを検出してトリアージするためのツールが提供されます。 詳細については、エラー受信トレイを参照してください。
Errors Inboxページはトレース データによって駆動されます。 ゴールデンシグナルと同様に、スパンのステータスがERROR
に設定されている場合 (たとえば、 otel.status_code = ERROR
)、スパンはエラーとして分類されます。
エラー スパンは、UUID、16 進数値、電子メール アドレスなどの識別値を正規化して計算されたエラー フィンガープリントごとにグループ化されます。 それぞれの個別のエラー スパンは、エラー グループ内の個別のインスタンスです。 エラー グループ メッセージは次のように決定されます。
- スパンステータスの説明(例:
otel.status_description
) rpc.grpc.status_code
rpc spanセマンティック規約よりhttp.status_code
http spanセマンティック規約よりhttp.response.status_code
http spanセマンティック規約よりundefined
上記のいずれも存在しない場合
ページ: メトリクスエクスプローラー
メトリクス エクスプローラーは、サービスのメトリクスを一般的な方法で探索するためのツールを提供します。 詳細については、 「データの探索」を参照してください。
黄金の信号
最長、レスポンスタイム、エラー率のゴールデン シグナルは、 OpenTelemetry APM UI全体の複数の場所に表示されます。 使用する場合、次のように計算されます。
メトリクスの場合、クエリはデータがhttp メトリクスまたはrpc メトリクスのセマンティック規則に準拠していると想定します。
スパンの場合には、クエリは汎用的であり、最上位レベルのスパンのデータ モデルのみを利用します。 スパンは、サービスへのルート エントリ スパンの場合には、長さと応答時間にカウントされ、ヒューリスティックWHERE span.kind = server OR span.kind = consumer
を使用して計算されます。 スパンのステータス コードがERROR
(たとえば、 otel.status_code = ERROR
) の場合、そのスパンはエラーになります。
フィルターでデータを絞り込む
いくつかのページには、Narrow data to... [データを絞り込む]などのオプションを含むフィルター バーが含まれています。 これにより、ページ上のクエリを基準に合わせてフィルタリングできます。 たとえば、 service.version='1.2.3-canary'
をフィルタリングすることで、特定のカナリアデプロイメントに絞り込むことができます。 ページ間を移動するときにフィルターは保持されます。
メトリクスまたはスパンの切り替え
さまざまなページにメトリックまたはスパンの切り替えが含まれています。 これにより、分析要件とデータの可用性に基づいて、クエリがスパン データによって駆動されるか、メトリックス データによって駆動されるかを切り替えることができます。
メトリックはサンプリングの対象ではないため、特に中間率などのレートを計算する場合はより正確です。 ただし、メトリックはカーディナリティ制約の対象であり、分析に重要な特定の属性が欠落している可能性があります。 対照的に、スパンはサンプリングされるため、精度の問題が生じますが、カーディナリティ制約の対象ではないため、より豊富な属性を持ちます。
歴史的に、 OpenTelemetry言語API /SDK と インストゥルメンテーション は、トレース インストゥルメンテーションを優先してきました。 しかし、プロジェクトは長い道のりを歩んでおり、メトリクスはほぼすべての言語で利用できるようになりました。 詳細については、関連する言語およびインストゥルメンテーションのドキュメントを確認してください。