この記事は New Relic Advent Calendar 2022 17日目のエントリーです。
概要
NewRelicのTransactionでアプリケーションのパフォーマンスを確認したい時に、
全体でなくある属性ごと(例えばテナント)ごとに確認したいという状況がありました。
そのために「カスタム属性」とダッシュボードの「Facet Linking」を使ってみたので紹介させていただきます。
手順
1. 任意のグループを指定するためのパラメータをアプリケーション側から送信
例) アプリケーション側(Ruby)でsubdomain
というカスタム属性をから送信する
::NewRelic::Agent.add_custom_attributes(subdomain: subdomain)
2. カスタム属性で「絞り込む」ためのダッシュボードの作成
「Dashboards」 からwidgetを作成し、Save時に「Facet Linking」を有効にします。
「current dashboard」もしくは「related dashboard」は絞り込みたいダッシュボードの範囲に合わせ設定します。
例). 以下はNRQLでSELECT sum(databaseDuration) from Transaction FACET subbomain
と、データベース処理の合計時間が長いsubdomain
を降順(デフォルト)に表示するWidgetです。
3. カスタム属性で「絞り込まれる」ダッシュボードを作成
「Dashboards」 から任意のwidgetを作成します。このWidgetは「Facet Linking」の設定は不要です。
例). 以下はNRQLでSELECT max(duration) from Transaction FACET name
と、最大実行時間が長い処理を降順(デフォルト)に表示するWidgetです。
これでカスタム属性で「絞り込む」ためのダッシュボードと、「絞り込まれる」ダッシュボードが作成されました。
ダッシュボードから絞り込みを行う
「Facet Linking」を有効にしたWidgetでsubdomain
の値にフォーカスすると「Filter this dashboard」が表示されるのでクリックします。
すると、3で作成したカスタム属性で「絞り込まれる」ダッシュボードがsubdomain
で絞り込みをされた結果になりました。
纏め
任意のカスタム属性の値でダッシボュボードを絞り込む方法を紹介しました。
他にも、カスタム属性に「アカウント」を指定したり用途は色々とありそうで便利ですね。
また、最近リリースされたこの方法の他にも「テンプレート変数」を使って「ダッシュボードを動的にフィルタリングする」という方法も絞り込みが便利になりそうですね。
https://newrelic.com/jp/blog/nerdlog/new-relic-update-202211
https://docs.newrelic.com/jp/docs/query-your-data/explore-query-data/dashboards/dashboard-template-variables/