カスタムダッシュボードの場合、 template variables使用してチャートや他のウィジェットを動的にフィルターできます。 テンプレート変数を使用すると、ダッシュボードがより便利になり、さまざまなユースケースで再利用できるダッシュボードをより簡単に作成できるようになります。変数を使用して、他の変数の値に条件を付けることもできます。詳細については、ネストされた変数を参照してください。
テンプレート変数を使用する理由
テンプレート変数は、ダッシュボードの作成者が選択した特定のメタデータ値に基づいてダッシュボード全体をフィルタリングする強力で動的な方法です。テンプレート変数を使用する利点は次のとおりです。
いくつかのテンプレート変数を含むダッシュボードの例を次に示します。これは、ダッシュボードの上部に表示されます。

に行く one.newrelic.com > All capabilities > Dashboards
テンプレート変数を使用すると、さまざまな変数とフィルターを設定して、必要なダッシュボード エクスペリエンスを作成できます。作成できるエクスペリエンスの例:
- アプリ名を選択するドロップダウン
- 特定の地域を選択するドロップダウン
- 特定の期間またはその他の数値を選択するためのドロップダウン
- フリー テキスト フィールドを使用して一致する文字列を検索するフィルター
さらに、クエリを変更せずに、変数を含めるかどうかを決定できるようになりました。 詳細については、 変数を含めるセクションを参照してください。
変数を含めるか除外するか
Include variableトグルを使用すると、目的の値を設定し、その値をダッシュボードに含めるか除外することができます。 詳細については、 テンプレート変数のセクションを参照してください。
たとえば、変数内の特定の値に固有ではない問題を調査している場合があります。 このような場合、すべての可能なオプションを選択した場合でも、変数の既存の値によってクエリ結果が制限される可能性があります。 これを解決するには、クエリから変数を除外します。 これにより、変数の条件が実質的に削除され、中立的なブール値 (true または false) に置き換えられ、クエリの有効性が保証され、包括的な結果が返されます。
例
countryCode変数に基づいて結果をフィルタリングするクエリを検討します。 フィルタリングせずにすべての国のデータを表示する場合は、変数を除外できます。
元のクエリ:
SELECT count(*) AS 'views'
WHERE countryCode IN ({{countryCode}}) AND appName = 'Test App' FACET countryCode
除外変数を使用したクエリ:
SELECT count(*) AS 'views'
WHERE true AND appName = 'Test App' FACET countryCode
この機能は、特に次の場合に便利です。
変数に、許可されている最大値 (インスタンスの場合、デフォルトでは一意の結果の最大数は 5000) を超える値が含まれているか、または値の数が非常に多くなっています。 デフォルトで変数を無効にすることを選択すると、パフォーマンスが大幅に向上します。
変数のデータ ソースは、クエリを実行するデータベースと異なります。 このような場合、「すべて選択」を使用してデータベースからすべての値を選択するだけでは不十分です。 変数を除外することで、データベースからすべての値を取得できます。
include 変数の制限:
要件と制限
テンプレート変数は、カスタムダッシュボード用のウィジェットを作成するコンテキストでのみ使用できます。 このため、クエリ関連の一部の機能は動作しません。たとえば、 Export dashboard as PDFオプションは変数を含むウィジェットをサポートしておらず、 Lens SQL クエリはテンプレート変数をサポートしていません。NRQL クエリで変数を使用する方法については、「NRQL 変数」を参照してください。
クエリの追加に関する重要な注意事項:
クエリの作成に関する制限については、「クエリの作成」を参照してください。
テンプレート変数を使用する
テンプレート変数の作成方法を順を追って説明し、その後、さまざまな種類のテンプレート変数の 例を いくつか示します。
テンプレート変数の作成は、2 つのステップで構成されます。
テンプレート変数を定義する
まず、テンプレート変数を定義します。これは、ウィジェットを作成するために NRQL クエリで使用する変数です。
変数を定義するには:
変数のない新しいダッシュボードから、編集をクリックしますボタンをクリックし、左上隅にある+ Add variableボタンをクリックします。 変数の追加が完了したら、 Done editingをクリックします。
ダッシュボードにウィジェットが含まれている場合は、 + Add variableボタンをクリックします。

