• /
  • EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

長いログ(blob)の中からデータを探す

膨大なログデータは、問題のトラブルシューティングに役立ちます。しかし、ログの属性に何千文字もの文字が含まれていたらどうでしょう?New Relic はこのようなデータをどれだけ保存できるのでしょうか?また、これらのデータの中から有益な情報を見つけるにはどうすればよいでしょうか?

blobの仕組み

NRDBに格納できる文字数(4,094文字)よりも長い文字列の値については、長い文字列を3つに分けて格納します。

ロングログセクション

説明

最初の4,094文字

最初の4,094文字は、同じ名前のLogイベントフィールドに格納されます。したがって、長いmessage値では、最初の4,094文字がmessageフィールドに格納されます。

次の128,000バイトのUTF-8

文字列の次の128,000UTF-8バイトは、名前の前にnewrelic.ext.が付いたblobフィールドに格納されます。したがって、長いmessage値では、最初の4,094文字を超える文字がnewrelic.ext.messageフィールドにblobとして格納されます。

実際に保存される文字数は、文字のUTF-8表現に依存します。UTF-8はUnicodeの文字を1〜4バイトで表現するので、最初の4,094文字を過ぎれば32,000〜128,000文字が格納されることになります。

残りのキャラクター

4,094文字+128,000バイトを超えた文字はドロップされ、保存されません。

クエリの結果

BLOB クエリの結果は 20 件に制限されています。blob()を使用する場合は、クエリが最大 20 件の結果を返すようにしてください。

したがって、長いmessageフィールドは次のように格納されます。

message: <first 4,094 characters as a string>
newrelic.ext.message: <next 128,000 bytes as a 'blob'>

ヒント

文字列属性の最初の4,094文字を検索できます。最初の4,094文字のアラートを作成することもできます。ただし、 blobストレージは検索できないため、最初の4,094文字を超えるテキストは検索またはアラートできません。

ブロブに関するデータの検索

Screenshot of Log blobs query in UI

one.newrelic.com > All capabilities > Logs: ログ内の拡張 BLOB データをクエリするには、属性の BLOB 構文にバックティックを含めるようにしてください。

New Relic の任意のログデータを照会するには、以下のクエリを実行します。

SELECT * FROM Log

BLOBデータを展開するには、 messageまたはその他の属性を使用して次のクエリを実行します。ブロブの属性は必ずバッククォートで囲んでください。例えば:

SELECT message, another-attribute, blob(`newrelic.ext.message`), blob(`newrelic.ext.another-attribute`) FROM Log

これにより、blob内のデータが拡張され、見ることができるようになります(検索はできません)。例えば、New Relicは次のように返します。

{
"message": <first 4,094 characters>
"newrelic.ext.message": <the next 128,000 bytes as Base64>
"another-attribute": <first 4,094 characters>
"newrelic.ext.another-attribute": <the next 128,000 bytes as Base64>
}

ログ UI は、ログ詳細ビューを表示すると、元の値を自動的につなぎ合わせます。NRQL を直接使用してクエリを実行する場合は、次の方法で情報を手動で結合する必要があります。

  • newrelic.ext.属性値のBase64をデコードする
  • 結果のUTF-8を文字列に変換する
  • その文字列を"main" 属性の最初の 4,094 文字に付加する。

ロングログのデータ保持

NRDBは、blobレコードを1か月間保持します。既存の長いログメッセージがLogExtendedRecordとして保存されている場合、そのデータはNRDBでも1か月間利用できます。

1か月が経過すると、新しいLogExtendedRecord属性は作成されなくなります。それらはすべてブロブとしてNRDBに保存されます。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.