• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

OpenTelemetryのデータをNew Relicで見ることができます。

OpenTelemetry のデータを New Relic にインポートした後は、さまざまなツールを使って分析することができます。これらのUIオプションを見てみましょう。

エクスプローラー。全体像と詳細を把握する

New Relic Explorer タブは、サービスに関する情報収集を始めるのに適した場所です。このタブでは、サービスをフィルタリングし、データをフィルタリングすることで、さまざまなデータを表示することができます。

サービス(実体)を探す

エクスプローラーを始めるためには、自分のサービスを見つける必要があります。

  1. one.newrelic.comに移動します。

  2. 左のサイドバーで「 サービス」-「OpenTelemetry」 をクリックします。

    Screen capture showing how to filter for OpenTelemetry services.
  3. 中央のペインでは、詳細を知りたいサービスをクリックするか、上部のフィルターバーに名前を入力してサービスを探します。

フィルターでデータを絞る

エンティティを取得したら、サービスからのデータをフィルタリングすることができます。

フィルタバーを使用してデータを絞り込む... 、サービス用に記録されたテレメトリの特定のファセットを強調表示できます。たとえば、カナリアインスタンスにデプロイしたサービスの特定のバージョンのエラー率を確認したい場合は、 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エリア

属性

レスポンスタイム

span.kind = server または consumer

スループット

span.kind = server または consumer

エラー率

  • span.kind = server または consumer
  • otel.status_code = ERROR

サービスインスタンスペイン

service.instance.id (通常、OTelリソースAPIを介して設定されます)

ディストリビューティッド(分散)トレーシング

Distributed tracing では、トレースの位置を確認したり、スパンの詳細を調べたりすることができます。トレースデータをNew RelicのUIに表示するためには、 OpenTelemetry trace semantic conventions に準拠する必要があります。また、 ベストプラクティス ガイドの「トレース」のセクションでは、トレースやスパンをNew Relicに表示させるためのヒントが紹介されています。

以下の属性は、通常、スパンに明示的に追加されることはありません。むしろ、スパンを作成するときや、OpenTelemetry SDKを使用してスパンに対して操作(エラーの記録など)を行うときに設定するのが一般的です。

属性

説明

name

スパンの名前は通常、 スパンを開始するときに設定されます 。名前は一般的に何でも構いませんが、OpenTelemetryの仕様では、 Database spansHTTP spans のような特定のタイプのスパンについてのガイダンスを提供しています。

span.kind

スパンの種類は、通常、スパンを開始するときに設定されます。 New Relicはspan.kindを使用して、スパンが特定のサービスへのエントリポイントであることを推測します。 span.kind = serverまたはconsumerの場合、エントリポイントと見なされます。 span.kind = clientまたはproducerの場合、外部サービスまたはデータベースシステムへの呼び出しと見なされます。

otel.status_code

トレースとその関連スパンの検索

ここでは、検索対象を絞るための方法をご紹介します。

  1. 欲しいトレースを見つけるには、フィルターバーで以下のようなクエリを実行します。

    • service.name = YOUR_SERVICE_NAME
    • trace.id = YOUR_TRACE_ID
  2. 興味深いトレースを見つけたら、それをクリックすると、トレースのスパンを示すウォーターフォール図が表示されます。

  3. トレース内の特定のスパンをクリックすると、右側のパネルにスパンの詳細が表示されます。

ヒント

トレースをフィルタリングするその他の方法については、 distributed tracing UI page を参照してください。

エラーのあるスパンの表示

トレースウォーターフォールビューでスパンをクリックすると、右パネルの エラーの詳細 にスパンのエラーが表示されます。

Screenshot showing the right pane with Error details section

エラーの詳細には、 otel.status_code = ERRORを含むスパンが入力され、 otel.status_descriptionの内容が表示されます。

エラーのあるスパンの検索を絞り込むには、分散トレースフィルターバーに直接otel.status_code = ERRORを入力します。

スパンのイベントを見る

OpenTelemetry 仕様 で説明されているようにスパンイベントを送信すると、New Relic UI でそのイベントを見ることができます。スパンイベントには、一般的に 2 つのタイプがあります。

  • 例外
  • 非例外(例えば、ログなど)

スパンイベントがある場合は、右ペインにそのリンクが表示されます。

  1. ウォーターフォールビューでスパンをクリックします。

  2. 右ペインで、 View span events をクリックするか、 Error details を展開して、エラーの下部にあるリンクをクリックします。

    Screenshot showing the right pane showing the two links for span events
  3. スパンイベントで、例外のみを表示したい場合は、トグルをスライドさせます Only show exceptions.

Screenshot showing span events and how you can filter just for exceptions

ヒント

アプリ/サービスで処理されるOpenTelemetryの例外は、スパンのエラー・ステータスとは別に表示され、必ずしもスパンのエラー・ステータスとは関連しません。

データベース

データベース ページには、アプリケーションのデータベースとキャッシュのデータが表示されます。このページでは、個々のデータベーストランザクションがソート可能なテーブルとして表示され、オペレーション、スループット、およびレスポンスタイムがチャートで表示されます。

このセクションに表示されるデータは、以下の条件を満たしている必要があります。

UIエリア

属性

トップ・データベース・コール

  • span.kind = client または producer
  • db.system
  • スパン名によるファセット

上位のデータベース(問い合わせ時間順)

  • span.kind = client または producer
  • db.system
  • ファセット db.system

上位データベース(スループット順)

  • span.kind = client または producer
  • db.system
  • ファセット db.system