Add variableワークフローを完了します。 以下に、各フィールドのルールとヒントをいくつか示します。
フィールド | 詳細 |
|---|
クエリで使用する名前 | 変数の名前。これは、 {{...}}で囲まれたクエリで使用するものです。たとえば、ここで名前としてcountryを使用する場合、クエリを記述するときに{{country}}で変数を呼び出します。 変数名は文字で始める必要があり、文字、数字、アンダースコアを含めることができます。 |
表示名 | オプション。このように変数がダッシュボードの上に表示されるため、ダッシュボードのユーザーは変数が何を表しているかがわかります。これを空白のままにすると、メインの名前の値が使用されます。 |
タイプ | 次の 3 つのオプションがあります。 Query: ドロップダウン メニューで使用されるオプションの動的なリストを返すクエリを作成できます。 たとえば、次のクエリはcountry値の動的なリストを返します。 SELECT uniques(countryCode) FROM PageAction SINCE 2 days ago
クエリを作成する際の規則とヒントについては、「クエリ型変数」を参照してください。 List: ドロップダウン メニューのオプションを設定するために使用されるカンマ区切りの値のリスト。 たとえば、次のようなリストを使用して、 country値のリストを手動で定義できます。 ES, US, CA. Text field: ドロップダウンから値を選択する代わりに、ダッシュボード ユーザーは入力したテキストをフィルタリングできます。
|
アカウント | queryタイプにのみ存在します。複数のアカウントを持つ組織の場合、これは照会されるアカウントを設定します。
|
クエリ | uniques(attribute)を使用してここにクエリを記述します。
|
タイムピッカーを無視する | オプション。 クエリ タイプの場合にのみ存在します。 このオプションをオフにすると、ダッシュボードで選択したタイムピッカーの値を使用してクエリが実行されます。 そうすることで、タイムピッカーの値が変化すると、変数のドロップダウンの結果が新しく選択された時間範囲に動的に応答します。 |
複数選択 | オプション。このオプションを使用すると、ドロップダウンで単一の選択ではなく、同時に複数の選択を許可できます。 |
適用ボタンを表示 | オプション。multi-value有効にした場合にのみ表示されます。このトグルを有効にすると、変数のドロップダウン フィルターの下部にApplyまたはCancelボタンが表示されます。このボタンがドロップダウン フィルターに表示されている間にクリックすると、値に変更が適用されます。 |
デフォルト値 | オプション。 これらはダッシュボードがフィルタリングするデフォルト値です。 たとえば、上記のcountryクエリを使用した場合、デフォルト値としてESを入力すると、ダッシュボードは自動的にその値にフィルタリングされます。 すべての可能性を選択することもできます。 WHERE句で複数の値を使用するには、 =の代わりにINを使用する必要があります。
Include variable [変数を含める] トグルは、ダッシュボード内のその変数のデフォルトの設定 (含めるか除外する) を決定します。 この設定は、ダッシュボードを表示しているユーザーが、変数ドロップダウン メニューのInclude variable [変数を含める]トグルを使用して変更できます。 ユーザーが選択した設定はセッション期間中有効です。 重要トグルが変数を含めるように設定されている場合にのみデフォルト値を構成できることに注意してください。 デフォルト値を選択したら、トグルを切り替えることで、変数がデフォルトで含まれないようにすることができます。 ユーザーが変数ドロップダウン メニューから変数を含めるように切り替えると、デフォルト値が事前に選択されます。 |
出力フォーマット | これにより、変数によって生成されたデータがクエリ内でどのように処理されるかを変更できます。 ここで選択したオプションは、後でウィジェットに追加するクエリに関連しています。 defaultオプションは、ほとんどのクエリで使用される一般的なオプションであるため、文字列になります。 defaultオプションを次のいずれかに変更できます。 - String: 数値以外のテキスト値に使用します。
- Number:数値の場合に使用します。
- Identifier: イベント名やファセット名など、クエリの一部を置換する場合にこれを使用します。
|
country 値のテンプレート変数がどのようになるかを示す次の例を参照してください。

