Pour déployer un Monitor Datadog, vous pouvez utiliser le Datadog Operator et la définition de ressource personnalisée (CRD) DatadogMonitor.

Prérequis

Configuration

  1. Créez un fichier avec les spécifications de votre configuration de déploiement DatadogMonitor.

    Exemple :

    La spécification suivante crée un Monitor de métrique qui envoie une alerte sur la requête avg(last_10m):avg:system.disk.in_use{*} by {host} > 0.5.

    datadog-metric-monitor.yaml

       apiVersion: datadoghq.com/v1alpha1
       kind: DatadogMonitor
       metadata:
         name: datadog-monitor-test
         namespace: datadog
       spec:
         query: "avg(last_10m):avg:system.disk.in_use{*} by {host} > 0.5"
         type: "metric alert"
         name: "Test monitor made from DatadogMonitor"
         message: "1-2-3 testing"
         tags:
           - "test:datadog"
         priority: 5
         controllerOptions:
           disableRequiredTags: false
         options:
           evaluationDelay: 300
           includeTags: true
           locked: false
           newGroupDelay: 300
           notifyNoData: true
           noDataTimeframe: 30
           renotifyInterval: 1440
           thresholds:
             critical: "0.5"
             warning: "0.28"
       

    Consultez la liste complète des champs de configuration.

  2. Déployez votre DatadogMonitor :

    kubectl apply -f /path/to/your/datadog-metric-monitor.yaml
    

Autres exemples

Monitors de métriques

Autres monitors

Tous les champs de configuration disponibles

Le tableau suivant répertorie tous les champs de configuration disponibles pour la ressource personnalisée DatadogMonitor.

message
obligatoire - chaîne
Message à inclure dans les notifications de ce Monitor.
name
obligatoire - chaîne
Nom du Monitor.
query
obligatoire - chaîne
Requête du Monitor.
type
obligatoire - énumération
Type du Monitor.
Valeurs d’énumération autorisées : metric alert, query alert, service check, event alert, log alert, process alert, rum alert, trace-analytics alert, slo alert, event-v2 alert, audit alert, composite
controllerOptions.disableRequiredTags
booléen
Désactive l’ajout automatique de tags requis aux Monitors.
priority
int64
Entier de 1 (élevé) à 5 (faible) indiquant la gravité de l’alerte.
restrictedRoles
[chaîne]
Liste d’identifiants de rôle uniques définissant les rôles autorisés à modifier le Monitor. Les identifiants uniques de tous les rôles peuvent être récupérés à partir de l’API Roles et se trouvent dans le champ data.id.
tags
[chaîne]
Tags associés à votre Monitor.
options
_objet
Liste des options associées à votre Monitor. Consultez la section Options.

Options

Les champs suivants sont définis dans la propriété options.

Exemple :

apiVersion: datadoghq.com/v1alpha1
kind: DatadogMonitor
metadata:
  name: datadog-monitor-test
  namespace: datadog
spec:
  query: "avg(last_10m):avg:system.disk.in_use{*} by {host} > 0.5"
  type: "metric alert"
  name: "Test monitor made from DatadogMonitor"
  message: "1-2-3 testing"
  options:
    enableLogsSample: true
    thresholds:
      critical: "0.5"
      warning: "0.28"
