Vous pouvez gérer les conditions d'alerte à l'aide de notre API NerdGraph.
Conseil
Consultez l’ introduction de NerdGraph pour obtenir de l’aide sur la mise en route de NerdGraph et de l’explorateur NerdGraph.
Étapes pour créer une condition NRQL
Suivez ces étapes :
Décidez quel type de condition vous souhaitez créer (voir Types de seuil de condition NRQL).
Trouvez votre
policyID
pertinent en effectuant l'une des opérations suivantes :- Utilisez l'API des politiques NerdGraph.
- Allez à one.newrelic.com > All capabilities > Alerts > Alert conditions (Policies). Choisissez une politique. Recherchez l’ID sous le nom de la politique.
Fournissez la mutation appropriée pour votre type de condition NRQL et les valeurs pertinentes.
Conseil
L'explorateur NerdGraph GraphiQL est le meilleur endroit pour trouver une documentation à jour sur les spécificités par champ de l'API NerdGraph NRQL Conditions. Par exemple, des questions telles que « Qu'accepte le champ valueFunction
? » trouvent une meilleure réponse dans la documentation NerdGraph en ligne.
Condition statique NRQL
Voici un exemple de création d’une condition statique :
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 }}
Condition de base de référence NRQL
Voici un exemple de création d'une condition de base de référence :
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 }}
Créer une alerte inter-comptes
Voici un exemple de création d’une condition statique :
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'" dataAccountId: YOUR_DATA_ACCOUNT_ID } signal: { aggregationWindow: 60 aggregationMethod: EVENT_FLOW aggregationDelay: 120 } terms: { threshold: 2 thresholdOccurrences: AT_LEAST_ONCE thresholdDuration: 600 operator: BELOW priority: CRITICAL } violationTimeLimitSeconds: 86400 } ) { id name }}
Mettre à jour une condition
Complétez les éléments suivants :
Déterminez le type de votre condition existante en demandant le champ type dans une requête
nrqlConditionsSearch
comme ceci :{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlConditionsSearch {nrqlConditions {idtype}}}}}}Conseil
Le
type
renvoyé est ce que vous utilisez pour votre mutation de mise à jour. Par exemple, si le type renvoyé estSTATIC
, utilisezalertsNrqlConditionStaticUpdate
. Si le type renvoyé estBASELINE
, utilisezalertsNrqlConditionBaselineUpdate
.Fournissez le
id
de votre condition à votre mutation de type de condition pertinente. Notez que vous ne pouvez mettre à jour que les conditions du type concerné.
Fournissez uniquement des mutations de mise à jour pour les champs que vous souhaitez mettre à jour. Les champs que vous ne fournissez pas dans la mise à jour ne sont pas touchés.
Mettre à jour les mutations
Seuls les champs que vous fournissez dans la mise à jour sont modifiés. Dans l'exemple suivant, baselineDirection
renvoie inchangé, mais name
est mis à jour.
mutation { alertsNrqlConditionBaselineUpdate( id: YOUR_CONDITION_ID accountId: YOUR_ACCOUNT_ID condition: { name: "Your updated name" } ) { id name baselineDirection }}
Lister et filtrer les conditions NRQL
Pour répertorier ou filtrer vos conditions NRQL, utilisez la requête nrqlConditionsSearch
dans NerdGraph.
Requête de condition NRQL singulière
Vous pouvez utiliser l'API de condition NRQL pour interroger une condition singulière. Exécutez la requête nrqlCondition
dans l'espace de nommage des alertes.
Similaires aux champs de type spécifiques sur la requête nrqlConditionSearch
, vous pouvez également utiliser ces fragments en ligne pour demander des champs limités à un type de condition NRQL.
{ actor { account(id: YOUR_ACCOUNT_ID) { alerts { nrqlCondition(id: YOUR_CONDITION_ID) { id name ... on AlertsNrqlStaticCondition { valueFunction } } } } }}
Mettre à jour la description
Cela vous guidera tout au long de la procédure de création d’une description pour une condition d’alerte NRQL.
Obtenez toutes les conditions pour une politique :
{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlConditionsSearch(searchCriteria: { policyId: YOUR_POLICY_ID }) {nrqlConditions {idnamedescriptionenablednrql {query}signal {aggregationWindowaggregationMethodaggregationDelayaggregationTimer}policyIdrunbookUrlterms {operatorthresholdDurationthresholdprioritythresholdOccurrences}typeviolationTimeLimitSeconds}}}}}}Obtenez les détails pour une seule condition :
{actor {account(id: YOUR_ACCOUNT_ID) {alerts {nrqlCondition(id: "YOUR_CONDITION_ID") {descriptionidenablednamenrql {query}signal {aggregationWindowaggregationMethodaggregationDelayaggregationTimer}policyIdrunbookUrlterms {operatorprioritythresholdthresholdDurationthresholdOccurrences}typeviolationTimeLimitSeconds}}}}}Créez une mutation avec la description.
Voici un modèle de mutation vide :
mutation {alertsNrqlConditionStaticUpdate(accountId: YOUR_ACCOUNT_IDid: "YOUR_CONDITION_ID"condition: { description: "" }) {description}}Voici un exemple de mutation avec une description d'exemple incluse :
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}}
Supprimer les conditions
Vous pouvez utiliser la mutation alertsConditionDelete
pour supprimer tout type de condition. Vous ne pouvez demander que le champ id
lors d'une mutation de suppression ; par exemple :
mutation { alertsConditionDelete(accountId: YOUR_ACCOUNT_ID, id: YOUR_CONDITION_ID) { id }}