カスタムウィジェットを使用すると、独自のNRQLクエリから作成したチャートの視覚化によって、Media Streamingダッシュボードを拡張できます。組み込みの品質メトリクスが、チームでモニターする必要がある特定のデータポイントをカバーしていない場合に、これらを使用します。
重要
各アカウントは、ダッシュボードコンテキストごとに50個のカスタムウィジェットというソフトリミットをサポートしています — Video quality metrics用に50個、Ad quality metrics用に50個で、個別にカウントされます。制限に達した場合は、新しいカスタムウィジェットを追加する前に、既存のカスタムウィジェットを削除してください。既存のウィジェットは引き続き正常に機能します。
あなたが始める前に
カスタムウィジェットを作成する前に、以下が必要です:
- Streaming Video & AdsエージェントがインストールされたNew Relicアカウントへのアクセス。まだ設定していない場合は、Streaming Video & Adsエージェントのインストールをご覧ください。
- 品質メトリクスセクションに表示される+ Add Custom Widgetボタン。そうでない場合は、New Relicアカウントチームに連絡してアクセスをリクエストしてください。
NRQLクエリを記述する
NRQLエディターは、有効なNRQLクエリをすべてサポートしています。NRQL構文の概要については、『NRQLの概要』をご覧ください。
クエリの要件
カスタムウィジェットのクエリには、標準のNRQLに加えて2つの追加要件があります:
- クエリに直接
SINCEまたはUNTIL句を記述しないでください。クエリの実行時に、ダッシュボードのタイムピッカーが自動的に時間範囲を追加します。 - ダッシュボードレベルのフィルターバーの選択に応答するには、クエリにフィルタープレースホルダーを含めます。
フィルタープレースホルダー
クエリの実行時に、ダッシュボードはグローバルフィルターを適用します。クエリに直接プレーンなWHERE句を記述した場合、ダッシュボードはユーザーが選択したフィルター条件をそこに挿入できません。フィルターのプレースホルダーは、クエリの実行時にアクティブなフィルター条件に置き換えられる特別なNRQLコメントです。
| プレースホルダー | 次で置き換え | 用途 |
|---|---|---|
/* {whereClause} */ | WHERE [filters] | クエリに既存のWHERE句がありません。 |
/* {andWhereClause} */ | AND [filters] | クエリにはすでにWHERE句が含まれています — フィルターを追加します |
/* {aggregatorWhereClause} */ | , WHERE [filters] | クエリは既存の内部WHERE句を持たないfilter()集計を使用します — フィルターがアクティブでない場合、filter()ラッパーは削除されます |
例 — 既存のWHERE句がない場合:
SELECT count(*) FROM VideoAction /* {whereClause} */フィルターCity = Ashburnを適用した場合:
SELECT count(*) FROM VideoAction WHERE city = 'Ashburn' SINCE 30 minutes ago UNTIL now例 — 既存のWHERE句:
SELECT count(*) FROM VideoActionWHERE actionName = 'QOE_AGGREGATE' /* {andWhereClause} */フィルターCity = Ashburnを適用した場合:
SELECT count(*) FROM VideoActionWHERE actionName = 'QOE_AGGREGATE' AND city = 'Ashburn' SINCE 30 minutes ago UNTIL now例 — 混在する集計を使用した比率クエリ:
FROM VideoActionSELECT filter(sum(elapsedTime), WHERE actionName = 'CONTENT_HEARTBEAT' /* {andWhereClause} */) / filter(uniqueCount(viewId) /* {aggregatorWhereClause} */) AS 'avgWatchTime'TIMESERIESフィルターCity = Ashburnを適用した場合:
FROM VideoActionSELECT filter(sum(elapsedTime), WHERE actionName = 'CONTENT_HEARTBEAT' AND city = 'Ashburn') / filter(uniqueCount(viewId), WHERE city = 'Ashburn') AS 'avgWatchTime'TIMESERIES SINCE 30 minutes ago UNTIL nowアクティブなフィルターがない場合:
FROM VideoActionSELECT filter(sum(elapsedTime), WHERE actionName = 'CONTENT_HEARTBEAT') / uniqueCount(viewId) AS 'avgWatchTime'TIMESERIES SINCE 30 minutes ago UNTIL nowヒント
プレースホルダーは有効なNRQLコメントです — ダッシュボードでフィルターがアクティブになっていない場合でも、Run Queryをクリックすると機能します。
ブロックされたキーワードと文字
偶発的なデータ変更を防ぐため、NRQLエディターは以下を含むクエリを拒否します:
- キーワード
DROP、DELETE、INSERT、UPDATE、CREATE、またはALTER - クエリのチェーンを可能にするセミコロン(
;)
これらのいずれかを含むクエリは検証に失敗し、保存やプレビューができません。
クエリの例
以下の例は、動画および広告監視の一般的なクエリパターンを示しています。それぞれが、そのクエリ構造に適切なフィルタープレースホルダーを使用します。
基本的な時系列 — ビデオの合計開始数:
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(elapsedTime), WHERE actionName = 'CONTENT_HEARTBEAT' /* {andWhereClause} */) / filter(uniqueCount(viewId) /* {aggregatorWhereClause} */) AS 'avgWatchTime'TIMESERIES制限
グローバルフィルターが有効な場合、一部のNRQLクエリパターンはサポートが限定的であるか、未テストです。完全なリストについては、Streaming Video & Adsの制限事項をご覧ください。
カスタムウィジェットを作成する
カスタムウィジェットを作成するには:
- one.newrelic.com > All Capabilities > Streaming Video & Adsに移動し、Video OverviewまたはAds Overviewを選択します。
- Video Quality MetricsまたはAd Quality Metricsセクションまでスクロールダウンします。
- セクションヘッダーの+ Add Custom Widgetをクリックしてください。
- ウィジェットの一意のタイトルを入力してください。
- NRQLエディタでNRQLクエリを記述してください。構文、フィルターのプレースホルダー、例については、上のNRQLクエリの記述をご覧ください。
- ライブデータに対する結果をプレビューするには、Run Queryをクリックします。この操作ではウィジェットは保存されません。プレビューを使用して、チャートが期待どおりのデータをレンダリングすることを確認し、フィルターがアクティブなときにフィルターのプレースホルダーが正しく解決されることを検証し、保存する前に構文エラーや論理エラーを検出してください。
- プレビューが読み込まれると、チャートタイプのピッカーが表示されます。デフォルトはLineです — 必要に応じて別のタイプを選択してください。クエリ結果に推奨されないチャートタイプはグレーアウトして表示される場合がありますが、それでも次のいずれかを選択できます:Billboard、Line、Area、Bar、Table、またはPie。
- Saveをクリックします。New Relicは、メトリクスセレクターのドロップダウンのCustom Metricsセクションにウィジェットを追加し、品質メトリクスグリッドの上部にレンダリングします。ウィジェットはセッション間で保持されます。
ヒント
ウィジェットの利用可否は、作成するビューによって異なります:
全プラットフォームビュー(Video OverviewまたはAds Overview):ウィジェットはアカウントのすべてのユーザーに表示されます。
単一アプリケーションビュー(特定のアプリケーションのページ):ウィジェットはそのアプリケーションに固有のものです。
チャートタイプはビューに依存しません — 設定したチャートタイプは、使用するビューに関係なくすべての閲覧者に適用されます。
カスタムウィジェットを編集する
カスタムウィジェットを編集するには:
- Quality Metricsセクションで、変更するカスタムウィジェットを見つけます。
- ウィジェットカードの鉛筆アイコンをクリックします。既存のタイトルとクエリが事前に入力された状態でエディタが開きます。
- 変更を行い、Run Queryをクリックして確認し、Saveをクリックします。
保存時:
- 元の作成日とウィジェットの識別情報は保持されます。
- ウィジェットは更新されたクエリで直ちに再レンダリングされます。
- タイトルを変更すると、メトリクスセレクタのドロップダウンで更新されます。
カスタムウィジェットを削除する
カスタムウィジェットを削除するには:
- Quality Metricsセクションで、ウィジェットカードのアイコンをクリックします。
- Deleteを選択します。
- プロンプトで確認します:「『[Widget Title]』を削除してもよろしいですか?この操作は元に戻せません。」
削除された場合:
- New Relicはウィジェットを完全に削除します。
- ダッシュボードからウィジェットカードが直ちに削除されます。
- メトリクスセレクターのドロップダウンからタイトルのエントリが削除されます。
- ウィジェットが選択されていた場合、ダッシュボードは自動的にその選択を解除します。
注意
削除は元に戻せません。後で必要になる可能性がある場合は、ウィジェットを削除する前にNRQLクエリをコピーしてください。
トラブルシューティング
以下の症状から該当するものを探してください。問題は、最も一般的なものから順に並んでいます。
ダッシュボードフィルターを適用してもウィジェットが更新されない
クエリにフィルタープレースホルダーがありません。/* {whereClause} */、/* {andWhereClause} */、または/* {aggregatorWhereClause} */がない場合、ウィジェットは常に記述されたとおりにクエリを実行し、ダッシュボードのフィルターバーの選択を無視します。クエリ構造に適切なものを選択するには、フィルタープレースホルダーを参照してください。
フィルターは適用されるが、クエリがエラーを返すかデータを返さない
間違ったプレースホルダーのタイプを使用した可能性があります。確認事項:
- クエリに
WHERE句がない場合は、/* {whereClause} */を使用します。 - クエリレベルですでにクエリに
WHERE句が含まれている場合は、/* {andWhereClause} */を使用してください。 - プレースホルダーが既存の内部
WHEREのないfilter()集計内にある場合は、/* {aggregatorWhereClause} */を使用してください。
誤ったプレースホルダーを使用すると、クエリの実行時に無効なNRQLが生成され、失敗の原因となります。
クエリが検証に失敗するか、保存されない
クエリに、DROP、DELETE、またはセミコロンなどのブロックされたキーワードまたは文字が含まれていないか確認してください。また、クエリが以下の要件を満たしているか確認してください:
- クエリには
SELECT句とFROM句の両方が含まれています。 - エディターのインライン検証で構文エラーが指摘されていないこと。
ウィジェットを保存できません — タイトルがすでに存在します
同じダッシュボードコンテキスト(ビデオまたは広告品質メトリクス)に同じタイトルのウィジェットがすでに存在する場合、保存に失敗し、トースト通知が表示されます:
- タイトル: ウィジェットの保存に失敗しました
- 説明: この名前のウィジェットはすでに存在します
タイトルの照合では大文字と小文字は区別されません — My WidgetとMY WIDGETは同じタイトルとして扱われます。別のタイトルを選択するか、先に既存のウィジェットの名前を変更してください。
ウィジェットは保存されるが、ページを更新すると消える
これは保存の失敗を示している可能性があります。保存時に表示されたトースト通知を確認してください — ネットワークエラーが原因で保存に失敗したかどうかが示されます。保存を再試行してください。問題が解決しない場合は、New Relicアカウントチームにお問い合わせください。
新しいウィジェットを追加できません
このダッシュボードコンテキスト(動画または広告品質メトリクス)の50ウィジェットのソフトリミットに達しました。既存のカスタムウィジェットを少なくとも1つ削除してから、新しいウィジェットを追加してみてください。
「+ カスタムウィジェットを追加」ボタンが表示されません
New Relicがこの機能へのアクセスを制御します。アクセスをリクエストするには、New Relicアカウントチームにお問い合わせください。