カスタムウィジェットを使用すると、独自のNRQLクエリから構築された専用のチャート視覚化でMedia Streamingダッシュボードを拡張できます。カスタムウィジェットは、事前定義されたメトリクスとともに、Quality Metricsドロップダウンの別のCustom Metricsカテゴリに表示されます。これらはセッションをまたいで保持され、既存のダッシュボード内でスケーリングされます。
重要
各アカウントは、50個のカスタムウィジェットのソフトリミットをサポートしています。この制限はNerdStorageの容量に基づいています。制限に達した場合は、新しいカスタムウィジェットを追加する前に、既存のカスタムウィジェットを削除してください。
あなたが始める前に
カスタムウィジェットは、Media Streaming nerdpack内から作成されます。Streaming Video & AdsエージェントがインストールされたNew Relicアカウントへのアクセスが必要です。まだセットアップしていない場合は、Streaming Video & Adsエージェントのインストールを参照してください。
カスタムウィジェットを作成する
- Media Streamingダッシュボードを開き、Quality Metricsセクションに移動します。
- + Add Custom Widgetをクリックします。
- ウィジェットのタイトルを入力してください。
- NRQLエディタでNRQLクエリを記述します。構文、フィルターのプレースホルダー、および例のガイダンスについては、クエリの記述を参照してください。
- 保存する前に結果をプレビューするには、Run Queryをクリックします。
- Saveをクリックします。ウィジェットはQuality MetricsドロップダウンのCustom Metricsセクションに追加され、ダッシュボードにレンダリングされます。
クエリの記述
NRQLエディタは、任意の有効なNRQLSELECTまたはFROMクエリを受け入れます。完全なクエリをエディタに直接記述してください — 構文のハイライト、オートコンプリート、リアルタイムの検証はエディタによって提供されます。
クエリの要件
- クエリは
SELECTまたはFROMで始まり、両方の句を含める必要があります。 - ハードコードされた
SINCE句またはUNTIL句を含めないでください。ダッシュボードのタイムピッカーは、実行時に時間範囲を自動的に挿入します。 - ダッシュボードレベルのフィルターバーの選択に応答するには、クエリにフィルタープレースホルダーを含めます。
フィルタープレースホルダー
フィルターのプレースホルダーは、ダッシュボードのフィルターバーで適用されたフィルター条件に実行時に置き換えられるNRQLコメントトークンです。手動でクエリに追加してください。
| プレースホルダー | 用途 |
|---|---|
/* {whereClause} */ | クエリには既存のWHERE句がありません。プレースホルダーは完全なWHERE ...条件に置き換えられます。 |
/* {andWhereClause} */ | クエリにはすでにWHERE句が含まれています。プレースホルダーは、追加のAND ...条件として追加されます。 |
/* {aggregatorWhereClause} */ | すでにWHERE句が含まれているfilter()関数内。集計スコープ内に追加のAND ...条件を追加します。 |
例 — 既存のWHERE句がない場合:
SELECT uniqueCount(viewId) AS 'Total Views'FROM VideoAction /* {whereClause} */TIMESERIESasn = '14618'のフィルターがアクティブな場合:
SELECT uniqueCount(viewId) AS 'Total Views'FROM VideoAction WHERE asn = '14618'TIMESERIES SINCE 30 minutes ago UNTIL now例 — 既存のWHERE句:
SELECT count(*) AS 'Error Count'FROM VideoErrorAction, VideoActionWHERE actionName = 'CONTENT_ERROR' /* {andWhereClause} */TIMESERIES例 — 集計関数内のフィルター:
FROM VideoActionSELECT ( filter(sum(timeSinceBufferBegin), WHERE actionName = 'CONTENT_BUFFER_END' AND bufferType = 'connection' /* {aggregatorWhereClause} */ ) / filter(sum(elapsedTime) OR 1, WHERE actionName = 'CONTENT_HEARTBEAT' /* {aggregatorWhereClause} */ )) AS 'Connection-induced rebuffering ratio'TIMESERIESヒント
ダッシュボードのフィルターバーでフィルターがアクティブな場合、3つのプレースホルダータイプはすべて同じ基盤となるフィルター条件に解決されます — 違いは構文的なものだけであり、クエリの構造に応じて有効なNRQLを生成するためです。
ブロックされたキーワードと文字
偶発的または悪意のあるデータ変更を防ぐため、NRQLエディターでは以下がブロックされます:
ブロックされたキーワード:
DROPDELETEINSERTUPDATECREATEALTER
ブロックされる文字:
- セミコロン(
;) — クエリのチェーンやインジェクション攻撃を防ぐためにブロックされます。
これらのいずれかを含むクエリは検証に失敗し、保存やプレビューを行うことはできません。
クエリの例
基本的な時系列 — ビデオの合計開始数:
SELECT count(*) AS 'Video Starts'FROM VideoActionWHERE actionName = 'CONTENT_START' /* {andWhereClause} */TIMESERIESフィルターインテグレーションを使用したユニーク視聴者数:
SELECT uniqueCount(viewId) AS 'Unique Viewers'FROM VideoAction /* {whereClause} */TIMESERIESイベントタイプ全体のエラー率:
SELECT count(*) AS 'Error Count'FROM VideoErrorAction, VideoActionWHERE actionName = 'CONTENT_ERROR' /* {andWhereClause} */TIMESERIES接続に起因するリバッファリング率(詳細):
FROM VideoActionSELECT ( filter(sum(timeSinceBufferBegin), WHERE actionName = 'CONTENT_BUFFER_END' AND bufferType = 'connection' /* {aggregatorWhereClause} */ ) / filter(sum(elapsedTime) OR 1, WHERE actionName = 'CONTENT_HEARTBEAT' /* {aggregatorWhereClause} */ )) AS 'Connection-induced rebuffering ratio'TIMESERIESより多くのクエリのヒントについては、ビットレートメトリクスデータディクショナリで、VideoActionとVideoErrorActionを使用した事前構築済みのNRQLの例を参照してください。
ウィジェットをプレビューする
保存する前にRun Queryをクリックして、ライブデータに対してクエリを実行し、レンダリングされたチャートを確認します。これによりウィジェットが保存されることはありません。
プレビューを使用して以下を行います:
- チャートに期待するデータがレンダリングされることを確認します。
- フィルターバーでフィルターがアクティブなときに、フィルタープレースホルダーが正しく解決されることを確認します。
- ウィジェットがダッシュボードにコミットされる前に、構文エラーや論理エラーを検出します。
カスタムウィジェットを編集する
- Quality Metricsセクションで、変更するカスタムウィジェットを見つけます。
- ウィジェットカードの鉛筆アイコンをクリックします。
- エディターは編集モードで開き、すべてのフィールドが事前に入力されています — タイトルと既存のNRQLクエリ。
- 変更を行い、Run Queryをクリックして確認し、Saveをクリックします。
保存時:
updatedAtタイムスタンプが更新されます;元のcreatedAtとウィジェットidは保持されます。- ウィジェットは更新されたクエリで直ちに再レンダリングされます。
- タイトルを変更した場合は、Quality メトリクスのドロップダウンで更新されます。
カスタムウィジェットを削除する
- Quality Metricsセクションで、ウィジェットカードのアイコンをクリックします。
- Deleteを選択します。
- プロンプトで確認します:「『[Widget Title]』を削除してもよろしいですか?この操作は元に戻せません。」
削除された場合:
- ウィジェットはNerdStorageから削除され、完全に消去されます。
- ウィジェットカードは直ちにダッシュボードから削除されます。
- Quality メトリクスのドロップダウンからタイトルが削除されます。
- ウィジェットが選択されていた場合、自動的に選択が解除されます。
注意
削除は元に戻せません。後で必要になる可能性がある場合は、ウィジェットを削除する前にNRQLクエリをコピーしてください。
ウィジェットの制限
アカウントあたり50ウィジェットというソフトリミットは、NerdStorageのドキュメント容量に基づいています。50ウィジェットでのストレージ使用量は約21 KBです — ドキュメントあたりの制限である64 KBの約33%であり、安全なマージンを確保しています。
制限に達した場合、既存のカスタムウィジェットが削除されるまで、ウィジェットの作成はブロックされます。既存のウィジェットは引き続き正常に機能します。