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

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

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

問題を作成する

長いログ(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バイトを超えた文字はドロップされ、保存されません。

したがって、長い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 >ログ:ログ内の拡張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>
}

Logs UI は、Log Detail View を見る際に、元の値を自動的につなぎ合わせます。NRQL を直接使用してクエリを行う場合は、以下の方法で手動で情報をつなぎ合わせる必要があります。

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

ロングログのデータ保持

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

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

Copyright © 2022 New Relic Inc.