Variables

Utilisez des variables dans les messages de notification pour afficher un contenu conditionnel et router la notification vers différentes équipes grâce aux variables conditionnelles, ou pour enrichir le contenu en utilisant des variables d’attributs et d’étiquettes et des variables de modèle.

Variables conditionnelles

Les variables conditionnelles reposent sur une logique if-else pour afficher un message personnalisé en fonction de l’état du monitor et des détails de son déclenchement. Ces variables peuvent être utilisées dans le sujet ou le corps du message de la notification.

Voici la liste des variables conditionnelles disponibles :

Variable conditionnelleCondition d’affichage du texte
{{#is_alert}}Le monitor génère une alerte.
{{^is_alert}}Le monitor ne génère pas d’alerte.
{{#is_match}}Le contexte correspond à la sous-chaîne fournie. Si une valeur numérique est utilisée, elle est convertie en chaîne.
{{^is_match}}Le contexte ne correspond pas à la sous-chaîne indiquée.
{{#is_exact_match}}Le contexte correspond exactement à la chaîne fournie.
Si une valeur numérique est utilisée, sa valeur est prise en compte, quel que soit son type. Cela signifie que deux nombres de même valeur seront considérés comme égaux par la fonction.
{{^is_exact_match}}Le contexte ne correspond pas exactement à la chaîne indiquée.
{{#is_no_data}}Le monitor s’est déclenché en raison de données manquantes.
{{^is_no_data}}Le monitor ne s’est pas déclenché en raison de données manquantes.
{{#is_warning}}Le monitor génère un avertissement.
{{^is_warning}}Le monitor ne génère pas d’avertissement.
{{#is_recovery}}Le monitor est rétabli depuis un état ALERT, WARNING, UNKNOWN ou NO DATA.
{{^is_recovery}}Le monitor n’est pas rétabli depuis un état ALERT, WARNING, UNKNOWN ou NO DATA.
{{#is_warning_recovery}}Le monitor passe d’un état WARNING à un état OK.
{{^is_warning_recovery}}Le monitor ne passe pas d’un état WARNING à un état OK.
{{#is_alert_recovery}}Le monitor passe d’un état ALERT à un état OK.
{{^is_alert_recovery}}Le monitor ne passe pas d’un état ALERT à un état OK.
{{#is_alert_to_warning}}Le monitor passe d’un état ALERT à un état WARNING.
{{^is_alert_to_warning}}Le monitor ne passe pas d’un état ALERT à un état WARNING.
{{#is_no_data_recovery}}Le monitor est rétabli depuis un état NO DATA.
{{^is_no_data_recovery}}Le monitor n’est pas rétabli depuis un état NO DATA.
{{#is_priority 'valeur'}}Le monitor possède la priorité valeur, qui va de P1 à P5.
{{#is_unknown}}Le monitor possède un état inconnu.
{{^is_unknown}}Le monitor ne possède pas un état inconnu.
{{#is_renotify}}Le monitor renvoie des notifications.
{{^is_renotify}}Le monitor ne renvoie pas de notification.

Exemples

La variable conditionnelle doit comporter un élément d’ouverture et un élément de fermeture entourant le texte et les notifications « @ ».

Pour envoyer un message de notification lorsqu’un monitor génère une alerte, utilisez le format suivant :

{{#is_alert}}
  <TEXTE_MESSAGE_ALERTE> <@-NOTIFICATION>
{{/is_alert}}

Pour envoyer un message de notification lorsqu’un monitor génère un avertissement, utilisez le format suivant :

{{#is_warning}}
  <TEXTE_MESSAGE_AVERTISSEMENT> <@-NOTIFICATION>
{{/is_warning}}

Pour envoyer un message de notification lorsqu’un monitor est rétabli, utilisez le format suivant :

{{#is_recovery}}
  <TEXTE_MESSAGE_RÉTABLISSEMENT> <@-NOTIFICATION>
{{/is_recovery}}

Pour rechercher une sous-chaîne dans une variable de tag, utilisez le format suivant :

{{#is_match "<VARIABLE_TAG>.name" "<CHAÎNE_COMPARAISON>"}}
  Cela s'affiche si <CHAÎNE_COMPARAISON> fait partie de <VARIABLE_TAG>.
{{/is_match}}

Pour informer votre équipe DB qu’un host déclencheur dispose du tag role:db_cassandra ou role:db_postgres, utilisez le format suivant :

{{#is_match "role.name" "db"}}
  Cela s'affiche si le nom du rôle du host qui a déclenché l'alerte contient `db`. @db-team@company.com
{{/is_match}}

La condition is_match prend également en charge plusieurs chaînes :

{{#is_match "role.name" "db" "database"}}
  Cela s'affiche si le nom du rôle du host qui a déclenché l'alerte contient `db` ou `database`.
  @db-team@company.com
{{/is_match}}

Pour envoyer une autre notification lorsque le tag ne contient pas db, utilisez la négation de la condition tel que suit :

{{^is_match "role.name" "db"}}
  Cela s'affiche si le tag du rôle ne contient pas `db`.
  @slack-example
{{/is_match}}

Vous pouvez également utiliser le paramètre {{else}} dans le premier exemple :

{{#is_match "role.name" "db"}}
  Cela s'affiche si le nom du rôle du host qui a déclenché l'alerte contient `db`.
  @db-team@company.com
{{else}}
  Cela s'affiche si le tag du rôle ne contient pas `db`.
  @slack-example
{{/is_match}}

Remarque : pour vérifier si une <TAG_VARIABLE> n’existe pas ou si elle est vide, utilisez is_exact_match. Voir l’onglet is_exact_match pour plus de détails.

Pour rechercher une chaîne exacte dans une variable de tag, utilisez le format suivant :

{{#is_exact_match "<VARIABLE_TAG>.name" "<CHAÎNE_COMPARAISON>"}}
  Cela s'affiche si <CHAÎNE_COMPARAISON> correspond exactement à <VARIABLE_TAG>.
{{/is_exact_match}}

Pour informer votre équipe de développement lorsqu’un host déclencheur dispose du nom production, utilisez le format suivant :

{{#is_exact_match "host.name" "production"}}
  Cela s'affiche si le host qui a déclenché l'alerte s'intitule précisément « production ». @dev-team@company.com
{{/is_exact_match}}

La condition is_exact_match prend également en charge la correspondance avec plusieurs chaînes :

{{#is_exact_match "host.name" "production" "staging"}}
  Ce message s'affiche si le host qui a déclenché l'alerte s'appelle
  exactement production ou staging. @dev-team@company.com
{{/is_exact_match}}

La variable conditionnelle is_exact_match prend également en charge les variables de modèle {{value}} :

{{#is_exact_match "value" "<VALUE>"}}
  Ceci s'affiche si la valeur ayant dépassé le seuil du monitor est exactement <VALUE>.
{{/is_exact_match}}

Pour notifier votre équipe de développement si la valeur ayant dépassé le seuil du monitor est 5 (ou 5.0), utilisez l’exemple suivant :

{{#is_exact_match "value" "5"}}
  Ce message s'affiche si la valeur ayant dépassé le seuil du monitor est 5. @dev-team@company.com
{{/is_exact_match}}

La variable conditionnelle is_exact_match prend également en charge une chaîne vide pour le <COMPARISON_STRING> afin de vérifier si l’attribut ou le tag est vide ou n’existe pas.

{{#is_exact_match "host.datacenter" ""}}
  Ce message s'affiche si l'attribut ou le tag n'existe pas ou s'il est vide
{{/is_match}}

Pour envoyer un message de réaffectation à une autre destination, seulement pour l’environnement production :

{{#is_renotify}}
{{#is_match "env" "production"}}
  Ceci est un message de réaffectation envoyé à @dev-team@company.com
{{/is_match}}
{{/is_renotify}}

Pour envoyer un autre message de réaffectation qui ne contient pas les informations du message d’origine, utilisez à la fois les blocs {{^is_renotify}} et {{#is_renotify}} :

{{^is_renotify}}
Ce monitor possède un état d'alerte et envoie un premier message à @dev-team@company.com

Pour rétablir l'état de ce monitor, suivez les étapes suivantes :
1. Allez ici
2. Faites ceci
{{/is_renotify}}

Cette section est générique et est envoyée pour le premier déclenchement et le message de réaffectation.
{{#is_renotify}}
  Ceci est le message de réaffectation @dev-team@company.com
{{/is_renotify}}

Dans la nouvelle notification du monitor, les utilisateurs pourront lire le message de réaffectation suivant :

Cette section est générique et est envoyée pour le premier déclenchement et le message de réaffectation.

Ceci est le message de réaffectation @dev-team@company.com

Si vous configurez un bloc conditionnel pour une transition d’état vers les conditions alert ou warning avec une mention @-notifications, il est recommandé de configurer une condition recovery correspondante afin qu’une notification de rétablissement soit envoyée à cette même mention.

Remarque : tout texte ou handle de notification placé en dehors des variables conditionnelles configurées est invoqué à chaque changement d’état du monitor. À l’inverse, tout texte ou handle de notification placé au sein des variables conditionnelles configurées est invoqué uniquement si le changement d’état du monitor respecte la condition.

Variables d’attribut et de tag

Utilisez des variables d’attributs et de tag pour créer des messages d’alerte personnalisés, informatifs et ciblés afin de mieux comprendre la nature de l’alerte. Voir les sections suivantes pour des exemples et cas d’usage :

Tags
automatiquement associés (comme le nom de host, le nom du conteneur, le nom du fichier de log ou le nom de la fonction serverless) ou ajoutés via des tags personnalisés (comme l’équipe responsable, l’environnement, l’application ou la version).
Attributs
basés sur le contenu du log et soit analysés, soit ajoutés à l’aide de recherches dans des tables de référence (par exemple, geoip).

Remarque : Si le monitor est configuré pour se rétablir en cas d’absence de données (par exemple, lorsqu’aucun événement ne correspond à la requête), le message de rétablissement ne contient aucune donnée. Pour conserver des informations dans le message de rétablissement, effectuez un groupement par des tags supplémentaires, accessibles via {{tag.name}}.

Variables à alertes multiples

Configurez des variables à alertes multiples dans des monitors à alertes multiples en fonction de la dimension sélectionnée dans la section du groupe à alertes multiples. Enrichissez le contenu de la notification en incluant de façon dynamique la valeur associée au groupe en fonction des dimensions de chaque alerte.

Remarque : lorsque vous utilisez le champ group_by pour l’agrégation, des tags et des alertes supplémentaires issus du monitor peuvent être hérités automatiquement. Cela signifie que toute alerte ou configuration définie sur l’endpoint surveillé pourrait être appliquée à chaque groupe résultant de l’agrégation.

Lorsqu’une métrique possède un tag au format key:value et que la requête du monitor est regroupée en fonction de ce tag, utilisez la variable suivante :

{{ key.name }}

Cette variable insère la value associée à la key dans chaque notification d’alerte. Par exemple, si votre monitor déclenche une alerte pour chaque env, alors la variable {{env.name}} est disponible dans votre message de notification.

Si un groupe possède plusieurs values associées à la même key, le message d’alerte affiche une chaîne contenant toutes les valeurs, séparées par des virgules, dans l’ordre lexicographique.

Clé de tag avec un point

Si la clé de votre tag contient un point, entourez l’intégralité de la clé avec des crochets lors de l’utilisation d’une variable de tag. Par exemple, si votre tag est dot.key.test:five et que votre monitor est groupé par dot.key.test, utilisez :

{{[dot.key.test].name}}

Les log monitors, monitors d’analyse de traces, monitors RUM et monitors d’événement peuvent utiliser des facettes en tant que variables lorsqu’ils sont regroupés par facette. Si un log monitor est regroupé en fonction de @facet_key, utilisez la variable suivante :

{{ @facet_key.name }}

Exemple : pour inclure les informations spécifiques d’un groupe de monitors de logs à alertes multiples, effectuez un regroupement selon @machine_id :

Cette alerte a été déclenchée sur {{ @machine_id.name }}

Si votre facette comporte des points, placez-la entre crochets. Par exemple :

{{ [@network.client.ip].name }}

Personnaliser la notification en fonction du groupe

Lorsque votre requête est groupée par certaines dimensions, vous pouvez enrichir les notifications avec les métadonnées dynamiques associées au groupe. Pour voir la liste des variables de tag en fonction de votre sélection, cliquez sur Use message template variables (Utiliser des variables de modèle de message) dans la section Configure notifications & automations (Configurer les notifications et automatisations). Voici des exemples :

Si votre monitor déclenche une alerte pour chaque host, alors les variables de tag {{host.name}} et {{host.ip}} sont disponibles, ainsi que tout tag de host disponible sur ce host.

Variables spécifiques aux métadonnées du host :

  • Version de l’Agent : {{host.metadata_agent_version}}

  • Machine : {{host.metadata_machine}}

  • Plateforme : {{host.metadata_platform}}

  • Processeur : {{host.metadata_processor}}

Si votre monitor déclenche une alerte pour chaque kube_namespace et kube_cluster_name, vous pouvez alors accéder à n’importe quel attribut de l’espace de nommage.

Variables de métadonnées de l’espace de nommage :

  • Nom du cluster : {{kube_namespace.cluster_name}}
  • Nom de l’espace de nommage : {{kube_namespace.display_name}}
  • Statut de l’espace de nommage : {{kube_namespace.status}}
  • Étiquettes de l’espace de nommage : {{kube_namespace.labels}}

Le tableau suivant contient tous les attributs disponibles :

Syntaxe de la variableAttributs de premier niveau
{{kube_namespace.key}}k8s_namespace_key, tags, annotations, cluster_id, cluster_name, creation_timestamp, deletion_timestamp, display_name, external_id, finalizers, first_seen_at, group_size, labels, name, namespace, status, uid

Si votre monitor déclenche une alerte pour chaque pod_name, kube_namespace et kube_cluster_name, vous pouvez alors accéder à n’importe quel attribut du pod.

Variables de métadonnées du pod :

  • Nom du cluster : {{pod_name.cluster_name}}
  • Nom du pod : {{pod_name.name}}
  • Phase du pod : {{pod_name.phase}}

Le tableau suivant contient tous les attributs disponibles :

Syntaxe de la variableAttributs de premier niveau
{{pod_name.key}}k8s_pod_key, tags, annotations, cluster_id, cluster_name, conditions, container_statuses, creation_timestamp, deletion_timestamp, display_name, external_id, finalizers, first_seen_at, host_id, host_key, hostname, init_container_statuses, ip, labels, name, namespace, node_name, nominated_node_name, phase, pod_scheduled_timestamp, priority_class_name, qosclass, resource_requirements, uid

Si votre monitor déclenche une alerte pour chaque service, alors vous pouvez accéder à certains attributs du service, tels que définis dans le Software Catalog.

Variables de métadonnées de service :

  • Nom du service : {{service.name}}
  • Nom de l’équipe : {{service.team}}
  • Docs : {{service.docs}}
  • Liens : {{service.links}}

Pour les documents et liens, vous pouvez également accéder à un élément spécifique avec la syntaxe suivante : [<name>]. Par exemple, pour les services qui disposent d’un schéma de définition comme celui défini dans cet exemple, vous pouvez accéder au lien « Runbook » en utilisant la syntaxe suivante :

{{service.links[Runbook]}}

Correspondance des variables d’attribut et de tag

Pour inclure n’importe quel attribut ou tag provenant d’un log, d’un span de trace, d’un événement RUM, d’un pipeline CI ou d’un événement de test CI correspondant à la requête du monitor, utilisez les variables suivantes :

Type de monitorSyntaxe de la variable
Log{{log.attributes.key}} ou {{log.tags.key}}
Analyse de traces{{span.attributes.key}} ou {{span.tags.key}}
Error Tracking{{issue.attributes.key}}
RUM{{rum.attributes.key}} ou {{rum.tags.key}}
Piste d’audit{{audit.attributes.key}} ou {{audit.message}}
Pipeline CI{{cipipeline.attributes.key}}
Test de CI{{citest.attributes.key}}
Database Monitoring{{databasemonitoring.attributes.key}}
  • Pour n’importe quelle paire key:value, la variable {{log.tags.key}} affiche la value dans le message d’alerte.

  • Le @ qui précède tous les attributs n’est pas inclus. Par exemple, si un monitor de log est groupé par @http.status_code, vous pouvez inclure le message d’erreur ou les tags d’infrastructure dans le message de notification en utilisant les variables suivantes :

    {{ log.attributes.[error.message] }}
    {{ log.tags.env }}
    ...
    
    Syntaxe des variables d'attribut correspondantes
  • Le message affiche l’attribut error.message d’un log correspondant à la requête, tant que l’attribut existe.

  • Si le tag est présent sur un événement, utilisez la syntaxe suivante :

    {{ event.tags.[dot.key.test] }}
    

Remarques importantes

  • Si l’événement sélectionné n’inclut pas la clé d’attribut ou de tag, la variable apparaîtra vide dans le message de notification. Pour éviter les notifications manquantes, n’utilisez pas ces variables pour router les notifications avec des handles {{#is_match}}.
  • Pour les monitors qui utilisent des formules et des fonctions dans leurs requêtes, les valeurs sont résolues à partir des événements extraits de la première requête.

Attributs réservés

Les événements de logs, de gestion des événements, de spans, de RUM, de Pipeline CI et de tests CI disposent d’attributs réservés génériques, que vous pouvez utiliser dans les variables avec la syntaxe suivante :

Type de monitorSyntaxe de la variableAttributs de premier niveau
Log{{log.key}}message, service, status, source, span_id, timestamp, trace_id, link, host
Analyse de traces{{span.key}}env, operation_name, resource_name, service, status, span_id, timestamp, trace_id, type, link
RUM{{rum.key}}service, status, timestamp, link
Événement{{event.key}}attributes, host.name, id, link, title, text, tags
Pipeline CI{{cipipeline.key}}service, env, resource_name, ci_level, trace_id, span_id, pipeline_fingerprint, operation_name, ci_partial_array, status, timestamp, link
Test de CI{{citest.key}}service, env, resource_name, trace_id, span_id, operation_name, status, timestamp, link

Si l’événement correspondant ne contient pas l’attribut dans sa définition, la variable n’affiche rien.

Lien Explorer

Utilisez {{log.link}}, {{span.link}}, {{rum.link}}, et {{issue.link}} pour enrichir la notification avec un lien vers le Log Explorer, le Trace Explorer, le RUM Explorer ou Error Tracking, ciblé sur les événements correspondant à la requête.

Variables des monitors de check

Pour les monitors de check (check custom et check d’intégration), vous pouvez utiliser la variable {{check_message}} afin d’afficher le message du check custom ou du check d’intégration.

Variables des monitors composite

Les monitors composite peuvent accéder à la valeur et à l’état associés aux sous-monitors au moment du déclenchement de l’alarme.

Par exemple, si votre monitor composite possède un sous-monitor a, vous pouvez inclure la valeur de a avec :

{{ a.value }}

Pour récupérer le statut du sous-monitor a, utilisez :

{{ a.status }}

Les valeurs possibles pour l’état sont : OK, Alert, Warn et No Data.

Les monitors composite prennent également en charge les variables de tag, tout comme leurs monitors sous-jacents. Ils reprennent le même format que les autres monitors, tant que les monitors sous-jacents sont regroupés en fonction du même tag ou de la même facette.

Par exemple, supposons que votre monitor composite comporte un sous-monitor a, qui est un monitor de logs. Vous pouvez inclure la valeur de n’importe quel tag ou facette de a avec :

{{ a.log.message }} ou {{ a.log.my_facet }}

Échappement de caractères

Par défaut, le contenu des variables est échappé par défaut. Pour éviter que du contenu JSON ou du code soit échappé, utilisez trois accolades au lieu de deux. Exemple : {{{event.text}}}.

Template variables

Utilisez des template variables pour personnaliser les notifications de votre monitor. Voici la liste des variables intégrées :

VariableRôle
{{value}}La valeur qui a déclenché l’alerte pour les monitors de requête basés sur des métriques.
{{threshold}}La valeur du seuil d’alerte défini dans les conditions d’alerte du monitor.
{{warn_threshold}}La valeur du seuil d’avertissement défini dans les conditions d’alerte du monitor.
{{alert_recovery_threshold}}La valeur qui a permis de sortir le monitor de l’état ALERT.
{{warn_recovery_threshold}}La valeur qui a permis de sortir le monitor de l’état WARN.
{{ok_threshold}}La valeur qui a permis de sortir le monitor de check de service.
{{comparator}}La valeur relationnelle définie dans les conditions d’alerte du monitor.
{{first_triggered_at}}
Voir la section ci-dessous
La date et l’heure UTC auxquelles le monitor a été déclenché pour la première fois.
{{first_triggered_at_epoch}}
Voir la section ci-dessous
La date et l’heure UTC auxquelles le monitor a été déclenché pour la première fois, en millisecondes Unix.
{{last_triggered_at}}
Voir la section ci-dessous
La date et l’heure UTC du dernier déclenchement du monitor.
{{last_triggered_at_epoch}}
Voir la section ci-dessous
La date et l’heure UTC du dernier déclenchement du monitor, au format EPOCH en millisecondes.
{{triggered_duration_sec}}Le nombre de secondes pendant lesquelles le monitor est resté dans un état déclenché.

Variables déclenchées

Les variables de modèle {{first_triggered_at}}, {{first_triggered_at_epoch}}, {{last_triggered_at}} et {{last_triggered_at_epoch}} reflètent les valeurs au moment d’un changement d’état du monitor, et NON à chaque nouvel événement du monitor. Les événements de renotification affichent la même variable si l’état du monitor n’a pas changé. Utilisez {{triggered_duration_sec}} pour afficher la durée au moment de l’événement.

{{first_triggered_at}} est défini lorsque le groupe de monitor passe de OK à un état différent de OK, ou lorsqu’un nouveau groupe apparaît dans un état non OK. {{last_triggered_at}} est défini quand le groupe de monitor passe à un état non OK, quel que soit l’état précédent (y compris WARNALERT, ALERTWARN). {{last_triggered_at}} est également défini lorsqu’un nouveau groupe apparaît dans un état non OK. La différence est que {{last_triggered_at}} est indépendant de l’état précédent.

Transitions montrant quatre horodatages A : 1419 OK vers WARN, B : 1427 WARN vers ALERT, C : 1445 ALERT vers NO DATA, D : 1449 NO DATA vers OK

Exemple : lorsque le monitor passe de OK à WARN, les variables {{first_triggered_at}} et {{last_triggered_at}} auront toutes deux la valeur de l’horodatage A. Le tableau ci-dessous affiche les valeurs jusqu’à la récupération du monitor.

Transitionfirst_triggered_atlast_triggered_attriggered_duration_sec
OKWARNAA0
WARNALERTABB - A
ALERTNO DATAACC - A
NO DATAOKACD - A

Évaluation

Les template variables qui renvoient des valeurs numériques prennent en charge les opérations et les fonctions. Vous pouvez ainsi effectuer des opérations mathématiques ou mettre en forme les valeurs. Pour en savoir plus, consultez la rubrique Évaluer des template variables.

Heure locale

La fonction local_time vous permet d’ajouter une autre date dans votre notification, avec le fuseau horaire de votre choix. Cette fonction transforme une date en une heure locale : {{local_time 'time_variable' 'timezone'}}. Par exemple, pour afficher l’heure du dernier déclenchement du monitor dans votre notification en fonction du fuseau horaire de Tokyo, ajoutez ce qui suit au message de notification :

{{local_time 'last_triggered_at' 'Asia/Tokyo'}}

Le résultat s’affiche au format ISO 8601 : yyyy-MM-dd HH:mm:ss±HH:mm, par exemple 2021-05-31 23:43:27+09:00. Consultez la liste des fuseaux horaires de la base de données TZ, notamment la colonne de nom, pour obtenir la liste des valeurs de fuseau horaire disponibles.

Réglages avancés

Handles dynamiques

Utilisez des variables de tag pour générer de façon dynamiques les handles des notifications et transmettre ces dernières à la bonne équipe ou au bon service, en fonction du type de problème détecté par le monitor.

Exemple : si votre monitor interroge une métrique et la regroupe en fonction d’un tag service, vous pouvez transmettre vos notifications à différents canaux Slack, en fonction du service défaillant :

@slack-{{service.name}} Un problème est en cours pour le service {{service.name}}.

Si votre monitor commence à détecter des échecs pour le groupe service:ad-server, la notification est envoyée au canal Slack #ad-server, avec le contexte suivant :

@slack-ad-server Un problème est en cours pour le service ad-server.

Lorsque vous créez des handles dynamiques avec des attributs qui peuvent être absents, cela peut poser des problèmes de livraison des notifications. Si un attribut est manquant, la variable sera vide dans le message de notification, ce qui rend le handle invalide.

Pour éviter les notifications manquées avec ces variables, pensez à ajouter un handle de secours :

{{#is_exact_match "kube_namespace.owner" ""}}
  @slack-example
  // Cela enverra une notification à @slack-example si la variable kube_namespace.owner est vide ou inexistante.
{{/is_match}}

Liens dynamiques

Utilisez des variables de tag pour activer la création d’URL dynamiques. Celles-ci vous permettent de rediriger votre équipe vers la ressource adéquate. Par exemple, vous pouvez fournir des liens vers des pages de Datadog : dashboards, hostmap, monitors, etc.

Utilisez la variable de tag {{host.name}} pour fournir un lien vers un dashboard système :

https://app.datadoghq.com/dash/integration/system_overview?tpl_var_scope=host:{{host.name}}

Utilisez la variable de tag {{host.name}}, en prenant soin de remplacer <NOM_INTÉGRATION> par le nom d’une intégration, pour fournir un lien vers le dashboard de cette intégration :

https://app.datadoghq.com/dash/integration/<NOM_INTÉGRATION>?tpl_var_scope=host:{{host.name}}

Utilisez la template variable {{last_triggered_at_epoch}} ainsi qu’un <DASHBOARD_ID> et un <DASHBOARD_NAME> pour créer un lien vers des dashboards avec une plage temporelle relative à l’alerte :

https://app.datadoghq.com/dashboard/<DASHBOARD_ID>/<DASHBOARD_NAME>?from_ts={{eval "last_triggered_at_epoch-10*60*1000"}}&to_ts={{eval "last_triggered_at_epoch+10*60*1000"}}&live=false

Utilisez une variable de tag comme {{service.name}} pour fournir un lien vers la hostmap :

https://app.datadoghq.com/infrastructure/map?filter=service:{{service.name}}

Vous pouvez personnaliser le lien vers la hostmap en définissant des paramètres supplémentaires. Voici les paramètres les plus utilisés :

ParamètreDéfini parFonction
fillbyfillby=avg:<NOM_MÉTRIQUE>Détermine la couleur de remplissage des hexagones des hosts.
groupbygroupby=<CLÉ_TAG>Détermine les groupes d’hexagones des hosts.
sizebysizeby=avg:<NOM_MÉTRIQUE>Détermine la taille des hexagones des hosts.

Utilisez la variable de tag {{host.name}} pour fournir un lien vers tous les monitors associés à un certain host :

https://app.datadoghq.com/monitors/manage?q=scope:host:{{host.name}}

Vous pouvez personnaliser le lien vers les monitors en définissant des paramètres supplémentaires. Voici les paramètres les plus utilisés :

ParamètreExempleContenu affiché
statusstatus:AlertLes monitors avec un état d’alerte (statuts supplémentaires : WARN, NO DATA et OK)
mutedmuted: trueLes monitors désactivés (indiquez false pour afficher les monitors qui ne sont pas désactivés)
typetype:logLes log monitors (découvrez les autres types de monitors)

Utilisez la template variable {{last_triggered_at_epoch}} pour fournir un lien vers tous les logs en cours au moment de l’alerte.

https://app.datadoghq.com/logs?from_ts={{eval "last_triggered_at_epoch-10*60*1000"}}&to_ts={{eval "last_triggered_at_epoch+10*60*1000"}}&live=false

Le lien vers les logs est personnalisable avec des paramètres supplémentaires. Les plus courants sont :

ParamètreDéfini parFonction
serviceservice=<SERVICE_NAME>Filtre sur les logs d’un service spécifique.
hosthost=<HOST_NAME>Filtre sur les logs d’un host spécifique.
statusstatus=<STATUS>Statut des logs : Error, Warn, Info, etc.

Commentaires

Pour ajouter un commentaire dans le message du monitor, utilisez la syntaxe suivante :

{{!-- ceci est un commentaire --}}
{{!-- ceci est un commentaire }}

Format brut

Si votre message d’alerte doit envoyer deux accolades, par exemple {{ <TEXTE> }}, utilisez le format {{{{raw}}}}. Exemple :

{{{{raw}}}}
{{ <TEXTE_1> }} {{ <TEXTE_2> }}
{{{{/raw}}}}

Résultat :

{{ <TEXTE_1> }} {{ <TEXTE_2> }}

Les auxiliaires ^|# utilisés dans les variables conditionnelles ne peuvent pas être utilisés avec le format {{{{raw}}}} et doivent être supprimés. Par exemple, pour générer un texte brut de sortie avec la variable conditionnelle {{is_match}}, utilisez le modèle suivant :

{{{{is_match "host.name" "<HOSTNAME>"}}}}
{{ .matched }} le hostname
{{{{/is_match}}}}

Si host.name correspond à <HOSTNAME>, le modèle affiche :

{{ .matched }} le hostname

Encodage URL

Si votre message d’alerte contient des données à inclure dans une URL (par exemple pour une redirection), utilisez la syntaxe {{ urlencode "<variable>"}}.

Exemple : si votre message de monitor inclut une URL vers le Software Catalog filtrée par service, utilisez la variable de tag service et appliquez {{ urlencode "<variable>"}} dans l’URL.

https://app.datadoghq.com/services/{{urlencode "service.name"}}

Pour aller plus loin