エラー受信ボックスでサービスのエラーを表示する

エラー受信ボックスを含むエラーを検出、トリアージ、およびアクションを実行します。

これで、OpenTelemetryトレースを備えたサービスのエラー受信ボックス内のエラーグループを優先順位付けできます。エラーの原因を特定するために必要なスタックトレース、スパンイベント、スパン属性データなどの詳細をすぐに表示できます。

どうすれば始められますか?

エラー受信ボックスには、特定のエンティティを介してスコープレベルでアクセスするか、「エラー受信ボックス」というラベルの付いた上部のナビゲーションリンクを介してグローバルレベルでアクセスできます。グローバルエクスペリエンスでは、ワークロードを設定する必要があります。

Scoped errors inbox through an OpenTelemetry entity

OpenTelemetryエンティティを介したスコープエラーの受信トレイ。

一意の指紋はどのように作成されますか?

スパンエラーイベントが取り込まれると、フィンガープリントを出力する一連の管理されたルールを介してイベントが実行されます。すべての一意のフィンガープリントには、1つのエラーグループが関連付けられています。イベントは、UUID、16進値、電子メールアドレスなどの識別値を無視することによって正規化されます。

otel.status_code = ERRORおよびスパンの種類がserverまたはconsumerのスパンは、個別のエラーインスタンスとして扱われます。エラーグループは、一意のフィンガープリントを共有する一意のエラーインスタンスのセットです。

エラーグループメッセージの値は、次の順序で決定されます。

  • otel.status_description
  • rpc.grpc.status_code
  • http.status_code
  • undefined 上記の3つすべてが存在しない場合

トラブルシューティング:受信トレイのノイズが多すぎる場合は、次のヒントを確認してください。一方、エラー受信ボックスにエラーデータが表示されない場合は、開始するための要件を確認してください。

エラー

Errorsページでは、エラーの総数や、エラー数やエラー率を示すグラフを見ることができます。

このセクションに表示されるデータは、以下の条件を満たしている必要があります。

  • span.kind = server または consumer
  • otel.status_code = ERROR
  • スパン名によるファセット

外部サービス

外部サービス機能は、Webサービス、クラウド上のリソース、その他のネットワークエンティティなど、プロセス外のサービスへの呼び出しを捕捉します。

このセクションに表示されるデータは、以下の条件を満たしている必要があります。

  • span.kind = client または producer
  • db.system 存在しません

詳しくは、 外部サービス をご覧ください。

JVM

OpenTelemetryを備えたサービスのJVMページでは、どのサービスインスタンスが異常または異常なパフォーマンスパターンを持っているかを特定できます。主要なメトリック(応答時間、スループット、エラー率、ガベージコレクション時間、メモリ使用量)の要約に基づいて、比較する複数のサービスインスタンスを選択できます。次に、時系列チャートを使用してOpenTelemetryインストルメンテーションによって収集されたすべてのインスタンスのJVMメトリックを比較し、問題を特定できます。

典型的なワークフローをご紹介します。

  1. JVMs をクリックします。

  2. 要約されたヘルスメトリクスのテーブルを使用して、興味深いJVMを見つけます。

    • フィルターバーを使って、検索結果を絞り込むことができます。
    • ソートして外れ値を探す
  3. それらの興味深いJVMを選択します。

  4. Compare をクリックすると、JVMでファセットされたヘルスメトリクスとランタイムメトリクスが表示されます。

JVMの使用に関する以下の追加トピックをご覧ください。

ログ

Logs ページには、アプリケーションからのログが表示されます。New Relic でログデータをアプリケーションに関連付ける方法については、 OpenTelemetry and logging documentation をご覧ください。

このセクションに表示されるデータは、以下の条件を満たしている必要があります。

  • service.name
  • トレースデータと相関させるには、ログにtrace.id }属性とspan.id属性が含まれている必要があります。

メトリクスエクスプローラー

選択されたOpenTelemetry言語では、このセクションでメトリクスに関する情報を見ることができます。また、OpenTelemetryでPrometheusエクスポーターを使用している場合は、ここでメトリックデータを見ることができます。

Screen shot showing the metric explorer

トランザクション

Transactions を使用して、アプリケーションの応答時間の急上昇の原因となっている可能性のある低速またはエラーのトランザクションを特定します。トランザクションの一覧を表示するには Transaction Summary ページから、トランザクションテーブルを選択します。

New Relic の概念である トランザクション は、ソフトウェアアプリケーションにおける 1 つの論理的な作業単位をカプセル化したもので、一般的には単一のプロセスによって実行される作業を指します。

OpenTelemetryでは、トレースデータをNewRelicのトランザクションの概念にマッピングするためにSpanKindに依存しています。 serverまたはconsumerSpanKindは、プロセスのエントリポイントを識別するために使用されます。つまり、これらは、リモートプロセスのルートスパンまたは子スパンのいずれかであるスパンです。

このセクションに表示されるデータは、以下の条件を満たしている必要があります。

UIエリア

説明

トップトランザクション

  • span.kind = server または consumer
  • スパン名によるファセット

スループット

  • span.kind = server または consumer
  • スパン名によるファセット

データエクスプローラとクエリビルダ

データエクスプローラー を使ってメトリクスやトレースを調べたり、クエリビルダーで NRQL を使って独自のクエリを書いたりすることができます。New Relic に取り込んだデータを照会する方法については、 データの照会 および NRQL の紹介 を参照してください。

Copyright © 2022 New Relic Inc.