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
policyIDrelevante 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
nrqlConditionsSearchcomo esta:{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlConditionsSearch {nrqlConditions {idtype}}}}}}Sugerencia
El
typedevuelto 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
idde 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  }}