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