OpenTelemetry のデータを New Relic にインポートした後は、さまざまなツールを使って分析することができます。これらのUIオプションを見てみましょう。
エクスプローラー。全体像と詳細を把握する
New Relic Explorer タブは、サービスに関する情報収集を始めるのに適した場所です。このタブでは、サービスをフィルタリングし、データをフィルタリングすることで、さまざまなデータを表示することができます。
サービス(実体)を探す
エクスプローラーを始めるためには、自分のサービスを見つける必要があります。
one.newrelic.comに移動します。
左のサイドバーで「 サービス」-「OpenTelemetry」 をクリックします。
中央のペインでは、詳細を知りたいサービスをクリックするか、上部のフィルターバーに名前を入力してサービスを探します。
フィルターでデータを絞る
エンティティを取得したら、サービスからのデータをフィルタリングすることができます。
フィルタバーを使用してデータを絞り込む... 、サービス用に記録されたテレメトリの特定のファセットを強調表示できます。たとえば、カナリアインスタンスにデプロイしたサービスの特定のバージョンのエラー率を確認したい場合は、 service.version='1.2.3'
のフィルターを追加します。
サービスのデータのさまざまなビュー間を移動するときに、フィルターは保持されます。たとえば、 service.version='1.2.3'
のフィルタはトランザクションビューに引き継がれるため、サービスのバージョン1.2.3を実行しているエンドポイント(トランザクション)へのリクエストのテレメトリが表示され、他のバージョンは表示されません。
フィルターは、 Summary, Transactions, Databases, Externals, Errors, JVMs のビュー間を移動する際にも保持されます。
フィルターは、 Distributed tracing ビューに移動しても保持されますが、制限があります。現在、 Distributed tracing に移動する際にサポートされているのは、equals 演算子 ("=") を使用するフィルタ条件のみです。 Distributed tracing ページからナビゲートバックすると、前のビューで選択したフィルタが戻ってきます。
データをフィルタリングすると、UIには左のナビゲーションペインに様々なビューが用意されています。ビューの詳細については、以下の説明を参照してください。
概要ページ
Explorer タブでサービスをクリックすると、 Summary ページが表示され、エンティティに関するさまざまなゴールデンシグナルが一覧表示されます。ゴールデンシグナルとは、レスポンスタイム、スループット、エラーレートなどの主要なモニタリング情報です。この情報を利用することで、より深く調査する必要があるかどうかを素早く判断することができます。
このセクションに表示されるデータは、以下の条件を満たしている必要があります。
UIエリア | 属性 |
---|---|
レスポンスタイム |
|
スループット |
|
エラー率 |
|
サービスインスタンスペイン |
|
ディストリビューティッド(分散)トレーシング
Distributed tracing では、トレースの位置を確認したり、スパンの詳細を調べたりすることができます。トレースデータをNew RelicのUIに表示するためには、 OpenTelemetry trace semantic conventions に準拠する必要があります。また、 ベストプラクティス ガイドの「トレース」のセクションでは、トレースやスパンをNew Relicに表示させるためのヒントが紹介されています。
以下の属性は、通常、スパンに明示的に追加されることはありません。むしろ、スパンを作成するときや、OpenTelemetry SDKを使用してスパンに対して操作(エラーの記録など)を行うときに設定するのが一般的です。
属性 | 説明 |
---|---|
name | スパンの名前は通常、 スパンを開始するときに設定されます 。名前は一般的に何でも構いませんが、OpenTelemetryの仕様では、 Database spans や HTTP spans のような特定のタイプのスパンについてのガイダンスを提供しています。 |
スパンの種類は、通常、スパンを開始するときに設定されます。 New Relicは | |
otel.status_code |
|
トレースとその関連スパンの検索
ここでは、検索対象を絞るための方法をご紹介します。
欲しいトレースを見つけるには、フィルターバーで以下のようなクエリを実行します。
service.name = YOUR_SERVICE_NAME
trace.id = YOUR_TRACE_ID
興味深いトレースを見つけたら、それをクリックすると、トレースのスパンを示すウォーターフォール図が表示されます。
トレース内の特定のスパンをクリックすると、右側のパネルにスパンの詳細が表示されます。
ヒント
トレースをフィルタリングするその他の方法については、 distributed tracing UI page を参照してください。
エラーのあるスパンの表示
トレースウォーターフォールビューでスパンをクリックすると、右パネルの エラーの詳細 にスパンのエラーが表示されます。
エラーの詳細には、 otel.status_code = ERROR
を含むスパンが入力され、 otel.status_description
の内容が表示されます。
エラーのあるスパンの検索を絞り込むには、分散トレースフィルターバーに直接otel.status_code = ERROR
を入力します。
スパンのイベントを見る
OpenTelemetry 仕様 で説明されているようにスパンイベントを送信すると、New Relic UI でそのイベントを見ることができます。スパンイベントには、一般的に 2 つのタイプがあります。
- 例外
- 非例外(例えば、ログなど)
スパンイベントがある場合は、右ペインにそのリンクが表示されます。
ウォーターフォールビューでスパンをクリックします。
右ペインで、 View span events をクリックするか、 Error details を展開して、エラーの下部にあるリンクをクリックします。
スパンイベントで、例外のみを表示したい場合は、トグルをスライドさせます Only show exceptions.
ヒント
アプリ/サービスで処理されるOpenTelemetryの例外は、スパンのエラー・ステータスとは別に表示され、必ずしもスパンのエラー・ステータスとは関連しません。
データベース
データベース ページには、アプリケーションのデータベースとキャッシュのデータが表示されます。このページでは、個々のデータベーストランザクションがソート可能なテーブルとして表示され、オペレーション、スループット、およびレスポンスタイムがチャートで表示されます。
このセクションに表示されるデータは、以下の条件を満たしている必要があります。
UIエリア | 属性 |
---|---|
トップ・データベース・コール |
|
上位のデータベース(問い合わせ時間順) |
|
上位データベース(スループット順) |
|
エラー
Errorsページでは、エラーの総数や、エラー数やエラー率を示すグラフを見ることができます。
このセクションに表示されるデータは、以下の条件を満たしている必要があります。
span.kind = server
またはconsumer
otel.status_code = ERROR
- スパン名によるファセット
外部サービス
外部サービス機能は、Webサービス、クラウド上のリソース、その他のネットワークエンティティなど、プロセス外のサービスへの呼び出しを捕捉します。
このセクションに表示されるデータは、以下の条件を満たしている必要があります。
span.kind = client
またはproducer
db.system
存在しません
詳しくは、 外部サービス をご覧ください。
JVM
OpenTelemetryを備えたサービスのJVMページでは、どのサービスインスタンスが異常または異常なパフォーマンスパターンを持っているかを特定できます。主要なメトリック(応答時間、スループット、エラー率、ガベージコレクション時間、メモリ使用量)の要約に基づいて、比較する複数のサービスインスタンスを選択できます。次に、時系列チャートを使用してOpenTelemetryインストルメンテーションによって収集されたすべてのインスタンスのJVMメトリックを比較し、問題を特定できます。
典型的なワークフローをご紹介します。
JVMs をクリックします。
要約されたヘルスメトリクスのテーブルを使用して、興味深いJVMを見つけます。
- フィルターバーを使って、検索結果を絞り込むことができます。
- ソートして外れ値を探す
それらの興味深いJVMを選択します。
Compare をクリックすると、JVMでファセットされたヘルスメトリクスとランタイムメトリクスが表示されます。
JVMの使用に関する以下の追加トピックをご覧ください。
ログ
Logs ページには、アプリケーションからのログが表示されます。New Relic でログデータをアプリケーションに関連付ける方法については、 OpenTelemetry and logging documentation をご覧ください。
このセクションに表示されるデータは、以下の条件を満たしている必要があります。
service.name
- トレースデータと相関させるには、ログに
trace.id
}属性とspan.id
属性が含まれている必要があります。
メトリクスエクスプローラー
選択されたOpenTelemetry言語では、このセクションでメトリクスに関する情報を見ることができます。また、OpenTelemetryでPrometheusエクスポーターを使用している場合は、ここでメトリックデータを見ることができます。
トランザクション
Transactions を使用して、アプリケーションの応答時間の急上昇の原因となっている可能性のある低速またはエラーのトランザクションを特定します。トランザクションの一覧を表示するには Transaction Summary ページから、トランザクションテーブルを選択します。
New Relic の概念である トランザクション は、ソフトウェアアプリケーションにおける 1 つの論理的な作業単位をカプセル化したもので、一般的には単一のプロセスによって実行される作業を指します。
OpenTelemetryでは、トレースデータをNewRelicのトランザクションの概念にマッピングするためにSpanKind
に依存しています。 server
またはconsumer
のSpanKind
は、プロセスのエントリポイントを識別するために使用されます。つまり、これらは、リモートプロセスのルートスパンまたは子スパンのいずれかであるスパンです。
このセクションに表示されるデータは、以下の条件を満たしている必要があります。
UIエリア | 説明 |
---|---|
トップトランザクション |
|
スループット |
|
データエクスプローラとクエリビルダ
データエクスプローラー を使ってメトリクスやトレースを調べたり、クエリビルダーで NRQL を使って独自のクエリを書いたりすることができます。New Relic に取り込んだデータを照会する方法については、 データの照会 および NRQL の紹介 を参照してください。