Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
Utilisez l’API REST d’infrastructure pour ajouter, mettre à jour, supprimer et répertorier les conditions d’alerte. Vous pouvez également gérer des conditions d'alerte individuelles à l'aide de l'interface utilisateur de monitoring de l'infrastructure.
Les appels d'API REST pour les alertes infrastructure ne sont pas disponibles dans l' explorateur d'API.
Pourquoi utiliser l'API
Exemples
Cohérence
Définissez le même ensemble de conditions pour chaque cluster sans avoir à configurer des conditions identiques dans l’interface utilisateur de l’infrastructure à chaque fois.
Gérez rapidement plusieurs conditions, sans avoir à les mettre à jour une par une à l'aide de l'UI.
Flexibilité
Créez des conditions pour un groupe arbitraire d’hôtes.
Désactiver ou supprimer les conditions pour les hôtes mis hors ligne à tout moment.
Créez une condition avec filtrage d’exclusion (par instance, environment NOT LIKE x). Pour en savoir plus, consultez cet article sur le filtrage d’exclusion.
Pour l'intégration cloud AWS, sélectionnez l'attribut qui n'a pas encore été envoyé par AWS.
Créez une condition d'alerte composée en utilisant le where_clause, qui vous permet de spécifier les limites sur une métrique secondaire ou tertiaire.
Dépasser la limitation de 500 facettes sur la condition d'alerte NRQL .
Fiabilité
Vérifier quand une condition a été mise à jour pour la dernière fois.
Exigences
Pour utiliser l'API REST d'infrastructure, vous avez besoin de :
Voici quelques commandes de base cURL et leurs réponses pour les alertes de conditions d' infrastructure . Selon le type de condition, les informations DATA que vous fournissez dans l'appel varieront pour les appels POST (ajout) et PUT (mise à jour).
Les définitions de chaque attribut utilisé dans les blocs data peuvent être trouvées dans la section Définitions .
Pour la pagination, utilisez les paramètres limit (enregistrements par page) et offset (nombre d'enregistrements à ignorer). La valeur par défaut est de 50 enregistrements par page et offset commence à 0 (ne pas ignorer les enregistrements).
Pour limiter les résultats à une politique spécifique, utilisez policy_id.
Conseil
Si vous souhaitez utiliser la réponse GET comme modèle pour votre entrée PUT ou POST, assurez-vous de supprimer les informations created_at_epoch_millis, updated_at_epoch_millis et id .
GET une liste des conditions infrastructure
bash
$
curl-v-X GET --header"Api-Key:$API_KEY""https://infra-api.newrelic.com/v2/alerts/conditions?policy_id=111111"
Réponse montrant 2 des 3 conditions de l'exemple de politique (formatées pour plus de lisibilité et tronquées) :
HTTP/1.1200 OK
Content-Length:622
Content-Type: application/json
{
"data":[
{
"type":"infra_process_running",
"name":"Java is running",
"enabled":true,
"where_clause":"(`hostname` LIKE '%cassandra%')",
"id":13890,
"created_at_epoch_millis":1490996713872,
"updated_at_epoch_millis":1490996713872,
"policy_id":111111,
"comparison":"equal",
"critical_threshold":{
"value":0,
"duration_minutes":6
},
"process_where_clause":"(`commandName` = 'java')"
},
{
"created_at_epoch_millis":1501704525462,
"critical_threshold":{
"duration_minutes":5
},
"enabled":true,
"filter":{
"and":[
{
"like":{
"fullHostname":"Production_1"
}
}
]
},
"id":448036,
"name":"PROD - Host Machine's Agent Not Responding ....",
"policy_id":98485,
"type":"infra_host_not_reporting",
"updated_at_epoch_millis":1504879191220
}
. . .
],
"meta":{
"limit":50,
"offset":0,
"total":3
},
"links":{}
}
Pour obtenir une liste des 10 conditions d'infrastructure au-delà de la limite de 50 :
bash
$
curl-v-X GET --header"Api-Key:$API_KEY""https://infra-api.newrelic.com/v2/alerts/conditions?policy_id=111111&offset=50&limit=10"
GET une condition infrastructure spécifique
Pour obtenir des informations sur une condition d’infrastructure unique :
bash
$
curl-v-X GET --header"Api-Key:$API_KEY""https://infra-api.newrelic.com/v2/alerts/conditions/condition-id"
Réponse (formatée pour plus de lisibilité) :
HTTP/1.1200 OK
Content-Length:246
Content-Type: application/json
{
"data":{
"type":"infra_host_not_reporting",
"name":"demo condition",
"enabled":false,
"id":13887,
"created_at_epoch_millis":1490981583580,
"updated_at_epoch_millis":1490981583580,
"policy_id":23635,
"critical_threshold":{
"duration_minutes":100
}
}
}
Créer (POST) une condition d'infrastructure
Important
N'incluez pas de "id": lors de l'ajout d'une nouvelle condition (POST). Il sera généré lorsque la condition sera créée.
Pour ajouter une condition d’infrastructure, utilisez cette commande cURL de base :
bash
$
curl-X POST 'https://infra-api.newrelic.com/v2/alerts/conditions'\
Mettre à jour (PUT) une condition d'infrastructure
Vous devez uniquement inclure les champs qui doivent être modifiés lors de la mise à jour d’une condition d’infrastructure. L'API conserve les valeurs existantes pour tous les champs manquants.
Important
Si vous souhaitez modifier la condition type, n'utilisez pas PUT. Au lieu de cela, supprimez la condition existante, puis ajoutez (POST) une nouvelle condition avec les nouveaux champs de condition type et all .
Pour mettre à jour une condition d’infrastructure, utilisez cette commande cURL de base. Pour indiquer quelle condition doit être mise à jour, assurez-vous d'inclure le "id": .
bash
$
curl-X PUT 'https://infra-api.newrelic.com/v2/alerts/conditions/condition-id'\
Notez les guillemets simples supplémentaires échappant au guillemet simple autour du where_clause et process_where_clause
Une condition métrique vous avertit lorsque la métrique de votre choix est supérieure, inférieure ou égale au seuil que vous définissez. Cela comprend :
Si vous ajoutez ou mettez à jour une condition d’alerte d’intégration cloud :
Pour le champ event_type , saisissez le type d’événement généré par votre service d’intégration cloud sélectionné (par exemple, ComputeSample pour l’intégration AWS EC2).
Si vous configurez une condition d'alerte sur un service cloud d'intégration qui nécessite une valeur de fournisseur (par exemple, AWS RDS utilise DatastoreSample avec une valeur provider de RdsDbInstance ou RdsDbCluster), vous devrez ajouter le champ "integration_provider" et utiliser la valeur appropriée pour le service ciblé par votre condition d'alerte (par exemple, "integration_provider":"RdsDbInstance").
Pour le champ select_value , créez le nom de la métrique en utilisant la syntaxe suivante, où provider est une chaîne de préfixe standard :
provider.metric.aggregation_type
metric:Utilisez le nom de la métrique tel que décrit dans la documentation New Relic pour votre intégration.
aggregation_type: Utilisez Sum, Average, Minimum ou Maximum. Reportez-vous à la documentation d'origine du fournisseur cloud de l'intégration pour voir quelles agrégations de statistiques sont disponibles pour chaque métrique.
Par exemple:
bash
$
curl-X POST 'https://infra-api.newrelic.com/v2/alerts/conditions'\
Le champ no_trigger_on est facultatif. Lorsque défini sur ["shutdown"] , cela active l'option de condition d'infrastructure Don't trigger alerts for hosts that perform a clean shutdown .
Par exemple:
bash
$
curl-X POST 'https://infra-api.newrelic.com/v2/alerts/conditions'\
"where_clause":"(hostname LIKE '\''%cassandra%'\'')",
$
"policy_id":policy_id,
$
"critical_threshold":{
$
"duration_minutes":12,
$
"no_trigger_on": ["shutdown"]
$
}
$
}
$
}'
Important
Notez les guillemets simples supplémentaires échappant au guillemet simple autour du where_clause
Définitions
Lors du formatage de votre commande cURL, utilisez ces valeurs selon vos besoins. Ceux-ci sont répertoriés par ordre alphabétique, et non par ordre d'apparition dans votre appel d'API.
La valeur utilisée pour définir le seuil ; par exemple, "["above", "below", "equal"].
critical_threshold et warning_threshold
Condition type: tous
Cet objet identifie la valeur seuil avant l'ouverture d'un incident.
Le critical_threshold est obligatoire.
Le warning_threshold est facultatif et ne peut être utilisé qu'avec les conditions infra_metric .
Les clés de cet objet dépendent du type de condition.
Condition type:infra_metric format:
"critical_threshold":{
"value":<number>,
"duration_minutes":<integer>,
"time_function":"any" or "all"
},
Condition type:infra_process_running format:
"critical_threshold":{
"value":<integer>,
"duration_minutes":<integer>,
},
Condition type:infra_host_not_reporting format:
"critical_threshold":{
"duration_minutes":<integer>,
},
La valeur numérique qui doit être dépassée pour que la condition ouvre un incident
Le nombre de minutes pendant lesquelles le value doit être dépassé ou satisfait pour que la condition ouvre un incident
Indique si la condition doit être maintenue pendant une certaine période de temps pour créer un incident, ou si elle doit seulement franchir le seuil une fois dans une certaine période de temps. Si vous définissez un seuil for at least x minutes , utilisez all; pour un seuil at least once in x minutes , utilisez any.
enabled (booléen)
Condition type: tous
Si la condition est activée ou désactivée ; true ou false.
event_type (chaîne)
Condition type:infra_metric
L'événement métrique ; par exemple, les métriques système, les métriques de processus, les métriques de stockage ou les métriques de réseau. Ceci est automatiquement renseigné pour l'intégration infrastructure ; par exemple, StorageSample ou SystemSample.
filter (chaîne)
Condition type: tous
Si la condition a été définie dans l'UI, filter apparaît à la place de where_clause; par exemple :
{and: [{is: {ec2InstanceType: "m3.medium"}}]}
Recommandation : utilisez where_clause lors de la création d’une nouvelle condition.
id (entier)
Condition type: tous
L'ID de condition situé dans l'URL.
GET : cette valeur apparaît dans la réponse GET.
PUT : Inclure cette valeur dans la section DATA .
POST : Ne pas inclure ceci dans la section DATA .
SUPPRIMER : inclure cette valeur dans l'appel -X DELETE .
integration_provider (chaîne)
Condition type:infra_metric
Pour les alertes sur l'intégration, utilisez integration_provider au lieu de event_type. Pour voir les valeurs valides : dans la documentation New Relic de votre cloud de services, consultez la section Find and use data.
Exemple : dans la documentation d'intégration de monitoring AWS RDS , vous pouvez voir que le type d'événement DatastoreSample peut être utilisé avec une valeur integration_provider de RdsDbInstance pour l'instance de base de données ou de RdsDbCluster pour le cluster de base de données Aurora.
name (chaîne)
Condition type: tous
Le nom de la condition d'alerte de l'infrastructure ; par exemple :
"[test] process running"
policy_id (entier)
Condition type: tous
L'ID unique de l'ID de compte de la règle d'alerte associé à la condition ; par exemple, 1234567890. Il ne s’agit pas de l’ID global de la politique.
process_where_clause (chaîne)
Condition type:infra_process_running
Tous les filtres appliqués aux processus, en particulier dans les conditions d'alerte d'exécution des processus. Ce paramètre est obligatoire pour ces types de conditions d'alerte. Par exemple:
Le nom de l'attribut permettant d'identifier la métrique ciblée ; par exemple, "cpuPercent", "diskFreePercent", "memoryResidentSizeBytes", or "memoryFreeBytes/memoryTotalBytes*100". Ceci est automatiquement renseigné pour l'intégration infrastructure ; par exemple, diskFreePercent.
type (énumération)
Condition type: tous
Le type de condition d’alerte d’infrastructure : "infra_process_running", "infra_metric" ou "infra_host_not_reporting".
violation_close_timer (entier)
Condition type: tous
Le paramètre de limite de temps d'incident , exprimé en heures. Les valeurs possibles sont 0, 1, 2, 4, 8,12, 24, 48, 72. Cela détermine le temps qui s'écoulera avant qu'un incident ne soit automatiquement fermé.
Pour les nouvelles conditions, si aucune valeur n'est fournie, les valeurs par défaut suivantes sont utilisées :
Toutes les conditions : 24 hours
Lors de la mise à jour des conditions existantes, si une valeur est fournie, elle remplace la valeur existante, mais n'affecte pas l'incident déjà ouvert.