Los widgets personalizados le permiten ampliar el dashboard de Media Streaming con visualizaciones de gráficos a medida creadas a partir de sus propias consultas NRQL. Los widgets personalizados aparecen en el desplegable Quality Metrics junto a las métricas predefinidas, en una categoría Custom Metrics separada. Persisten en todas las sesiones y se escalan dentro del dashboard existente.
Importante
Cada cuenta admite un límite flexible de 50 widgets personalizados. Este límite se basa en la capacidad de NerdStorage. Si lo alcanza, elimine un widget personalizado existente antes de agregar uno nuevo.
Antes de que empieces
Los widget personalizados se crean desde dentro del nerdpack de Media Streaming. Necesita acceso a una cuenta de New Relic con el agente de Streaming Video & Ads instalado. Consulte Instalar el agente de Streaming Video & Ads si aún no lo ha configurado.
Crear un widget personalizado
- Abra el dashboard de Media Streaming y navegue hasta la sección Quality Metrics.
- Haga clic en + Add Custom Widget.
- Ingrese un título para el widget.
- Escribe tu consulta NRQL en el editor de NRQL. Consulta Escribir consultas para obtener orientación sobre la sintaxis, los marcadores de posición de filtro y ejemplos.
- Haga clic en Run Query para obtener una vista previa de los resultados antes de guardar.
- Haga clic en Save. El widget se agrega a la sección Custom Metrics del desplegable Quality Metrics y se renderiza en el dashboard.
Escribir consultas
El editor de NRQL acepta cualquier consulta NRQL SELECT o FROM válida. Escribe tu consulta completa directamente en el editor — el editor proporciona resaltado de sintaxis, autocompletado y validación en tiempo real.
Requisitos de la consulta
- La consulta debe comenzar con
SELECToFROMy contener ambas cláusulas. - No incluya una cláusula
SINCEoUNTILcodificada de forma rígida. El selector de tiempo del dashboard inyecta el rango de tiempo automáticamente en el momento de la ejecución. - Para responder a las selecciones de la barra de filtros a nivel del dashboard, incluya un marcador de posición de filtro en su consulta.
Marcador de posición de filtro
Los marcadores de posición de filtro son tokens de comentarios de NRQL que se reemplazan en tiempo de ejecución con las condiciones de filtro aplicadas en la barra de filtros del dashboard. Agréguelos manualmente a su consulta.
| Marcador de posición | Cuándo usar |
|---|---|
/* {whereClause} */ | Su consulta no tiene una cláusula WHERE existente. El marcador de posición se reemplaza con una condición WHERE ... completa. |
/* {andWhereClause} */ | Tu consulta ya tiene una cláusula WHERE . El marcador de posición se agrega como una condición AND ... adicional. |
/* {aggregatorWhereClause} */ | Dentro de una función filter() que ya contiene una cláusula WHERE. Agrega una condición AND ... adicional dentro del alcance del agregador. |
Ejemplo — sin cláusula WHERE existente:
SELECT uniqueCount(viewId) AS 'Total Views'FROM VideoAction /* {whereClause} */TIMESERIESCuando un filtro para asn = '14618' está activo:
SELECT uniqueCount(viewId) AS 'Total Views'FROM VideoAction WHERE asn = '14618'TIMESERIES SINCE 30 minutes ago UNTIL nowEjemplo — cláusula WHERE existente:
SELECT count(*) AS 'Error Count'FROM VideoErrorAction, VideoActionWHERE actionName = 'CONTENT_ERROR' /* {andWhereClause} */TIMESERIESEjemplo — filtro dentro de una función de agregador:
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'TIMESERIESSugerencia
Cuando un filtro está activo en la barra de filtros del dashboard, los tres tipos de marcadores de posición se resuelven en las mismas condiciones de filtro subyacentes — la diferencia es solo sintáctica, para producir un NRQL válido según la estructura de su consulta.
Palabras clave y caracteres bloqueados
Para evitar la modificación accidental o maliciosa de datos, lo siguiente está bloqueado en el editor de NRQL:
Palabras clave bloqueadas:
DROPDELETEINSERTUPDATECREATEALTER
Caracteres bloqueados:
- Punto y coma (
;) — bloqueado para evitar la cadena de consulta o el ataque de inyección.
Las consultas que contengan cualquiera de estos fallarán la validación y no se podrán guardar ni previsualizar.
Ejemplos de consulta
Serie temporal básica — inicios totales de video:
SELECT count(*) AS 'Video Starts'FROM VideoActionWHERE actionName = 'CONTENT_START' /* {andWhereClause} */TIMESERIESRecuento de espectadores únicos con integración de filtros:
SELECT uniqueCount(viewId) AS 'Unique Viewers'FROM VideoAction /* {whereClause} */TIMESERIESTasa de errores en todos los tipos de evento:
SELECT count(*) AS 'Error Count'FROM VideoErrorAction, VideoActionWHERE actionName = 'CONTENT_ERROR' /* {andWhereClause} */TIMESERIESTasa de recarga de búfer inducida por la conexión (avanzado):
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'TIMESERIESPara obtener más inspiración para consultas, consulte el Diccionario de datos de métricas de tasa de bits para ver ejemplos de NRQL prediseñados que usan VideoAction y VideoErrorAction.
Vista previa de un widget
Haga clic en Run Query antes de guardar para ejecutar la consulta con datos en vivo y ver un gráfico renderizado. Esto no guarda el widget.
Use la previsualización para:
- Confirme que el gráfico renderiza los datos que espera.
- Verifique que los marcadores de posición de filtro se resuelvan correctamente cuando un filtro está activo en la barra de filtros.
- Detecte errores de sintaxis o lógica antes de que el widget se confirme en el dashboard.
Editar un widget personalizado
- En la sección Quality Metrics, ubique el widget personalizado que desea cambiar.
- Haga clic en el icono de lápiz en la tarjeta del widget.
- El editor se abre en modo de edición con todos los campos rellenados previamente — título y consulta NRQL existente.
- Realiza tus cambios, haz clic en Run Query para verificar y luego haz clic en Save.
Al guardar:
- El timestamp
updatedAtse actualiza; elcreatedAtoriginal y el widgetidse conservan. - El widget se vuelve a renderizar inmediatamente con la consulta actualizada.
- Si cambió el título, se actualiza en el desplegable de métricas de calidad.
Eliminar un widget personalizado
- En la sección Quality Metrics, haga clic en el icono en la tarjeta del widget.
- Seleccione Delete.
- Confirma en el símbolo: "¿Estás seguro de que deseas eliminar '[Título del widget]'? Esta acción no se puede deshacer."
Cuando se elimina:
- El widget se elimina de NerdStorage y desaparece permanentemente.
- La tarjeta del widget se elimina inmediatamente del dashboard.
- El título se elimina del desplegable de métricas de calidad.
- Si el widget estaba seleccionado, se deselecciona automáticamente.
Advertencia
La eliminación es permanente. Copie su consulta NRQL antes de eliminar un widget si es posible que la necesite más adelante.
Límite de widget
El límite flexible de 50 widgets por cuenta se basa en la capacidad de documentos de NerdStorage. Con 50 widgets, el uso de almacenamiento es de aproximadamente 21 KB — alrededor del 33 % del límite de 64 KB por documento, lo que proporciona un margen seguro.
Si alcanza el límite, la creación de widgets se bloquea hasta que se elimine un widget personalizado existente. Los widgets existentes siguen funcionando normalmente.