問題
Trace API を使用してデータを報告したが、New Relic にデータが表示されない、またはデータについて質問がある。
解決
ここでは、Trace APIで報告されたデータのトラブルシューティングに関するアイデアをご紹介します。
スパン データが報告されたことを確認するには、アップロードしたスパンに対してNRQL クエリ ビルダー で クエリを実行します。トレース データをレポートするために使用したのと同じ New Relic アカウント (同じ ) を使用する必要があります。 クエリの例:
FROM Span SELECT * WHERE trace.id = '123456'呼び出しで HTTP レスポンスコードが生成された場合、 を意味する レスポンスコードを調べてください。
レート制限の問題が発生した場合、
NrIntegrationError
が生成されます。そのイベントの NRQL クエリを実行して、トレース データに問題が発生したかどうかを確認できます。NrIntegrationError
イベントを相関させたい場合は、各 Trace API リクエストによって提供されるrequestId
を使用できます。スパンにタイムスタンプがある場合は、以下のガイドラインを満たすようにしてください。
スパンのタイムスタンプは過去 60 分以内に発生したものである必要があります。
newrelic
-format タイムスタンプはmilliseconds
である必要があります。 currentmillis.comで現在の時刻をミリ秒単位で取得できます。
zipkin
-format タイムスタンプはmicroseconds
である必要があります。
タイムスタンプはUTCでなければなりません。
エンドポイントへの呼び出しはべき等ではありません。つまり、同じ
trace.id
で複数のトレースを送信すると、トレースの親子データがあいまいになるため、UI でフラグメント化されたトレースが発生します。ペイロードが有効であることを再確認してください。
newrelic
形式のトレースの場合、問題の 1 つは、キーと値のペアがattributes
ブロックに配置されていないことです。トレースにルート スパンがあることを確認します (1 つのスパンに null
parent.id
)。クエリの例:FROM Span SELECT * WHERE trace.id = '123456' AND parent.id IS NULL
Trace APIのデータ送信の検証方法については、 Validation を参照してください。