LoginSignup
6
4

NRQLで手軽にBase64エンコード・デコードしてみよう

Last updated at Posted at 2024-03-26

ログの中に含まれている文字列を手軽に暗号化して表示できたら・・・
通信の中に含まれたBase64でエンコードされた文字列を手軽にデコードして可視化できたら・・・

そんなことが簡単にできるNRQL関数が新しく追加されました!
これであなたもBase64マスターです!

このアップデートの詳細はこちら。
New Relic アップデート(2024年1月)
New Relic アップデート

使い方

エンコードする時はencode()関数、デコードする時はdecode()関数を使用することで、文字列とBLOBに対してBase-64変換を実行できるようになります。
入力値(最初の引数)は、エンコーディング(2番目の引数)で指定されたBase-64標準を使用してデコードされます。

次の文字列値は、サポートされているエンコードパラメーターです。

「base64」:RFC4648 Base-64標準を使用
「base64mime」:RFC2045 Base-64 標準(MIME)を使用
「base64url」:URLおよびファイル名に安全なアルファベットを用いたRFC4648 Base-64標準を使用

<注意点>
・BLOB は WHERE 句または FACET 句では許可されないため、blob 型を使用した decode() は WHERE 句またはFACETではサポートされません。
encode()関数はBLOBではサポートされていません。
※長いログのmessage値は最初の4,094文字はNRDBに保存されますが、それ以降の128,000バイトはBLOBに保存されます。
ここで指しているBLOBはこの長いログが保存されたフィールドを指しています。
詳しくはこちらのドキュメントをご参照ください

使ってみよう

では早速使ってみたいと思います!
まず手元の環境でSpanに含まれるentity.guidをdecodeしてみます

FROM Span SELECT entity.guid, decode(entity.guid, 'base64') 
WHERE entity.guid IS NOT NULL

実はentity.guidってbase64でencodeされて作られてることがわかりますね
encodedecode01.png

今度はBrowserのPageViewからSessionをencodeしてみます

FROM PageView SELECT session, encode(session, 'base64')

このようにbase64変換前後を確認することが可能です
encodedecode02.png

BLOBに保存されたログをdecodeして表示してみます

FROM Log
WITH blob(`newrelic.ext.message`) as encodedBlob,
decode(encodedBlob, 'base64') as decodedBlob
SELECT encodedBlob, decodedBlob
WHERE newrelic.ext.message IS NOT NULL
LIMIT 10

BLOBに保存されたnewrelic.ext.属性はbase64で保存されているので、検索した時にそのままdecodeして表示することが可能です
encodedecode03.png

ちなみにmessageとnewrelic.ext.messageを並べて表示すると、こんな感じになります。
encodedecode04.png

まとめ

実はNew Relicに保存されているデータがbase64で保存されているものがありますが、decode()関数を活用することで簡単にデコードすることができるようになります。
また手軽にencodeできるので、ダッシュボードで可視化するときに見せたくない文字列を手軽にエンコードできるようになります。
New Relicに取り込まれた値を活用する手段の一つとして、是非この機能をご活用ください!!

このアップデートの詳細はこちら。New Relic アップデート(2024年1月)

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

New Relic株式会社のQiita Organizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4