カスタムダッシュボードの場合、 template variablesを使用してチャートや他のウィジェットを動的にフィルターできます。 テンプレート変数を使用すると、ダッシュボードがより便利になり、さまざまなユースケースで再利用できるダッシュボードをより簡単に作成できるようになります。
テンプレート変数を使用する理由
テンプレート変数は、ダッシュボードの作成者が選択した特定のメタデータ値に基づいてダッシュボード全体をフィルタリングする強力で動的な方法です。テンプレート変数を使用する利点は次のとおりです。
ダッシュボードが使いやすくなります。ユーザーはデータの構造を理解する必要はなく、設定したさまざまなフィルター オプションから選択するだけです。
再利用可能なダッシュボード テンプレートを作成し、それを複製してカスタマイズし、さまざまな用途に使用できます。
いくつかのテンプレート変数を含むダッシュボードの例を次に示します。これは、ダッシュボードの上部に表示されます。
に行く one.newrelic.com > All capabilities > Dashboards
テンプレート変数を使用すると、さまざまな変数とフィルターを設定して、必要なダッシュボード エクスペリエンスを作成できます。作成できるエクスペリエンスの例:
- アプリ名を選択するドロップダウン
- 特定の地域を選択するドロップダウン
- 特定の期間またはその他の数値を選択するためのドロップダウン
- フリー テキスト フィールドを使用して一致する文字列を検索するフィルター
さらに、クエリを変更せずに、変数を含めるかどうかを決定できるようになりました。 詳細については、 変数を含めるセクションを参照してください。
変数を含めるか除外するか
Include variableトグルを使用すると、目的の値を設定し、その値をダッシュボードに含めるか除外することができます。 詳細については、 テンプレート変数のセクションを参照してください。
たとえば、変数内の特定の値に固有ではない問題を調査している場合があります。 このような場合、すべての可能なオプションを選択した場合でも、変数の既存の値によってクエリ結果が制限される可能性があります。 これを解決するには、クエリから変数を除外します。 これにより、変数の条件が実質的に削除され、中立的なブール値 (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()"
。 これは、これらの特定のケースに対して変数を無効にする機能がまだ実装されていないためです。
要件と制限
テンプレート変数は、カスタム ダッシュボードのウィジェットを作成するコンテキストでのみ使用できます。NRQLクエリで変数を使用するには、NRQL変数を参照してください。
テンプレート変数を含むクエリは、ダッシュボードのコンテキストでのみ使用できます。このため、一部のクエリ関連機能は動作しません。たとえば、 Export dashboard as PDF
オプションは、変数を持つウィジェットをサポートしていません。
クエリの追加に関する重要な注意事項:
定義した変数は、
{{ … }}
ブラケット内に入ります。変数は文字列値を生成します。
クエリを作成するときに役立つように、次のカラー コードがあります。
- 句
from
、select
、facet
、およびwhere
はピンク色です。 - 識別子は黒です。
- 関数は青色です。
- 弦は緑色です。
- 整数は茶色です。
- 句
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)
を使用してここにクエリを記述します。タイムピッカーを無視する
オプション。 クエリ タイプの場合にのみ存在します。 このオプションをオフにすると、ダッシュボードで選択したタイムピッカーの値を使用してクエリが実行されます。 そうすることで、タイムピッカーの値が変化すると、変数のドロップダウンの結果が新しく選択された時間範囲に動的に応答します。
複数選択
オプション。このオプションを使用すると、ドロップダウンで単一の選択ではなく、同時に複数の選択を許可できます。
デフォルト値
オプション。 これらはダッシュボードがフィルタリングするデフォルト値です。 たとえば、上記の
country
クエリを使用した場合、デフォルト値としてES
を入力すると、ダッシュボードは自動的にその値にフィルタリングされます。 すべての可能性を選択することもできます。WHERE
句で複数の値を使用するには、=
の代わりにIN
を使用する必要があります。**変数を含める** トグルは、ダッシュボード内のその変数のデフォルトの設定、含めるか除外するかを決定します。 この設定は、ダッシュボードを表示しているユーザーが、変数ドロップダウン メニューの [**変数を含める**] トグルを使用して変更できます。 ユーザーが選択した設定はセッション期間中有効です。
重要
トグルが変数を含めるように設定されている場合にのみデフォルト値を構成できることに注意してください。 デフォルト値を選択したら、トグルを切り替えることで、変数がデフォルトで含まれないようにすることができます。 ユーザーが変数ドロップダウン メニューから変数を含めるように切り替えると、デフォルト値が事前に選択されます。
出力フォーマット
これにより、変数によって生成されたデータがクエリ内でどのように処理されるかを変更できます。 ここで選択したオプションは、後でウィジェットに追加するクエリに関連しています。 defaultオプションは、ほとんどのクエリで使用される一般的なオプションであるため、文字列になります。 defaultオプションを次のいずれかに変更できます。
- String: 数値以外のテキスト値に使用します。
- Number:数値の場合に使用します。
- Identifier: イベント名やファセット名など、クエリの一部を置換する場合にこれを使用します。
country
値のテンプレート変数がどのようになるかを示す次の例を参照してください。テンプレート変数を定義したら、作成したテンプレート変数を使用するウィジェットを追加できます。
テンプレート変数を使用するウィジェットを作成する
テンプレート変数を構成したら、クエリで定義した変数を使用するウィジェットがダッシュボードに必要になります。
ウィジェットを作成するには:
ダッシュボードで、右上隅にある+ 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...
.クリック Save
テンプレート変数の定義とその変数を参照するウィジェットの追加が完了したら、テンプレート変数バーからさまざまなオプションを選択し、選択に基づいてウィジェットが変化するかどうかを確認することで、期待どおりに機能していることを確認できます。
右側に結果ウィジェットの例を示します。左側には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 results
keyset
の場合:
-- with `keyset`, you'll get a list with all of the attributes from the table you're querying from From PageAction select keyset() SINCE 1 day ago
変数内に変数が存在することはできないため、ネストされた変数はサポートされていないことに注意してください。
いくつかの例
テンプレート変数の実装のいくつかの異なるタイプを次に示します。