vague memory

うろ覚えを無くしていこうともがき苦しむ人の備忘録

New Relic の Drop Rule Explorer

New Relic に “Drop filter rule” という NRDB 登録前にデータを破棄する機能があります。

対象が Log であれば WebUI が提供されていますが、メトリックやイベントに対する filter rule を管理する WebUI は提供されていません。 そのため WebUIで行う場合は GraphQL API を作成・実行できる “NerdGraph API explorer を使用することになります。

Drop filter rule に焦点を当てた App ではないですし、JSONでの返却のため一覧をサクッと確認したいというような用途には向いていないと思います。



New Relic One Applications

New Relic には、 WebUI をカスタマイズできる機能があり、様々なアプリケーションが公開されています。

自作することも可能です。

上記サイトには Drop filter rule に関するアプリは公開されていないようでした。 そのため自作を考えましたが、需要はありそうということで探してみた所、Drop Rule Explorer を見つけました。

NR1 Drop Rule Explorer

New Relic Experimental で公開されています。 他にも色々置いてあります(名前の通り “実験的機能” なので、不具合がある可能性があります。)

NR1 CLI のインストール

Drop Rule Explorer をデプロイするには `New Relic One (nr1) CLI が必要になります。

公式ドキュメント、Quick start の記載に沿ってインストールします。

  • API キーの払い出し・選択時に利用規約への同意が必要です。
    • 実施しておかないと nr1 コマンドの実行に失敗します。
  • nodejs が導入されている必要があります。
    • nr1 は v16 でビルドされているようです。 今回の環境では v20.9.0 でしたが動作しました。
  • X86 のみの提供です。
    • ARM ではインストールできません。”No package nr1 available.” となります。
$ grep PRETTY_NAME /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
$ node -v
v20.9.0
$ nr1 version
@datanerd/nr1/2.83.5 linux-x64 node-v16.11.1

Credential 登録

  • API キーの選択と利用規約への同意が済んでいれば、 Quick start 上 “4. Save your credentials” の変数部分が置き換わり、そのまま実行できます。
nr1 profiles:add --name {account-slug} --api-key {api-key} --region {us|eu}

初回実行時に使用状況データの収集可否を聞かれるので、適宜回答します。 config:set でも設定可能です。

nr1 config:set --key=sendUsageData --value=DISALLOW

また、各種設定ファイルは ~/.newrelic/ に生成されます。

$ ls ~/.newrelic/
config.json  credentials.json  default-profile.json

profile 登録が行われると各種 nr1 コマンドの実行が可能になります。

$ nr1 profiles:add --name account-9999999 --api-key NRAK-XXXXX --region us
 ✔  Added profile account-9999999.
This is the first profile created, so it will be used by default from now on. Run nr1 profiles:default to choose a default profile.

$ nr1 profiles:list
Name                       Region  API key
-------------------------  ------  --------
account-9999999 (default)  us      <hidden>

$

Drop rule explorer のインストール

Git clone し、UUID払い出しと、New Relic への 公開 を行います。

$ git clone https://github.com/newrelic-experimental/nr1-drop-rule-explorer.git
$ cd nr1-drop-rule-explorer/
$ nr1 nerdpack:uuid -gf
$ nr1 nerdpack:publish

正常に publish が行われると、 New Relic 上で選択できるようになります。

Appを追加します。

Apps から利用できるようになります。

機能

  • すべての Drop filter rule の一覧表示
  • Drop filter rule の作成・削除

  • Nerd Graph API クエリ/ Terraform HCL 例の出力

削除 (おまけ)

# nerdpack id の確認
$ nr1 subscription:list | grep "Drop Rule Explorer"
0.1.2                xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  Drop Rule Explorer                               3 hours ago    9999999999

# 削除
$ nr1 subscription:unset -i xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Unsubscribed account 9999999 from the nerdpack xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

# subscription:unset の alias
#ALIASES
#  $ nr1 nerdpack:unsubscribe
#  $ nr1 subscription:delete
#  $ nr1 subscription:remove
#  $ nr1 subscription:rm

まとめ

Drop rule explorer を導入すると、 Drop filter rule の管理が WebUI 上で行なえます。

標準UIまたはAppとして提供されていても良さそうですが、現状は実験的機能に分類されています。 導入に一手間掛かるのでカタログに追加して欲しい所です。

他にも様々な Apps が公開されていますので、探してみるとニーズに合った機能が見つかるかもしれません。