テンプレート変数を定義したら、作成したテンプレート変数を使用するウィジェットを追加できます。
テンプレート変数を使用するウィジェットを作成する
テンプレート変数を構成したら、クエリで定義した変数を使用するウィジェットがダッシュボードに必要になります。
ウィジェットを作成するには:
ダッシュボードで、右上隅にある+ Add widgetボタンをクリックします。
2 つのオプションがあります。
Add a chartオプションを選択します。
クエリを追加して、 Runをクリックします。
ステップ 1 で説明した例に従います。
WHERE countryCode IN ({{countryCode}})

これらは、テンプレート変数を値として受け入れる NRQL 句であることに注意してください: SELECT 、 FROM 、 FACET 、 ORDER BY 、およびWHERE 。
代わりに、次の NRQL 句のリストは、テンプレート変数を引数として受け入れません: AS 、 COMPARE WITH 、 LIMIT 、 OFFSET WITH SINCE 、SLIDE BY、 、 TIMESERIES 、 UNTIL ...。
クリック Add to dashboard
テンプレート変数の定義とその変数を参照するウィジェットの追加が完了したら、テンプレート変数バーからさまざまなオプションを選択し、選択に基づいてウィジェットが変化するかどうかを確認することで、期待どおりに機能していることを確認できます。
右側に結果ウィジェットの例を示します。左側にはcountryドロップダウンがあります。

