Puede administrar la condición de alerta utilizando nuestra API NerdGraph.
Sugerencia
Consulte la introducción a NerdGraph para obtener ayuda para comenzar con NerdGraph y el explorador NerdGraph.
Pasos para crear una condición NRQL
Sigue estos pasos:
Decida qué tipo de condición desea crear (consulte Tipos de umbral de condición NRQL).
Encuentre su
policyID
relevante realizando una de las siguientes acciones:Utilice la API de políticas de NerdGraph.
Vaya a
one.newrelic.com > All capabilities > Alerts & AI > Alert conditions (Policies)
. Elija una póliza. Busque la identificación debajo del nombre de la póliza.
Proporcione la mutación adecuada para su tipo de condición NRQL y los valores relevantes.
Sugerencia
El explorador NerdGraph GraphiQL es el mejor lugar para encontrar documentación actualizada sobre las especificaciones por campo de la API de condiciones NerdGraph NRQL. Por ejemplo, preguntas como "¿Qué acepta el campo valueFunction
?" se responden mejor con la documentación en línea de NerdGraph.
Condición estática de NRQL
A continuación se muestra un ejemplo de cómo crear una condición estática:
mutation { alertsNrqlConditionStaticCreate( accountId: YOUR_ACCOUNT_ID policyId: YOUR_POLICY_ID condition: { name: "Low Host Count - Catastrophic" enabled: true nrql: { query: "SELECT uniqueCount(host) FROM Transaction WHERE appName='my-app-name'" } signal: { aggregationWindow: 60 aggregationMethod: EVENT_FLOW aggregationDelay: 120 } terms: { threshold: 2 thresholdOccurrences: AT_LEAST_ONCE thresholdDuration: 600 operator: BELOW priority: CRITICAL } valueFunction: SINGLE_VALUE violationTimeLimitSeconds: 86400 } ) { id name }}
Condición de línea base NRQL
A continuación se muestra un ejemplo de cómo crear una condición de línea de base:
mutation { alertsNrqlConditionBaselineCreate( accountId: YOUR_ACCOUNT_ID policyId: YOUR_POLICY_ID condition: { name: "Baseline Condition" enabled: true baselineDirection: UPPER_ONLY nrql: { query: "SELECT average(duration) FROM Transaction" } signal: { aggregationWindow: 60 aggregationMethod: EVENT_FLOW aggregationDelay: 120 } terms: { threshold: 13 thresholdDuration: 180 thresholdOccurrences: ALL operator: ABOVE priority: CRITICAL } violationTimeLimitSeconds: 86400 } ) { id name baselineDirection }}
Actualizar una condición
Complete lo siguiente:
Determine el tipo de su condición existente solicitando el campo de tipo en una consulta
nrqlConditionsSearch
como esta:{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlConditionsSearch {nrqlConditions {idtype}}}}}}Sugerencia
El
type
devuelto es lo que usa para su mutación de actualización. Por ejemplo, si el tipo devuelto esSTATIC
, utilicealertsNrqlConditionStaticUpdate
. Si el tipo devuelto esBASELINE
, utilicealertsNrqlConditionBaselineUpdate
.Proporcione el
id
de su condición a la mutación del tipo de condición relevante. Tenga en cuenta que solo puede actualizar condiciones del tipo relevante.
Proporcione únicamente mutaciones de actualización para los campos que desea actualizar. Los campos que no proporcione en la actualización no se modifican.
Actualizar mutaciones
Solo se cambian los campos que usted proporciona en la actualización. En el siguiente ejemplo, baselineDirection
devuelve sin cambios, pero name
está actualizado.
mutation { alertsNrqlConditionBaselineUpdate( id: YOUR_CONDITION_ID accountId: YOUR_ACCOUNT_ID condition: { name: "Your updated name" } ) { id name baselineDirection }}
Listar y filtrar condiciones NRQL
Para enumerar o filtrar sus condiciones NRQL, utilice la consulta nrqlConditionsSearch
en NerdGraph.
Consulta de condición NRQL singular
Puede utilizar la API de condición NRQL para consultar una condición singular. Ejecute la consulta nrqlCondition
en el namespace de alerta.
De manera similar a escribir campos específicos en la consulta nrqlConditionSearch
, también puede usar estos fragmentos en línea para solicitar campos que están restringidos a un tipo de condición NRQL.
{ actor { account(id: YOUR_ACCOUNT_ID) { alerts { nrqlCondition(id: YOUR_CONDITION_ID) { id name ... on AlertsNrqlStaticCondition { valueFunction } } } } }}
Actualiza la descripción
Esto le guiará por el procedimiento para crear una descripción para una condición de alerta NRQL.
Obtenga todas las condiciones para una póliza:
{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlConditionsSearch(searchCriteria: { policyId: YOUR_POLICY_ID }) {nrqlConditions {idnamedescriptionenablednrql {query}signal {aggregationWindowaggregationMethodaggregationDelayaggregationTimer}policyIdrunbookUrlterms {operatorthresholdDurationthresholdprioritythresholdOccurrences}typeviolationTimeLimitSeconds}}}}}}Obtenga los detalles de una sola condición:
{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlCondition(id: "YOUR_CONDITION_ID") {descriptionidenablednamenrql {query}signal {aggregationWindowaggregationMethodaggregationDelayaggregationTimer}policyIdrunbookUrlterms {operatorprioritythresholdthresholdDurationthresholdOccurrences}typeviolationTimeLimitSeconds}}}}}Crea una mutación con la descripción.
Aquí hay una plantilla de mutación vacía:
mutation {alertsNrqlConditionStaticUpdate(accountId: YOUR_ACCOUNT_IDid: "YOUR_CONDITION_ID"condition: { description: "" }) {description}}Aquí hay un ejemplo de mutación con una descripción de ejemplo incluida:
mutation {alertsNrqlConditionStaticUpdate(accountId: 123456id: "123456"condition: {description: "timestamp : {{timestamp}} \n accountId : {{accountId}} \n type : {{type}} \n event : {{event}} \n description : {{description}} \n policyId : {{policyId}} \n policyName: {{policyName}} \n conditionName : {{conditionName}} \n conditionId : {{conditionId}} \n product : {{product}} \n conditionType : {{conditionType}} \n RunbookUrl : {{runbookUrl}} \n nrqlQuery : {{nrqlQuery}} \n nrqlEventType : {{nrqlEventType}} \n targetID : {{targetId}} \n targetName : {{targetName}} \n commandLine : {{tag.commandLine}} \n entityGuid : {{tag.entityGuid}} \n entityName : {{tag.entityName}} \n fullHostname : {{tag.fullHostname}} \n instanceType : {{tag.instanceType}} \n processDisplayName : {{tag.processDisplayName}}"}) {description}}
Eliminar condiciones
Puede utilizar la mutación alertsConditionDelete
para eliminar cualquier tipo de condición. Solo puede solicitar el campo id
en una mutación de eliminación; Por ejemplo:
mutation { alertsConditionDelete(accountId: YOUR_ACCOUNT_ID, id: YOUR_CONDITION_ID) { id }}