enableLogsSample
_booléen
Indique si un échantillon de log doit être envoyé lorsque le Monitor de log se déclenche.
escalationMessage
chaîne
Message à inclure dans une nouvelle notification.
evaluationDelay
int64
Délai (en secondes) avant l’évaluation, sous forme d’entier non négatif. Par exemple : si la valeur est définie sur 300 (5 min), la période est définie sur last_5m et l’heure est 7:00, le Monitor évalue les données de 6:50 à 6:55. Cette option est utile pour AWS CloudWatch et d’autres métriques renvoyées rétroactivement afin de garantir que le Monitor dispose toujours de données lors de l’évaluation.
groupRetentionDuration
chaîne
Durée après laquelle les groupes dont les données sont manquantes sont supprimés de l’état du Monitor. La valeur minimale est d’une heure et la valeur maximale est de 72 heures. Exemples de valeurs : 60m, 1h et 2d. Cette option est disponible uniquement pour les Monitors APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs et RUM.
groupbySimpleMonitor
booléen
OBSOLÈTE : indique si le Monitor d’alerte de log déclenche une alerte unique ou plusieurs alertes lorsqu’un groupe dépasse un seuil. Utilisez notifyBy à la place.
includeTags
booléen
Valeur booléenne indiquant si les notifications de ce Monitor insèrent automatiquement ses tags de déclenchement dans le titre.
locked
booléen
OBSOLÈTE : indique si le Monitor est verrouillé (modifiable uniquement par le créateur et les administrateurs). Utilisez restrictedRoles à la place.
newGroupDelay
int64
Délai (en secondes) accordé à un host pour démarrer et aux applications pour démarrer complètement avant de commencer l’évaluation des résultats du Monitor. Doit être un entier non négatif.
noDataTimeframe
int64
Nombre de minutes avant qu’un Monitor n’envoie une notification après l’arrêt du signalement des données. Datadog recommande au moins 2 fois la période du Monitor pour les alertes de métrique ou 2 minutes pour les checks de service. En cas d’omission, 2 fois la période d’évaluation est utilisée pour les alertes de métrique et 24 heures sont utilisées pour les checks de service.
notificationPresetName
énumération
Active/désactive l’affichage du contenu supplémentaire envoyé dans la notification du Monitor.
Valeurs d’énumération autorisées : show_all, hide_query, hide_handles, hide_all
Par défaut : show_all
notifyAudit
_booléen
Valeur booléenne indiquant si les utilisateurs tagués sont informés des modifications apportées à ce Monitor.
notifyBy
[chaîne]
Chaîne indiquant la granularité sur laquelle un Monitor envoie des alertes. Disponible uniquement pour les Monitors avec groupements. Par exemple, si vous avez un Monitor groupé par cluster, espace de nommage et pod, et que vous définissez notifyBy sur ["cluster"], votre Monitor n’envoie des notifications que pour chaque nouveau cluster enfreignant les conditions d’alerte.
Les tags mentionnés dans notifyBy doivent être un sous-ensemble des tags de groupement de la requête. Par exemple, une requête groupée par cluster et espace de nommage ne peut pas notifier par région.
La définition de notifyBy sur [*] configure le Monitor pour qu’il notifie sous forme d’alerte simple.
notifyNoData
booléen
Valeur booléenne indiquant si ce Monitor envoie une notification lorsque les données cessent d’être signalées.
Par défaut : false.
onMissingData
énumération
Contrôle la façon dont les groupes ou Monitors sont traités si une évaluation ne renvoie aucun point de données. L’option par défaut entraîne un comportement différent selon le type de requête du Monitor. Pour les Monitors utilisant des requêtes de type Count, une évaluation de Monitor vide est traitée comme 0 et est comparée aux conditions de seuil. Pour les Monitors utilisant un type de requête autre que Count, par exemple Gauge, Measure ou Rate, le Monitor affiche le dernier statut connu. Cette option est disponible uniquement pour les Monitors APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs et RUM.
Valeurs d’énumération autorisées : default, show_no_data, show_and_notify_no_data, resolve
renotifyInterval
int64
Nombre de minutes après la dernière notification avant qu’un Monitor n’envoie une nouvelle notification sur le statut actuel. Il ne notifie à nouveau que s’il n’est pas résolu.
renotifyOccurrences
int64
Nombre de fois que les messages de nouvelle notification doivent être envoyés sur le statut actuel à l’intervalle de nouvelle notification fourni.
renotifyStatuses
[chaîne]
Types de statuts de Monitor pour lesquels des messages de nouvelle notification sont envoyés.
Si renotifyInterval est null, la valeur par défaut est null.
Si renotifyInterval n’est pas null, la valeur par défaut est ["Alert", "No Data"]
Valeurs pour le statut du Monitor : Alert, No Data, Warn
requireFullWindow
booléen
Valeur booléenne indiquant si ce Monitor nécessite une fenêtre complète de données avant d’être évalué. Datadog recommande vivement de définir cette valeur sur false pour les métriques éparses, sinon certaines évaluations sont ignorées.
Par défaut : false.
schedulingOptions
objet
Options de configuration pour la planification :
customSchedule
object
Options de configuration pour le site personnalisé schedule (programmer):
recurrence
[objet]
Tableau de récurrences de planification personnalisée.
rrule
chaîne
Règle de récurrence au format iCalendar. Par exemple, FREQ=MONTHLY;BYMONTHDAY=28,29,30,31;BYSETPOS=-1.
start
chaîne
Date de début de la règle de récurrence définie au format YYYY-MM-DDThh:mm:ss. En cas d’omission, l’heure de création du Monitor est utilisée.
timezone
chaîne
Fuseau horaire au format tz database, dans lequel la règle de récurrence est définie. Par exemple, America/New_York ou UTC.
evaluationWindow
objet
Options de configuration pour la fenêtre d’évaluation. Si hour_starts est défini, aucun autre champ ne peut être défini. Sinon, day_starts et month_starts doivent être définis ensemble.
dayStarts
chaîne
Heure de la journée à laquelle commence une fenêtre d’évaluation cumulative d’un jour. Doit être définie en heure UTC au format HH:mm.
hourStarts
entier
Minute de l’heure à laquelle commence une fenêtre d’évaluation cumulative d’une heure.
monthStarts
entier
Jour du mois auquel commence une fenêtre d’évaluation cumulative d’un mois.
thresholdWindows
objet
Options de fenêtre temporelle d’alerte :
recoveryWindow
chaîne
Décrit la durée pendant laquelle une métrique anormale doit être normale avant que l’alerte ne se rétablisse.
triggerWindow
chaîne
Décrit la durée pendant laquelle une métrique doit être anormale avant qu’une alerte ne se déclenche.
thresholds
objet
Liste des différents seuils de Monitor disponibles :
critical
chaîne
Seuil CRITICAL du Monitor.
criticalRecovery
chaîne
Seuil de rétablissement CRITICAL du Monitor.
ok
chaîne
Seuil OK du Monitor.
unknown
chaîne
Seuil UNKNOWN du Monitor.
warning
chaîne
Seuil WARNING du Monitor.
warningRecovery
chaîne
Seuil de rétablissement WARNING du Monitor.
timeoutH
int64
Nombre d’heures pendant lesquelles le Monitor ne signale pas de données avant qu’il ne se résolve automatiquement à partir d’un état déclenché.

Pour aller plus loin