クエリ型テンプレート変数の書き方のルール
テンプレート変数の定義に関するセクションで説明したように、変数の種類にはクエリ、リスト、テキスト フィールドの 3 つがあります。 クエリ タイプの変数は、ダッシュボードの上部にあるテンプレート変数バーのドロップダウンに値を入力するために使用される値のリストを返す実用的なクエリを作成する必要があるため、作成が最も複雑です。
重要
これは、テンプレート変数を利用するクエリの記述とは異なるトピックであることに注意してください。
値のリストを返す限り、ほぼすべての NRQL クエリを使用できます。 そのためには、 uniques関数またはkeyset関数のいずれかを使用できます。
uniquesの場合:
FROM PageAction SELECT uniques(countryCode)
FROM PageAction SELECT uniques(countryCode, 10000)
keysetの場合:
FROM PageAction SELECT keyset() SINCE 1 day ago
変数内に変数が存在することはできないため、ネストされた変数はサポートされていないことに注意してください。
いくつかの例
テンプレート変数の実装のいくつかの異なるタイプを次に示します。
複数値オプションを有効にすると、ユーザーはドロップダウンから 1 つの値ではなく複数の値を選択できるようになります。これは、複数の基準で同時にデータをフィルタリングする場合に便利です。
クエリおよびリスト変数タイプでは、複数の値を使用できます。テキスト フィールド変数は複数値オプションをサポートしていません。
複数の値を有効にするには:
クエリまたはリスト テンプレート変数を作成するときは、 Multi-valueオプションを選択します。
ウィジェット クエリでは、複数の選択された値を処理するには、 =ではなくIN演算子を使用します。
/ NRQL/ENUM 型の変数を作成するときに、表示オプション セクションから複数値オプションを有効にできます。/
変数に{{MultiValue}}という名前を付け、このクエリを使用してその値を入力する例を次に示します。
SELECT uniques(eventId) FROM AjaxRequest
/ <img width="30%;" title="複数値テンプレート変数の例" alt="複数値テンプレート変数の例" src="/images/dashboards_screenshot-crop_add-multivalue.webp"/> /
次に、次のクエリでウィジェットを作成します。
SELECT count(*) FROM AjaxRequest WHERE eventId IN ({{MultiValue}})
/ <img width="80%;" title="ウィジェットの作成" alt="ウィジェットの作成" src="/images/dashboards_screenshot-full_multivalue-add-ウィジェット.webp" /> /
一度に定義できるテンプレート変数は 1 つだけですが、同じウィジェット内で複数の変数を参照できます。
この例では、次の 2 つの変数を設定する必要があります。
countryCode 変数: このドキュメントで前述したクエリを使用します。
SELECT uniques(countryCode) FROM PageAction SINCE 2 days ago
city 同様のクエリを持つ変数:
SELECT uniques(city) FROM PageView SINCE 1 week ago
上記のテンプレート変数を単一の値で使用してウィジェットを作成する例を次に示します。
SELECT countryCode, city FROM PageAction
WHERE countryCode = {{countryCode}} AND city = {{city}}
/ <img title="複数の変数を使用したウィジェットの作成" alt="複数の変数を使用したウィジェットの作成" src="/images/dashboards_screenshot-crop_add-ウィジェット-multiple-variable.webp" /> /
変数が複数の値をサポートする場合( city変数の場合はChicago 、 New York 、 Parisなど)、 IN使用する必要があります。
SELECT countryCode, city FROM PageAction
WHERE countryCode IN ({{countryCode}}) AND city IN ({{city}})
変数とregexを使用して、フィルターの一部が修正されていることが確実であれば、フィルターを作成できます。
LIKEを使用する場合は、この部分一致を使用する必要があります。
リリース バージョンでフィルター処理するとします。クエリはrelease-1234のようなものを返します。
aparseを使用して変数を作成し、バージョン番号を解析できます。
SELECT uniques(aparse(platformVersion, 'release-*')) FROM PageView
/ <img width="40%;" title="リリースバージョン変数の作成" alt="リリースバージョン変数の作成" src="/images/dashboards_screenshot-crop_add-var-release-version.webp"/> /
次に、次のクエリでウィジェットを作成します。
SELECT count(*) FROM PageAction
WHERE aparse(platformVersion, 'release-*') IN ({{releaseversion}}) FACET platformVersion
/ <img title="ウィジェットの作成" alt="ウィジェットの作成" src="/images/dashboards_screenshot-crop_add-ウィジェット-aparse.webp" /> /
または、 capture コマンドを使用することもできます。
SELECT count(*) FROM PageAction
WHERE capture(platformVersion, r'release-(?P<platformVersion>\d+)') IN ({{releaseversion}}) FACET platformVersion
/ <img title="ウィジェットの作成" alt="ウィジェットの作成" src="/images/dashboards_screenshot-crop_add-ウィジェット-capture.webp" /> /
LIKE と RLIKE テンプレート変数として使用して、ダッシュボード内のデータをフィルタリングできます。この機能を使用するには、テンプレート変数の作成時に追加する値で、値の先頭と末尾に % ワイルドカード記号を使用する必要があります。
ここに例があります。次の値を持つ文字列テンプレート変数を定義します。
クエリで使用する名前: line_filter
タイプ: Text field
デフォルト値: %@%.com
出力形式: String
/ <img width="40%;" title="テンプレート変数として LIKE を追加" alt="テンプレート変数として LIKE を追加" src="/images/dashboards_screenshot-crop_add-var-like-filter.webp"/> /
次に、ウィジェット グラフを作成し、次のように変数を使用できます。
FROM NrdbQuery SELECT user WHERE user LIKE {{like_filter}}
/ <img title="テンプレート変数として LIKE を追加" alt="テンプレート変数として LIKE を追加" src="/images/dashboards_screenshot-crop_add- ウィジェット-like-filter.webp" /> /
またはこのように:
FROM NrdbQuery SELECT user WHERE user RLIKE {{like_filter}}
文字列出力形式で NRQL 型の変数を作成し、それを FACET 句の後に使用して、異なる値でグループ化できます。
たとえば、次のような{{userAgentName}}という名前のテンプレート変数を作成できます。
SELECT uniques(userAgentName) FROM PageAction
/ <img width="30%;" title="変数の作成" alt="変数の作成" src="/images/dashboards_screenshot-crop_add-var-facet.webp"/> /
次に、次のクエリを使用してウィジェットを作成します。
SELECT count(*) FROM PageAction
WHERE userAgentName={{userAgentName}} FACET userAgentName
/ <img title="ファセットを使用したウィジェットの作成" alt="ファセットを使用したウィジェットの作成" src="/images/dashboards_screenshot-crop_add-ウィジェット-facet.webp" /> /
identifier出力形式で変数を作成し、それをFACET句の後に使用して、さまざまな値でグループ化できます。
たとえば、 {{location}}変数を作成できます。
クエリで使用する名前:location
タイプ: List
カンマで区切られた値: countryCodeと city
出力形式: Identifier
/ <img width="40%;" title="動的グループ化のための変数の追加" alt="動的グループ化のための変数の追加" src="/images/dashboards_screenshot-crop_add-var-dynamic-grouping.webp"/> /
次に、次のクエリを使用してウィジェットを作成します。
SELECT count(*) FROM PageAction FACET {{location}}
/ <img title="動的グループ化のためのウィジェットの追加" alt="動的グループ化のためのウィジェットの追加" src="/images/dashboards_screenshot-crop_add-ウィジェット-dynamic-grouping.webp" /> /
出力形式numberで変数を作成し、それをパーセンタイル関数内で使用できます。
たとえば、 {{percentile}}変数を作成できます。
クエリで使用する名前:percentile
タイプ: List
カンマで区切られた値: 55と 90
出力形式: Number
/ <img width="40%;" title="パーセンタイルを動的に変更するための変数を追加する" alt="パーセンタイルを動的に変更するための変数を追加する" src="/images/dashboards_screenshot-crop_add-var-dynamic-パーセンタイル.webp" /> /
次に、次のクエリを使用してウィジェットを作成します。
SELECT percentile(duration, {{percentile}}) FROM PageAction
/ <img title="パーセンタイルを動的に変更するウィジェットを追加する" alt="パーセンタイルを動的に変更するウィジェットを追加する" src="/images/dashboards_screenshot-crop_add-ウィジェット-dynamic-パーセンタイル.webp" /> /
フィルタリングに変数を使用するには、次のように、作成した変数をWHERE句の右側に追加するだけです。
SELECT countryCode, city FROM PageAction
WHERE countryCode IN ({{countryCode}})
/ <img title="変数を使用してフィルタリングする" alt="変数を使用してフィルタリングする" src="/images/dashboards_screenshot-crop_variables-to-filter.webp"/> /
デフォルトでは、「タイムピッカーを無視」オプションが有効になっています。つまり、ダッシュボードのタイムピッカーに別の値が選択されている場合でも、書き込みは常にデフォルトの1 hour時間範囲値を使用して実行されます。 5 minutes 、 3 hoursなど)。 この場合の例外は、クエリにSINCE句で明示的に時間範囲が設定されている場合です。次に例を示します。
結果は過去 5 分間の範囲になります。
「タイムピッカーを無視する」オプションをオフにすると、タイムピッカーで選択した値で書き込みが実行されます。 たとえば、以下のスクリーンショットのように、変数編集フォームでタイムピッカーを 30 分に設定すると、「タイムピッカーを無視する」フィールドがオフに設定されます。

