カスタムダッシュボードでは、 template variables を使用してグラフやその他のウィジェットを動的にフィルター処理できます。 テンプレート変数は、ダッシュボードをより便利にし、さまざまなユースケースで再利用できるダッシュボードをより簡単に作成するのに役立ちます。
テンプレート変数を使用する理由 テンプレート変数は、ダッシュボードの作成者が選択した特定のメタデータ値に基づいてダッシュボード全体をフィルタリングする強力で動的な方法です。テンプレート変数を使用する利点は次のとおりです。
これにより、ダッシュボードが使いやすくなります。ユーザーはデータの構造を理解する必要がなく、設定したさまざまなフィルター オプションから簡単に選択できます。 これらを使用すると、再利用可能なダッシュボード テンプレートを作成できます。これを複製して、他の多くの用途に合わせて調整できます。 いくつかのテンプレート変数を含むダッシュボードの例を次に示します。これは、ダッシュボードの上部に表示されます。
テンプレート変数を使用すると、さまざまな変数とフィルターを設定して、必要なダッシュボード エクスペリエンスを作成できます。作成できるエクスペリエンスの例:
アプリ名を選択するドロップダウン 特定の地域を選択するドロップダウン 特定の期間またはその他の数値を選択するためのドロップダウン フリー テキスト フィールドを使用して一致する文字列を検索するフィルター 要件と制限 テンプレート変数は、カスタム ダッシュボードのウィジェットを作成するコンテキストでのみ使用できます。NRQLクエリで変数 を使用するには、NRQL変数を参照してください。
テンプレート変数を含むクエリは、ダッシュボードのコンテキストでのみ使用できます。このため、一部のクエリ関連機能は動作しません。たとえば、 Export dashboard as PDF
オプションは、変数を持つウィジェットをサポートしていません。
クエリの追加に関する重要な注意事項:
クエリの作成に関する制限については、「クエリ の作成」を参照してください。
テンプレート変数を使用する テンプレート変数の作成方法を順を追って説明し、その後、さまざまな種類のテンプレート変数の 例を いくつか示します。
テンプレート変数の作成は、2 つのステップで構成されます。
ステップ 1. テンプレート変数を定義する まず、テンプレート変数を定義します。これは、ウィジェットを作成するために 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 オプションを次のいずれかに変更できます。
country
値のテンプレート変数がどのようになるかを示す次の例を参照してください。
テンプレート変数を定義したら、作成したテンプレート変数を使用するウィジェットを追加できます。
ステップ 2. テンプレート変数を使用するウィジェットを作成する テンプレート変数を構成したら、クエリで定義した変数を使用するウィジェットがダッシュボードに必要になります。
ウィジェットを作成するには:
ダッシュボードで、右上隅にある+ Add widget ボタンをクリックします。
2 つのオプションがあります。
Add a chart オプションを選択します。
クエリを追加して、 Run をクリックします。
ステップ 1 で説明した例に従います。
SELECT countryCode FROM PageAction WHERE 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 つの変数タイプがあります。query-type 変数の作成は最も複雑です。これは、値を返す実際のクエリを作成する必要があるためです。値は、ダッシュボードの上部にあるテンプレート変数バーのドロップダウンに入力するために使用されます。
重要 これは、テンプレート変数を利用するクエリの記述とは異なるトピックであることに注意してください。
クエリ型変数の作成に関するルールとガイダンスを次に示します。
クエリでは、 uniques
または keyset
構文を使用する必要があります。Uniques は最大 10,000 件の結果を返します。 uniques
と keyset
を確認してください。次に、クエリの例をいくつか示します。
From PageAction select uniques ( countryCode )
From PageView select keyset ( ) SINCE 1 day ago
uniques
および keyset
コンポーネントが値のリストを返す限り、ほぼすべての NRQL クエリを使用できます。
ネストされた変数はサポートされていません。変数内に変数を含めることはできません。
いくつかの例 テンプレート変数の実装のいくつかの異なるタイプを次に示します。
複数値オプションを使用 タイプ NRQL/ENUM
の変数を作成するときに、表示オプション セクションから複数値オプションを有効にすることができます。
{{MultiValue}}
という名前の変数を作成し、一意のすべての eventId のリストを返すクエリの例を次に示します。
SELECT uniques ( eventId ) FROM AjaxRequest
次に、次のクエリでウィジェットを作成します。
SELECT count ( * ) FROM AjaxRequest WHERE eventId IN ( {{MultiValue}} )
1 つのウィジェットに複数の変数を使用する 一度に定義できるテンプレート変数は 1 つだけですが、1 つのウィジェットで複数のテンプレート変数を使用できます。
次に、2 つのテンプレート変数を使用するクエリの例を示します。これは、 countryCode
および city
テンプレート変数がすでに作成されており、それらの値が 1 つであることを前提としていることに注意してください。
SELECT countryCode , city FROM PageAction WHERE countryCode = {{countryCode}} and city = {{city}}
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
次に、次のクエリでウィジェットを作成します。
SELECT count ( * ) FROM PageAction WHERE aparse ( platformVersion , 'release-*' ) IN ( {{releaseversion}} ) facet platformVersion
または、 capture
コマンドを使用することもできます。
SELECT count ( * ) FROM PageAction WHERE capture ( platformVersion , r 'release-(?P<platformVersion>\d+)' ) IN ( {{releaseversion}} ) Facet platformVersion
LIKE / RLIKE で変数と正規表現を使用する LIKE
と RLIKE
テンプレート変数として使用して、ダッシュボード内のデータをフィルタリングできます。この機能を使用するには、テンプレート変数の作成時に追加する値で、値の先頭と末尾に %
ワイルドカード記号を使用する必要があります。
ここに例を示します。次に示すように、文字列変数を定義します。
次に、ウィジェット グラフを作成し、次のように変数を使用できます。
FROM NrdbQuery SELECT user WHERE user LIKE {{like_filter}}
またはこのように:
FROM NrdbQuery SELECT user WHERE user RLIKE {{like_filter}}
NRQL クエリで変数 facet
を使用します 文字列出力形式で NRQL 型の変数を作成し、それを facet
句の後に使用して、異なる値でグループ化できます。
たとえば、次のような {{userAgentName}}
という名前の変数を作成できます。
SELECT uniques ( userAgentName ) FROM PageAction
次に、次のクエリを使用してウィジェットを作成します。
SELECT count ( * ) FROM PageAction WHERE userAgentName = {{userAgentName}} FACET userAgentName
動的グループ化に変数を使用する identifier
出力形式で変数を作成し、それをFACET
句の後に使用して、さまざまな値でグループ化できます。
たとえば、 countryCode
とcity
の 2 つの可能な値を持つリスト型の{{location}}
変数を作成するとします。出力形式をidentifier
に設定します。
次に、次のクエリを使用してウィジェットを作成します。
SELECT count ( * ) FROM PageAction FACET {{location}}
変数を使用してパーセンタイルを動的に変更する 出力形式number
で変数を作成し、それをパーセンタイル関数内で使用できます。
たとえば、 55
と90
の 2 つの可能な値を持つタイプlist
の{{percentile}}
変数を作成できます。出力形式をnumber
として設定したいと思います。
次に、次のクエリを使用してウィジェットを作成します。
SELECT percentile ( duration , {{percentile}} ) FROM PageAction
変数を使用してフィルタリングする フィルタリングに変数を使用するには、次のように、作成した変数をWHERE
句の右側に追加するだけです。
SELECT countryCode , city FROM PageAction WHERE countryCode IN ( {{countryCode}} )
タイムピッカーオプションを無視するを使用する デフォルトでは、「タイムピッカーを無視する」オプションが有効になっています。つまり、ダッシュボードのタイムピッカーに別の値が選択されている場合でも、クエリは常にデフォルトの 1 HOUR
時間範囲値を使用して実行されます (例: 5 分、3)時間など)。 この場合の例外は、次のようなクエリにSINCE
句を使用して明示的な時間範囲が設定されている場合です。
結果は過去 5 分間の範囲になります。
「タイムピッカーを無視」オプションがオフの場合、クエリはタイムピッカーで選択された値で実行されます。 たとえば、以下のスクリーンショットのようにタイムピッカーを 30 分に設定すると、変数編集フォームで「タイムピッカーを無視する」フィールドがオフに設定されます。
これにより、過去 30 分間の値が得られます。 タイムピッカーの値をDefault に設定し、クエリにSINCE
句が含まれている場合、最新の値を使用してクエリが実行されます。
まだお持ちでない場合は、以下で無料の New Relic アカウントを作成して、今すぐデータの監視を開始してください。