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

に行く one.newrelic.com > All capabilities > Dashboards
テンプレート変数を使用すると、さまざまな変数とフィルターを設定して、必要なダッシュボード エクスペリエンスを作成できます。作成できるエクスペリエンスの例:
- アプリ名を選択するドロップダウン
- 特定の地域を選択するドロップダウン
- 特定の期間またはその他の数値を選択するためのドロップダウン
- フリー テキスト フィールドを使用して一致する文字列を検索するフィルター
さらに、クエリを変更せずに、変数を含めるかどうかを決定できるようになりました。 詳細については、 変数を含めるセクションを参照してください。
変数を含めるか除外するか
Include variableトグルを有効にして値を選択すると、ダッシュボードのデータがその値でフィルタリングされます。Refresh to default valueクリックすると、設定済みのデフォルト設定に戻すことができます。詳細については、テンプレート変数を参照してください。
たとえば、変数内の特定の値に固有ではない問題を調査している場合があります。 このような場合、すべての可能なオプションを選択した場合でも、変数の既存の値によってクエリ結果が制限される可能性があります。 これを解決するには、クエリから変数を除外します。 これにより、変数の条件が実質的に削除され、中立的なブール値 (true または false) に置き換えられ、クエリの有効性が保証され、包括的な結果が返されます。
例
countryCode変数に基づいて結果をフィルタリングするクエリを検討します。 フィルタリングせずにすべての国のデータを表示する場合は、変数を除外できます。
元のクエリ:
FROM PageAction SELECT count(*) AS 'views' WHERE countryCode IN ({{countryCode}}) AND appName = 'Test App' FACET countryCode除外変数を使用したクエリ:
FROM PageAction SELECT count(*) AS 'views' WHERE true AND appName = 'Test App' FACET countryCodeこの機能は、特に次の場合に便利です。
変数に、許可されている最大値 (インスタンスの場合、デフォルトでは一意の結果の最大数は 5000) を超える値が含まれているか、または値の数が非常に多くなっています。 デフォルトで変数を無効にすることを選択すると、パフォーマンスが大幅に向上します。
変数のデータ ソースは、クエリを実行するデータベースと異なります。 このような場合、「すべて選択」を使用してデータベースからすべての値を選択するだけでは不十分です。 変数を除外することで、データベースからすべての値を取得できます。
include 変数の制限:
FACET の場合に使用すると、条件は true に置き換えられ、常に true の条件に変換されます。
関数などの他のコンテキストや
SELECTステートメントで使用すると、次のエラーが発生します:"Unknown function Disable_variable()"。 これは、これらの特定のケースに対して変数を無効にする機能がまだ実装されていないためです。
変数の表示と非表示
テンプレート変数は、表示モードの変数バーから非表示にできますが、非表示にしても通常どおり機能します。編集モードでは、非表示の変数はアイコンが表示されるので、ダッシュボード編集者はそれらを識別して管理できます。
次のような変数は非表示にすることをお勧めします。
- 変数バーを乱雑にする(ネストされた変数など)
- ビューアの入力を必要とせずにダッシュボードのロジックを制御する
- 他の変数から値を自動的に導出する
変数を非表示にするには、テンプレート変数を定義する際にHide on variables barオプションを使用します。これをプログラムで設定するには、 NerdGraph ダッシュボード APIのhiddenOnVariablesBarフィールドを使用します。
ヒント
複数の変数を一度に非表示にするには、NerdGraph を使用してください。 UI一度に 1 つの変数しか非表示にできないため、複数の変数をプログラムで更新するにはAPIを使用してください。
要件と制限
テンプレート変数は、カスタムダッシュボード用のウィジェットを作成するコンテキストでのみ使用できます。 このため、クエリ関連の一部の機能は動作しません。たとえば、 Export dashboard as PDFオプションは変数を含むウィジェットをサポートしておらず、 Lens SQL クエリはテンプレート変数をサポートしていません。NRQL クエリで変数を使用する方法については、「NRQL 変数」を参照してください。
クエリの追加に関する重要な注意事項:
定義した変数は、
{{ … }}ブラケット内に入ります。変数は文字列値を生成します。
クエリを作成するときに役立つように、次のカラー コードがあります。
- 句
FROM、SELECT、FACET、およびWHEREはピンク色です。 - 識別子は黒です。
- 関数は青色です。
- 弦は緑色です。
- 整数は茶色です。
- 句
NRQL を使用したクエリの記述について詳しく知りたい場合は、NRQL の使用方法: クエリの仕組みの ページを参照してください。
クエリの作成に関する制限については、「クエリの作成」を参照してください。
テンプレート変数を使用する
テンプレート変数の作成方法を順を追って説明し、その後、さまざまな種類のテンプレート変数の 例を いくつか示します。
テンプレート変数の作成は、2 つのステップで構成されます。
テンプレート変数を定義する
ウィジェットを作成するためにNRQLで使用するテンプレート変数を定義します。
変数を定義するには:
変数のない新しいダッシュボードから、編集 ボタンをクリックし、続いて + Add variable ボタンをクリックします。
ダッシュボードにウィジェットが含まれている場合は、 + Add variableボタンをクリックします。