これにより、過去 30 分間の値が得られます。 タイムピッカーの値をDefaultに設定し、クエリにSINCE句が含まれている場合、最新の値を使用してクエリが実行されます。
/ <img title="フォームの例" alt="可変フォームを示すスクリーンショット" src="/images/dashboards_screenshot-crop_example-form.webp"/> /
場合によっては、異なる種類のデータに同じルールを適用するクエリがあることがあります。 以下は、データ型を除いて同一の 2 つのウィジェットの例です。
ウィジェット 1:
SELECT count(*) FROM DataType1 SINCE 1 day ago
イド 2:
SELECT count(*) FROM DataType2 SINCE 1 day ago
2 つの別個の ウィジェット を作成する代わりに、Identifier[出力形式]のOutput format[識別子]を持つ変数を使用して 1 つの ウィジェット を作成できます。 次に、これをFROM句で使用して、さまざまなデータ型をクエリできます。
たとえば、2 つの値DataType1とDataType2を持つList型の{{dataType}}変数を作成できます。 Output Format[出力形式を]Identifier[識別子]に設定します。

次に、ウィジェットを作成して実行します。

ダッシュボード JSON の管理機能を使用すると、リストベースの変数の値にカスタム タイトルまたはラベルを定義できます。これにより、変数のドロップダウン メニューに表示される内容を変更できます。
たとえば、次のような変数があるとします。
"title": "List of string",
"isMultiSelection": false,
"replacementStrategy": "STRING"
JSON を開いてtitleフィールドに値を追加すると、次のようになります。
"title": "List of string",
"isMultiSelection": false,
"replacementStrategy": "STRING"
追加したタイトルは変数のドロップダウンに表示されます。これは変数やウィジェットのロジックにはまったく影響しません。

