Notifications d’erreurs pour les groupes de basculement et de réplication¶
Vous pouvez recevoir des notifications d’erreur pour les échecs des opérations d’actualisation en définissant une intégration de notification pour un groupe de réplication ou de basculement principal.
Notifications d’erreurs en cas d’échec de l’opération de rafraîchissement¶
Lorsque vous activez les notifications d’erreur pour un groupe de basculement ou de réplication, une notification est envoyée via l’adresse e-mail désignée, le service de messagerie Cloud ou le webhook lorsqu’une opération d’actualisation échoue.
Les notifications comprennent les informations suivantes :
Noms des comptes source et cible.
Régions source et cible (et groupe de régions, le cas échéant).
Nom des groupes de basculement ou de réplication primaire et secondaire.
Horodatage du moment où l’erreur s’est produite.
Code d’erreur et message.
URL de connexion de la source et de la cible.
Notifications d’erreurs et basculement¶
Les notifications sont activées sur le groupe de basculement ou de réplication primaire et envoyées à l’aide d’une intégration de notification. Il n’est pas exigé que l’intégration de notification soit répliquée sur le compte cible. En cas de basculement, si l’intégration de notification a été répliquée ou s’il existe une intégration de notification portant le même nom dans le compte source nouvellement promu, les notifications d’erreur continuent d’être envoyées.
Si l’intégration de notification n’est pas disponible, les notifications d’erreur ne sont pas envoyées en cas d’échec de l’opération de rafraîchissement.
Prérequis : Intégration de notification pour les notifications d’erreur¶
Une intégration de notification est nécessaire pour envoyer des notifications d’erreur. L’intégration de notification doit être l’un des types suivants pour envoyer des notifications par e-mail en cas d’échec de l’opération d’actualisation :
- TYPE = EMAIL:
L’intégration de notification par e-mail doit avoir au moins une adresse e-mail vérifiée dans la liste DEFAULT_RECIPIENTS.
Pour plus d’informations sur la création d’une notification par e-mail avec une liste de destinataires par défaut, voir Spécifier une liste de destinataires et d’un objet par défaut.
- TYPE = QUEUE:
Vous pouvez utiliser une intégration de notification configurée pour pousser des notifications vers un service de messagerie pour n’importe lequel des fournisseurs de Cloud pris en charge par Snowflake. Vous devez donner au paramètre TYPE d’intégration de notification la valeur QUEUE et au paramètre DIRECTION la valeur OUTBOUND.
Pour plus d’informations, voir Envoi de notifications aux files d’attente des fournisseurs de cloud (Amazon SNS, Google Cloud PubSub et Azure Event Grid).
- TYPE = WEBHOOK:
Vous pouvez utiliser une intégration de notification configurée pour envoyer des notifications à un webhook pour n’importe quel système externe pris en charge par Snowflake. Définissez le paramètre d’intégration de notification TYPE sur WEBHOOK. Il se peut que vous deviez également créer un secret (si le système externe l’exige).
Pour plus d’informations, voir Envoi de notifications webhook.
Créer une intégration de notification (TYPE = EMAIL)¶
Pour créer une intégration de notification par e-mail nommée my_notification_int
avec l’adresse e-mail first.last@example.com
, procédez comme suit :
Assurez-vous que l’adresse e-mail
first.last@example.com
a été vérifiée.Créez l’intégration de notification en exécutant la commande CREATE NOTIFICATION INTEGRATION. Par exemple :
CREATE NOTIFICATION INTEGRATION my_notification_int TYPE = EMAIL ENABLED = TRUE DEFAULT_RECIPIENTS = ('first.last@example.com');
Créer une intégration de notification (TYPE = QUEUE)¶
Pour créer une intégration de notification afin de pousser les notifications vers une file d’attente de fournisseur Cloud, suivez les instructions fournies pour les files d’attente de fournisseur Cloud actuellement prises en charge :
Créer une intégration de notification (TYPE = WEBHOOK)¶
Pour créer une intégration de notification permettant d’envoyer des notifications à un webhook de système externe, suivez les instructions fournies pour les webhooks de système externe actuellement pris en charge :
Création d’un secret Slack et d’une intégration de notification Slack
Création d’un secret Microsoft Teams et d’une intégration de notification Microsoft Teams
Création d’un PagerDuty secret et d’une PagerDuty intégration de notification
Important
L’intégration de notification par webhook doit spécifier le paramètre WEBHOOK_BODY_TEMPLATE avec SNOWFLAKE_WEBHOOK_MESSAGE
comme valeur d’espace réservé. Lorsque la notification est envoyée, l’espace réservé est remplacé par le contenu de la notification d’erreur de réplication, comme décrit dans Notifications d’erreur pour les échecs des opérations de rafraîchissement.
Le format pour spécifier WEBHOOK_BODY_TEMPLATE dépend du système externe :
Pour Slack ou Microsoft Teams, WEBHOOK_BODY_TEMPLATE utilise comme valeur le format d’objet JSON à valeur unique suivant :
WEBHOOK_BODY_TEMPLATE='{"text": "SNOWFLAKE_WEBHOOK_MESSAGE"}'
Pour PagerDuty, WEBHOOK_BODY_TEMPLATE utilise un objet JSON à valeurs multiples comme valeur, mais avec les différences suivantes par rapport à une intégration de notification PagerDuty standard :
Dans la clé
payload
, la clésummary
n’est pas utilisée pour spécifierSNOWFLAKE_WEBHOOK_MESSAGE
.Au lieu de cela, une clé supplémentaire
custom_details
est utilisée pour spécifierSNOWFLAKE_WEBHOOK_MESSAGE
.
Par exemple :
WEBHOOK_BODY_TEMPLATE='{ "routing_key": "SNOWFLAKE_WEBHOOK_SECRET", "event_action": "trigger", "payload": { "summary": "Snowflake replication failure", "source": "Snowflake monitoring", "severity": "INFO", "custom_details": { "message": "SNOWFLAKE_WEBHOOK_MESSAGE" } } }'
Ajouter une notification d’erreur pour un groupe de basculement ou de réplication¶
Pour activer les notifications d’erreur pour un groupe de basculement/réplication existant, utilisez la commande ALTER REPLICATION GROUP ou ALTER FAILOVER GROUP pour définir le paramètre ERROR_INTEGRATION.
Par exemple, ajoutez l’intégration de notification my_notification_int
au groupe de basculement my_fg
. L’instruction suivante doit être exécutée à partir du compte source :
ALTER FAILOVER GROUP my_fg SET
ERROR_INTEGRATION = my_notification_int;
Pour créer un groupe de basculement/réplication et activer les notifications d’erreur, utilisez la commande CREATE REPLICATION GROUP ou CREATE FAILOVER GROUP et définissez le paramètre ERROR_INTEGRATION.
Par exemple, pour créer le groupe de basculement my_fg
afin de permettre la réplication et le basculement des bases de données db1
, db2
vers les comptes myaccount2
et myaccount2
dans l’organisation myorg
, exécutez l’instruction suivante dans le compte source pour créer un groupe de basculement principal :
CREATE FAILOVER GROUP my_fg
OBJECT_TYPES = DATABASES
ALLOWED_DATABASES = db1, db2
ALLOWED_ACCOUNTS = myorg.myaccount2, myorg.myaccount3
REPLICATION_SCHEDULE = '10 MINUTE'
ERROR_INTEGRATION = my_notification_int;
Note
Si le calendrier de réplication d’un groupe de basculement ou de réplication est défini sur une fréquence élevée, par exemple une minute, les notifications d’erreur pour le même problème sont envoyées pour chaque opération d’actualisation planifiée.