Add variableワークフローを完了してください。以下に、各分野におけるルールとヒントをいくつかご紹介します。
フィールド
詳細
Name to use in queries
変数の名前。これは、
{{...}}で囲まれたクエリで使用するものです。たとえば、ここで名前としてcountryを使用する場合、クエリを記述するときに{{country}}で変数を呼び出します。変数名は文字で始める必要があり、文字、数字、アンダースコアを含めることができます。
Display name
オプション。このように変数がダッシュボードの上に表示されるため、ダッシュボードのユーザーは変数が何を表しているかがわかります。これを空白のままにすると、メインの名前の値が使用されます。
Type
次の 3 つのオプションがあります。
Query: ドロップダウン メニューで使用されるオプションの動的なリストを返すクエリを作成できます。 たとえば、次のクエリは
country値の動的なリストを返します。SELECT uniques(countryCode) FROM PageAction SINCE 2 days agoクエリを作成する際の規則とヒントについては、「クエリ型変数」を参照してください。
List: ドロップダウン メニューのオプションを設定するために使用されるカンマ区切りの値のリスト。 たとえば、次のようなリストを使用して、
country値のリストを手動で定義できます。ES, US, CA.Text field: ドロップダウンから値を選択する代わりに、ダッシュボード ユーザーは入力したテキストをフィルタリングできます。
Fetch data from this account
queryタイプにのみ存在します。複数のアカウントを持つ組織の場合、これは照会されるアカウントを設定します。Query
uniques(attribute)を使用してここにクエリを記述します。Ignore time picker
オプション。 クエリ タイプの場合にのみ存在します。 このオプションをオフにすると、ダッシュボードで選択したタイムピッカーの値を使用してクエリが実行されます。 そうすることで、タイムピッカーの値が変化すると、変数のドロップダウンの結果が新しく選択された時間範囲に動的に応答します。
Multi-value
オプション。このオプションを使用すると、ドロップダウンで単一の選択ではなく、同時に複数の選択を許可できます。
適用ボタンを表示
オプション。multi-value有効にした場合にのみ表示されます。このトグルを有効にすると、変数のドロップダウン フィルターの下部にApplyまたはCancelボタンが表示されます。このボタンがドロップダウン フィルターに表示されている間にクリックすると、値に変更が適用されます。
Default value
オプション。 これらはダッシュボードがフィルタリングするデフォルト値です。 たとえば、上記の
countryクエリを使用した場合、デフォルト値としてESを入力すると、ダッシュボードは自動的にその値にフィルタリングされます。 すべての可能性を選択することもできます。WHERE句で複数の値を使用するには、=の代わりにINを使用する必要があります。Include variable [変数を含める] トグルは、ダッシュボード内のその変数のデフォルトの設定 (含めるか除外する) を決定します。 この設定は、ダッシュボードを表示しているユーザーが、変数ドロップダウン メニューのInclude variable [変数を含める]トグルを使用して変更できます。 ユーザーが選択した設定はセッション期間中有効です。
重要
トグルが変数を含めるように設定されている場合にのみデフォルト値を構成できることに注意してください。 デフォルト値を選択したら、トグルを切り替えることで、変数がデフォルトで含まれないようにすることができます。 ユーザーが変数ドロップダウン メニューから変数を含めるように切り替えると、デフォルト値が事前に選択されます。
Output format
これにより、変数によって生成されたデータがクエリ内でどのように処理されるかを変更できます。 ここで選択したオプションは、後でウィジェットに追加するクエリに関連しています。 defaultオプションは、ほとんどのクエリで使用される一般的なオプションであるため、文字列になります。 defaultオプションを次のいずれかに変更できます。
- String: 数値以外のテキスト値に使用します。
- Number:数値の場合に使用します。
- Identifier: イベント名やファセット名など、クエリの一部を置換する場合にこれを使用します。
Hide on variables bar
任意。表示モードで変数バーから変数を非表示にします。隠れた変数は引き続き正常に機能する。編集モードでは、非表示の変数はアイコン。詳細については、 「変数の表示と非表示」を参照してください。
テンプレート変数を定義したら、作成したテンプレート変数を使用するウィジェットを追加できます。
テンプレート変数を使用するウィジェットを作成する
テンプレート変数を構成したら、クエリで定義した変数を使用するウィジェットがダッシュボードに必要になります。
ウィジェットを作成するには:
ダッシュボードで、右上隅にある+ Add widgetボタンをクリックします。
2 つのオプションがあります。
- グラフを追加します。 クエリ ビルダーを使用してウィジェットを作成します。
- テキスト、画像、またはリンクを追加します。 Markdown エディターを使用して、独自のコンテンツを追加するウィジェットを作成します。
Add a chartオプションを選択します。
クエリを追加して、 Runをクリックします。
ステップ 1 で説明した例に従います。
SELECT countryCodeFROM PageActionWHERE countryCode IN ({{countryCode}})
これらは、テンプレート変数を値として受け入れる NRQL 句であることに注意してください:
SELECT、FROM、FACET、ORDER BY、およびWHERE。代わりに、次の NRQL 句のリストはテンプレート変数を引数として受け入れません:
AS、COMPARE WITH、LIMIT、OFFSET、SINCE、SLIDE BY、TIMESERIES、UNTILおよびWITH.(オプション)グラフをカスタマイズするには、 Chart typeドロップダウンの横にあるSee customization optionsアイコンを選択します。利用可能なオプションについては、 「グラフのカスタマイズ」を参照してください。
クリック Add to dashboard
テスト
テンプレート変数の定義とその変数を参照するウィジェットの追加が完了したら、テンプレート変数バーからさまざまなオプションを選択し、選択に基づいてウィジェットが変化するかどうかを確認することで、期待どおりに機能していることを確認できます。
右側に結果ウィジェットの例を示します。左側にはcountryドロップダウンがあります。

クエリ型テンプレート変数の書き方のルール
テンプレート変数の定義に関するセクションで説明したように、変数の種類にはクエリ、リスト、テキスト フィールドの 3 つがあります。 クエリ タイプの変数は、ダッシュボードの上部にあるテンプレート変数バーのドロップダウンに値を入力するために使用される値のリストを返す実用的なクエリを作成する必要があるため、作成が最も複雑です。
重要
これは、テンプレート変数を利用するクエリの記述とは異なるトピックであることに注意してください。
値のリストを返す限り、ほぼすべての NRQL クエリを使用できます。 そのためには、 uniques関数またはkeyset関数のいずれかを使用できます。
uniquesの場合:
FROM PageAction SELECT uniques(countryCode)-- you can use the second param to define the maximum number of results to be listed.FROM PageAction SELECT uniques(countryCode, 10000) --> this will return up to 10k resultskeysetの場合:
-- with `keyset`, you'll get a list with all of the attributes from the table you're querying fromFROM PageAction SELECT keyset() SINCE 1 day ago変数内に変数が存在することはできないため、ネストされた変数はサポートされていないことに注意してください。
いくつかの例
テンプレート変数の実装のいくつかの異なるタイプを次に示します。