ウィジェット タイトルでテンプレート変数を使用すると、変数値を変更すると自動的に更新される動的なタイトルを作成できます。これは、表示されるデータに関するコンテキストを提供するのに役立ちます。
ウィジェットを編集するときに UI を介して、またはダッシュボード JSONを使用して、ウィジェット タイトルに変数を追加できます。
たとえば、「アラート」、「 APM 」、「ダッシュボード」、「カタログ」などの値を持つ{{products}}という名前の変数がある場合、 Page views per nerdlet: {{products}}のような動的なタイトルを持つウィジェットを作成できます。

変数ドロップダウンから「アラート」を選択すると、ウィジェットのタイトルが自動的に更新され、選択した値が表示されます。「アラート」、「APM」、「ダッシュボード」を複数選択すると、タイトルが更新され、選択したすべての値が表示されます。
この機能は、あらゆるテンプレート変数タイプ (クエリ、リスト、またはテキスト フィールド) で動作し、ユーザーは変数フィルターを確認しなくても、表示しているデータの内容を理解するのに役立ちます。
マークダウン ウィジェットでテンプレート変数を使用すると、変数の選択に基づいて更新される動的なテキスト コンテンツ、ドキュメント、または図を作成できます。これは、コンテキスト メモや Mermaid 図のような視覚化を作成する場合に特に強力です。
たとえば、「アラート」、「 APM 」、「ダッシュボード」、「カタログ」などの値を持つ変数{{products}}がある場合、それをマークダウン コンテンツでさまざまな方法で使用できます。
例1: 動的なテキストコンテンツ
変数 ({{products}}) をマークダウン テキストに直接含めて、選択内容に基づいて更新される動的なドキュメントを作成できます。

例2: ダイナミックマーメイドダイアグラム
Mermaid ダイアグラムのマークダウン テキスト内で変数 ({{products}}) を使用して、動的に更新されるフローチャートを作成することもできます。

この例では、図は、 {{products}}変数がどのデータを保持または破棄するかを決定する決定フローを示しています。変数の選択を変更すると、選択した製品を反映して図が更新されます。
注記
マークダウン ウィジェットを編集する場合、プレビュー モードでは実際の値ではなく、変数名 (たとえば、 {{products}}) が表示されます。ただし、ダッシュボードを保存して表示すると、変数は実際の値に置き換えられます。