Puede utilizar la consulta NRQL para crear una condición de alerta. Una vez que haya definido su señal, puede definir aún más sus niveles de umbral crítico y de advertencia. Esto determina cuándo se crea un incidente de alerta. Para obtener más información sobre conceptos clave relacionados con NRQL condición de alerta y alerta de transmisión, consulte Alerta de transmisión: términos y conceptos clave.
Crear una condición de alerta NRQL a partir de una política
Vaya a one.newrelic.com > All capabilities > Alerts > Alert Conditions & Policies para crear una condición de alerta NRQL a partir de una política. Luego, haga clic en + New alert condition.
Vaya a one.newrelic.com > All capabilities > Alerts > Alert Conditions & Policies > + New alert condition.
Sigue estos pasos.
Crear una condición a partir de un gráfico
La mayoría de nuestros gráficos, con excepción de algunos más antiguos, le permiten crear una condición a partir de ellos.
Para crear una condición de alerta NRQL a partir de un gráfico:
Vaya a one.newrelic.com > All capabilities > APM & Services y seleccione una aplicación.
En el panel izquierdo, seleccione Metrics explorer y agregue su configuración.
En la esquina derecha del gráfico, haga clic en icono y seleccione Create alert condition.
Siga los pasos explicados en Crear una condición de alerta NRQL a partir de una política , pero tenga en cuenta que el paso 1 es un poco diferente porque, ahora, la consulta se crea con los datos que configuró previamente.
Sintaxis de alerta NRQL
Aquí está la sintaxis básica para crear todas las condiciones de alerta NRQL.
SELECT function(attribute) FROM Event WHERE attribute [comparison] [AND|OR ...]
Clause | Notes |
---|---|
Required | Las funciones admitidas que devuelven números incluyen:
|
Required | Se pueden apuntar múltiples tipos de datos . Tipos de datos admitidos:
|
| Utilice la cláusula |
| Incluya una cláusula Utilice la cláusula La consulta facetada puede devolver un máximo de 5000 valores para condiciones estáticas y anormales . ImportanteSi la consulta devuelve más que el número máximo de valores, no se puede crear la condición de alerta. Si crea la condición y la consulta devuelve más que este número más adelante, la alerta fallará. Modifique su consulta para que devuelva una menor cantidad de valores. |
Reformatear NRQL incompatible
Algunos elementos de NRQL utilizados en los gráficos no tienen sentido en el contexto de la alerta de transmisión. A continuación se incluye una lista de los elementos incompatibles más comunes y sugerencias para reformatear una consulta de alerta NRQL para lograr el mismo efecto.
Element | Notes |
---|---|
| Ejemplo:
Las condiciones NRQL producen un flujo interminable de resultados de consulta en ventanas, por lo que las palabras clave |
| En la consulta NRQL, la cláusula Para condiciones NRQL y si no se utiliza la agregación de ventana deslizante, la propiedad equivalente a |
| La función de agregación
|
| Estas funciones aún no son compatibles con las alertas NRQL. |
Múltiples funciones de agregación | Cada condición sólo puede tener como objetivo un único valor agregado. Para alertar sobre varios valores simultáneamente, deberá descomponerlos en condiciones individuales dentro de la misma política. Consulta original:
Descompuesto:
|
| La cláusula |
| La cláusula Puede habilitar ventanas deslizantes en la UI. Al crear o editar una condición, vaya a Adjust to signal behavior > Data aggregation settings > Use sliding window aggregation. Por ejemplo, para crear una condición de alerta equivalente a
Utilizaría una ventana de agregación de datos con una duración de 5 minutos, con una ventana de agregación deslizante de 1 minuto. |
| En NRQL consulta, la cláusula
|
Subconsultas | Las subconsultas no son compatibles con la transmisión porque su ejecución requiere múltiples pases a través de los datos. |
Subconsultas JOIN | Las UNIONES de subconsulta no son compatibles con la alerta de transmisión porque la ejecución de la subconsulta requiere múltiples pases a través de los datos. |
Ejemplos de umbrales de alerta NRQL
A continuación se muestran algunos casos de uso comunes para condiciones NRQL. Estas consultas funcionarán para tipos de condiciones estáticas y anormales.
Condiciones NRQL y orden de consulta de operaciones.
De forma predeterminada, la duración de la ventana de agregación es de 1 minuto, pero puede cambiar la ventana para adaptarla a sus necesidades. Cualquiera que sea la ventana de agregación, New Relic recopilará datos para esa ventana utilizando la función en la consulta de la condición NRQL. Nuestros sistemas analizan y ejecutan la consulta en el siguiente orden:
FROM
cláusula. ¿Qué tipo de evento es necesario capturar?WHERE
cláusula. ¿Qué se puede filtrar?SELECT
cláusula. ¿Qué información debe devolverse del conjunto de datos ahora filtrado?
Ejemplo: valor nulo devuelto
Digamos que esta es su consulta de condición de alerta:
SELECT count(*) FROM SyntheticCheck WHERE monitorName = 'My Cool Monitor' AND result = 'FAILED'
Si no hay errores en la ventana de agregación:
- El sistema ejecutará la cláusula
FROM
capturando todos los eventosSyntheticCheck
de su cuenta. - Luego ejecutará la cláusula
WHERE
para filtrar esos eventos buscando solo los que coincidan con el nombre del monitor y el resultado especificado. - Si aún quedan eventos por analizar después de completar las operaciones
FROM
yWHERE
, se ejecutará la cláusulaSELECT
. Si no queda ningún evento restante, la cláusulaSELECT
no se ejecutará.
Esto significa que agregadores como count()
y uniqueCount()
nunca devolverán un valor cero. Cuando hay un recuento de 0, la cláusula SELECT
se ignora y no se devuelven datos, lo que da como resultado un valor de NULL
.
Ejemplo: valor cero devuelto
Si tiene una fuente de datos que proporciona ceros numéricos legítimos, la consulta devolverá valores cero y no valores nulos.
Digamos que esta es su consulta de condición de alerta y que MyCoolEvent
es un atributo que a veces puede devolver un valor cero.
SELECT average(MyCoolAttribute) FROM MyCoolEvent
Si, en la ventana de agregación que se está evaluando, hay al menos una instancia de MyCoolEvent
y si el valor promedio de todos los atributos MyCoolAttribute
de esa ventana es igual a cero, entonces se devolverá un valor 0
. Si no hay ningún evento MyCoolEvent
durante ese minuto, entonces se devolverá un NULL
debido al orden de las operaciones.
Ejemplo: valor nulo versus cero devuelto
Para determinar cómo se manejarán los valores nulos, ajuste la configuración de pérdida de señal y llenado de espacios en la UI de condición de alerta.
Puede evitar NULL
valores por completo con un acceso directo de consulta de orden de operaciones. Para hacer esto, use una subcláusula filter
y luego incluya todos los elementos de filtro dentro de esa subcláusula. El cuerpo principal de la consulta debe incluir una cláusula WHERE
que defina al menos una entidad de modo que, para cualquier ventana de agregación donde el monitor realice una verificación, la señal estará vinculada a esa entidad. Luego, la cláusula SELECT
se ejecutará y aplicará los elementos de filtro a los datos devueltos por el cuerpo principal de la consulta, que devolverá un valor de 0
si los elementos de filtro no dan como resultado datos coincidentes.
A continuación se muestra un ejemplo para alertar sobre FAILED
resultados:
SELECT filter(count(*), WHERE result = 'FAILED') FROM SyntheticCheck WHERE monitorName = 'My Favorite Monitor'
En este ejemplo, una ventana con un resultado exitoso devolvería un 0
, lo que permitiría que el umbral de la condición se resuelva por sí solo.
Para obtener más información, consulte nuestra publicación de blog sobre resolución de problemas para valores cero versus valores nulos.
Alerta NRQL de agregación anidada
Las consultas de agregación anidadas son una forma poderosa de consultar sus datos. Sin embargo, tienen algunas restricciones que es importante tener en cuenta.
Consejos para la creación de condiciones NRQL
A continuación se ofrecen algunos consejos para crear y utilizar una condición NRQL:
Tema | Consejos |
---|---|
Tipos de condición | Los tipos de condiciones NRQL incluyen estática y anomalía. |
Crear una descripción | Para las condiciones NRQL, puede crear una descripción personalizada para agregar a cada incidente. Las descripciones se pueden mejorar con sustitución de variables basadas en metadatos del incidente específico. |
Resultados de la consulta | Consulta debe devolver un número. La condición evalúa el número devuelto frente al umbral que ha establecido. |
Periodo de tiempo | Las condiciones NRQL evalúan los datos según cómo se agregan, utilizando ventanas de agregación de 30 segundos a 120 minutos, en incrementos de 15 segundos. Para obtener mejores resultados, recomendamos utilizar los métodos de agregación de flujo de eventos o temporizador de eventos. Para el método de agregación de cadencia, la cláusula
|
Umbral de señal perdida (pérdida de detección de señal) | Puede utilizar la detección de pérdida de señal para alertar sobre cuándo sus datos (una señal de telemetría) deben considerarse perdidos. Una pérdida de señal puede indicar que un servicio o entidad ya no está en línea o que no se pudo ejecutar un trabajo periódico. También puede usar esto para asegurarse de que los incidentes de datos esporádicos, como recuentos de errores, se cierren cuando no llega ninguna señal. |
Configuración de señal avanzada | Estas configuraciones le brindan opciones para manejar mejor las señales de transmisión continua de datos que a veces pueden faltar. Estas configuraciones incluyen la duración de la ventana de agregación, el retraso/temporizador y una opción para llenar los vacíos de datos. Para obtener más información sobre su uso, consulte Configuración de señal avanzada. |
Configuración de condiciones | Utilice el Condition settings para:
|
Límites de las condiciones | Ver los valores máximos. |
Estado de salud | Para que una visualización de estado de salud de condición de alerta NRQL funcione correctamente, la consulta debe tener como alcance una sola entidad. Para hacer esto, use una cláusula WHERE (por ejemplo, |
Ejemplos | Para más información, ver: |
Gestión de etiquetas en condiciones.
Cuando edita una condición NRQL existente, tiene la opción de agregar o eliminar la etiqueta asociada con la entidad de condición. Para hacer esto, haga clic en el botón Manage tags debajo del nombre de la condición. En el menú que aparece, agregue o elimine una etiqueta.
Las ediciones de condiciones pueden restablecer la evaluación de condiciones
Cuando edita la condición de alerta NRQL de algunas maneras específicas (que se detallan a continuación), sus evaluaciones se restablecen, lo que significa que cualquier evaluación hasta ese punto se pierde y la evaluación comienza de nuevo desde ese punto. Las dos formas en que esto le afectará son:
- Para el umbral "durante al menos x minutos": debido a que la ventana de evaluación se ha restablecido, habrá un retraso de al menos x minutos antes de que se pueda informar cualquier incidente.
- Para condiciones de anomalía: la condición comienza de nuevo y se pierde todo el aprendizaje de anomalías.
Las siguientes acciones provocan un restablecimiento de la evaluación de las condiciones NRQL:
- Cambiando la consulta
- Cambiar la ventana de agregación, el método de agregación o la configuración del temporizador/retardo de agregación
- Cambiar la configuración de "incidente cercano en pérdida de señal"
- Cambiar cualquier configuración de relleno de huecos
- Cambiar la dirección de la anomalía (si corresponde): superior, inferior o superior/inferior
- Cambiar el valor de umbral, la ventana de umbral o el operador de umbral
- Cambiar el intervalo de deslizamiento (solo en condiciones de agregación de ventanas deslizantes )
Las siguientes acciones (junto con cualquier otra acción no cubierta en la lista anterior) no restablecerán la evaluación:
- Cambiar la ventana de tiempo de pérdida de señal (duración de vencimiento)
- Cambiar la función de tiempo (cambiar "al menos" a "al menos una vez", o viceversa)
- Alternar la configuración "abrir incidente en caso de pérdida de señal"
Tipos de condición de alerta
Cuando crea una alerta NRQL, puede elegir entre diferentes tipos de condiciones:
Tipos de condición de alerta NRQL | Descripción |
---|---|
Estático | Este es el tipo más simple de condición NRQL. Le permite crear una condición basada en una consulta NRQL que devuelve un valor numérico. Opcional: incluya una cláusula |
anomalía (anomalía dinámica) | Utiliza una condición de autoajuste basada en el comportamiento pasado de los valores del monitor. Utiliza el mismo formulario de consulta NRQL que el tipo estático, incluida la cláusula opcional |
Establecer el umbral de pérdida de señal
Importante
La característica de pérdida de señal requiere que haya una señal presente antes de que pueda detectar que la señal se ha perdido. Si habilita una condición mientras no hay señal presente, no se detectará ninguna pérdida de señal y la característica de pérdida de señal no se activará.
La pérdida de señal ocurre cuando ningún dato coincide con la condición NRQL durante un período de tiempo específico. Puede establecer la duración del umbral de pérdida de señal y también qué sucede cuando se cruza el umbral.
Vaya a one.newrelic.com > All capabilities > Alerts > Alert conditions (Policies) y luego + New alert condition. La pérdida de señal solo está disponible para condiciones NRQL.
También puede administrar estas configuraciones utilizando la API GraphQL (recomendada) o la API REST. Vaya aquí para ver ejemplos específicos de API GraphQL.
Loss of signal settings:
La configuración de pérdida de señal incluye una duración de tiempo y dos acciones posibles.
Signal loss expiration time
Etiqueta UI :
Signal is lost after:
Nodo GraphQL: expiration.expirationDuration
La duración de la caducidad es un temporizador que se inicia y se reinicia cuando recibimos un punto de datos en el canal de alerta de transmisión. Si no recibimos otro punto de datos antes de que expire su 'tiempo de vencimiento', consideramos que esa señal se perdió. Esto puede deberse a que no se envían datos a New Relic o a que la cláusula
WHERE
de su consulta NRQL filtra esos datos antes de transmitirlos al canal de alerta. Tenga en cuenta que cuando tiene una consulta por facetas, cada faceta es una señal. Entonces, si alguna de esas señales finaliza durante la duración especificada, se considerará una pérdida de señal.La pérdida del tiempo de vencimiento de la señal es independiente de la duración del umbral y se activa tan pronto como expira el temporizador.
La duración máxima de caducidad es de 48 horas. Esto es útil cuando se monitorea la ejecución de trabajos poco frecuentes. El mínimo son 30 segundos, pero recomendamos utilizar al menos 3-5 minutos.
Loss of signal actions
Una vez que se considera perdida una señal, puede cerrar un incidente abierto, abrir un incidente nuevo o ambos.
- Cerrar todos los incidentes abiertos actuales: Cierra todos los incidentes abiertos que estén relacionados con una señal específica. No necesariamente cerrará todos los incidentes por una condición. Si está alertando sobre un servicio efímero o sobre una señal esporádica, querrá elegir esta acción para asegurarse de que el incidente se cierre correctamente. El nombre del nodo GraphQL para esto es "closeViolationsOnExpiration"
- Abrir nuevo incidente: Esto abrirá un nuevo incidente cuando la señal se dé por perdida. Estas incidencias nos indicarán que se deben a una pérdida de señal. Según sus preferencias de incidentes, esto debería generar una notificación. El nombre del nodo GraphQL para esto es "openViolationOnExpiration"
- Cuando habilita ambas acciones, primero cerraremos todos los incidentes abiertos y luego abriremos un nuevo incidente por pérdida de señal.
Para crear una alerta NRQL configurada con pérdida de detección de señal en la UI:
Para una política, cuando crea una condición, en
Select a product
, haga clic en
NRQL
y luego haga clic en
Next, define thresholds
.
Escriba una consulta NRQL que devuelva los valores sobre los que desea alertar.
Para
Threshold type
, seleccione
Static
o
Anomaly
.
Haga clic en
+ Add lost signal threshold
y luego establezca el tiempo de duración de vencimiento de la señal en minutos o segundos en el campo
Consider the signal lost after
.
Elige lo que quieres que suceda cuando se pierda la señal. Puede marcar uno o ambos de
Close all current open incidents
y
Open new "lost signal" incident
. Estos controlan cómo se manejará el incidente de pérdida de señal para la condición.
Asegúrese de nombrar su condición antes de guardarla.
Incidente apertura por pérdida de señal cierre cuando:
la señal vuelve. El incidente de señal perdida recién abierto se cerrará inmediatamente cuando se evalúen nuevos datos.
expira la condición a la que pertenecen. De forma predeterminada, las condiciones caducan después de 3 días.
cierras manualmente el incidente con la opción
Close all current open incidents
.
Sugerencia
La detección de pérdida de señal no funciona en consultas NRQL que utilizan agregación anidada o subconsultas.
Configuración de señal avanzada
Al crear una condición de alerta NRQL, utilice la configuración de señal avanzada para controlar la transmisión de datos de alerta y evitar falsas alarmas.
Al crear una condición NRQL, existen varias configuraciones de señal avanzadas:
- Duración de la ventana de agregación
- Agregación de ventanas deslizantes
- Método de transmisión
- Temporizador de retardo
- Llenar lagunas de datos
- Retraso en la evaluación
Para leer una explicación de qué son estas configuraciones y cómo se relacionan entre sí, consulte Conceptos de alertas de transmisión. A continuación encontrará instrucciones y consejos sobre cómo configurarlos.
Duración de la ventana de agregación
Puede configurar la duración de la ventana de agregación para elegir cuánto tiempo se acumulan los datos en una ventana de tiempo de transmisión antes de agregarlos. Puede configurarlo entre 30 segundos y 120 minutos. El valor predeterminado es un minuto.
Agregación de ventanas deslizantes
Puede utilizar ventanas deslizantes para crear gráficos más fluidos. Esto se hace creando ventanas de datos superpuestas.
Aprenda cómo configurar ventanas corredizas en este breve video (2:30 minutos):
Una vez habilitado, configure el "intervalo de diapositiva por" para controlar cuánto tiempo de superposición tienen sus ventanas agregadas. El intervalo debe ser más corto que la ventana de agregación y al mismo tiempo dividirse uniformemente en ella.
Importante
Inmediatamente después de crear una nueva condición de alerta de ventanas deslizantes o realizar cualquier acción que pueda provocar un restablecimiento de la evaluación, su condición necesitará tiempo para crear un "búfer agregado" durante la primera ventana de agregación. Durante ese tiempo no se producirá ningún incidente. Una vez que haya pasado esa única ventana de agregación, se habrá creado un "búfer" completo y la condición funcionará normalmente.
Método de transmisión
Elija entre tres métodos de agregación de transmisión para obtener los mejores resultados de evaluación para sus condiciones.
Temporizador de retardo
Puede ajustar el retraso/temporizador para coordinar nuestro algoritmo de alerta de transmisión con el comportamiento de sus datos. Si sus datos son escasos o inconsistentes, es posible que desee utilizar el método de agregación del temporizador de eventos.
Para el método de cadencia, la latencia total admitida es la suma de la duración de la ventana de agregación y el retraso.
Si el tipo de datos proviene de un agente de lenguaje APM y se agrega desde muchas instancias de aplicación (por ejemplo, Transactions
, TransactionErrors
, etc.), recomendamos usar el método de flujo de eventos con la configuración predeterminada.
Importante
Al crear condiciones NRQL para datos recopilados de Infraestructura integrada en la nube como AWS CloudWatch o Azure, le recomendamos que utilice el método de temporizador de eventos.
Llenar lagunas de datos
El relleno de espacios le permite personalizar los valores que utilizará cuando sus señales no tengan ningún dato. Puede llenar los vacíos en sus flujos de datos con una de estas configuraciones:
None
: (Predeterminado) Elija esto si no desea realizar ninguna acción en ventanas de agregación vacías. Durante la evaluación, una ventana de agregación vacía restablecerá el temporizador de duración del umbral. Por ejemplo, si una condición dice que todas las ventanas de agregación deben tener puntos de datos por encima del umbral durante 5 minutos y 1 de las 5 ventanas de agregación está vacía, entonces la condición no será un incidente.
Custom static value
: elija esto si desea insertar un valor estático personalizado en las ventanas de agregación vacías antes de que se evalúen. Esta opción tiene un parámetro obligatorio adicional de
fillValue
(como se nombra en la API) que especifica qué valor estático se debe usar. El valor predeterminado es0
.Last known value
: Esta opción inserta el último valor visto antes de que se produzca la evaluación. Mantenemos el estado del último valor visto durante un mínimo de 2 horas. Si la duración del umbral configurado es superior a 2 horas, este valor se mantiene durante esa duración.
Sugerencia
El sistema de alerta llena los vacíos en las señales reportadas activamente. Este historial de señales se elimina después de un período de inactividad y, para llenar los espacios, los puntos de datos recibidos después de este período de inactividad se tratan como señales nuevas. La duración de la inactividad es de 2 horas o la duración del umbral configurado, lo que sea mayor.
Para obtener más información sobre la pérdida de señal, el llenado de espacios y cómo solicitar acceso a estas características, consulte esta publicación del Foro de soporte.
Opciones para editar la configuración de la brecha de datos:
En la UI de condiciones NRQL, vaya a
Condition settings > Advanced signal settings > fill data gaps with
y elija una opción.
Si utiliza nuestra API Nerdgraph (preferida), este nodo se encuentra en:
actor : account : alerts : nrqlCondition : signal : fillOption | fillValue
NerdGraph es nuestra API recomendada para esto, pero si está utilizando nuestra API REST, puede encontrar esta configuración en el explorador de API REST en la sección
"signal"
Retraso en la evaluación
Puede habilitar el indicador Use evaluation delay
y configurar hasta 120 minutos para retrasar la evaluación de las señales entrantes.
Cuando se implementan nuevas entidades por primera vez, la utilización de recursos en la entidad suele ser inusualmente alta. En entornos de escala automática, esto puede crear fácilmente muchas alertas falsas. Al retrasar el inicio de la detección de alertas en señales emitidas por una nueva entidad, puede reducir significativamente la cantidad de falsas alarmas asociadas con el despliegue en entornos orquestados o de escala automática.
Opciones para habilitar el retraso de la evaluación:
En la UI de condiciones NRQL, vaya a
Adjust to signal behavior > Use evaluation delay
.
Si utiliza nuestra API Nerdgraph, este nodo se encuentra en:
actor : account : alerts : nrqlCondition : signal : evaluationDelay