Notificações de erro para grupos de replicação e failover¶
Você pode receber notificações de erro para falhas na operação de atualização definindo uma integração de notificação para uma replicação primária ou grupo de failover.
Notificações de erro para falhas na operação de atualização¶
Ao ativar as notificações de erro para um grupo de replicação ou failover, uma notificação é enviada por meio do e-mail designado, do serviço de mensagens na nuvem ou do webhook quando uma operação de atualização falha.
As notificações incluem as seguintes informações:
Nomes de contas de origem e destino.
Regiões de origem e destino (e grupo de regiões, se aplicável).
Nome do grupo de replicação ou failover primário e secundário.
Carimbo de data/hora em que o erro ocorreu.
Código e mensagem de erro.
URL de login de origem e destino.
Notificações de erro e failover¶
As notificações são ativadas na replicação primária ou no grupo de failover e enviadas usando uma integração de notificação. Não é necessário que a integração da notificação seja replicada na conta de destino. No caso de failover, se a integração de notificação tiver sido replicada ou se houver uma integração de notificação existente com o mesmo nome na conta de origem recém-promovida, as notificações de erro continuarão a ser enviadas.
Se a integração de notificação não estiver disponível, as notificações de erro não serão enviadas para falhas na operação de atualização.
Pré-requisito: integração de notificação para notificações de erro¶
É necessária uma integração de notificação para envio de notificações de erro. A integração de notificação deve ser de um dos tipos a seguir para enviar notificações por e-mail sobre falhas na operação de atualização:
- TYPE = EMAIL:
A integração de notificação por e-mail deve ter pelo menos um endereço de e-mail verificado na lista DEFAULT_RECIPIENTS.
Para obter mais informações sobre como criar uma notificação por e-mail com uma lista padrão de destinatários, consulte Especificar uma lista padrão de destinatários e uma linha de assunto padrão.
- TYPE = QUEUE:
É possível usar uma integração de notificação configurada para enviar notificações a um serviço de mensagens para qualquer um dos provedores de nuvem compatíveis com o Snowflake. É necessário definir o parâmetro de integração de notificação TYPE como QUEUE e o parâmetro DIRECTION como OUTBOUND.
Para obter mais informações, consulte Envio de notificações para filas do provedor de nuvem (Amazon SNS, Google Cloud PubSub e Azure Event Grid).
- TYPE = WEBHOOK:
É possível usar uma integração de notificação configurada para enviar notificações a um webhook para qualquer um dos sistemas externos compatíveis com o Snowflake. Defina o parâmetro de integração de notificação TYPE como WEBHOOK. Talvez você também precise criar um segredo (se exigido pelo sistema externo).
Para obter mais informações, consulte Envio de notificações de webhook.
Como criar uma integração de notificação (TYPE = EMAIL)¶
Para criar uma integração de notificação por e-mail chamada my_notification_int
com o endereço de e-mail first.last@example.com
, siga estas etapas:
Certifique-se de que o endereço de e-mail
first.last@example.com
tenha sido verificado.Como criar a integração de notificação executando o comando CREATE NOTIFICATION INTEGRATION. Por exemplo:
CREATE NOTIFICATION INTEGRATION my_notification_int TYPE = EMAIL ENABLED = TRUE DEFAULT_RECIPIENTS = ('first.last@example.com');
Como criar uma integração de notificação (TYPE = QUEUE)¶
Para criar uma integração de notificação e enviar notificações para uma fila de provedor de nuvem, siga as instruções fornecidas para as filas de provedor de nuvem atualmente compatíveis:
Como criar uma integração de notificação (TYPE = WEBHOOK)¶
Para criar uma integração de notificação e enviar notificações a um webhook de sistema externo, siga as instruções fornecidas para os webhooks de sistema externo atualmente compatíveis:
Criação de um segredo do Slack e integração de notificações do Slack
Criação de um segredo do Microsoft Teams e integração de notificações do Microsoft Teams
Criação de um segredo do PagerDuty e integração de notificações do PagerDuty
Importante
A integração da notificação do webhook deve especificar o parâmetro WEBHOOK_BODY_TEMPLATE com SNOWFLAKE_WEBHOOK_MESSAGE
como um valor de espaço reservado. Quando a notificação é enviada, o espaço reservado é substituído pelo conteúdo da notificação de erro de replicação, conforme descrito em Notificações de erro para falhas na operação de atualização.
O formato para especificar WEBHOOK_BODY_TEMPLATE depende do sistema externo:
Para o Slack ou o Microsoft Teams, WEBHOOK_BODY_TEMPLATE utiliza o seguinte formato de objeto JSON de valor único como seu valor:
WEBHOOK_BODY_TEMPLATE='{"text": "SNOWFLAKE_WEBHOOK_MESSAGE"}'
Para PagerDuty, WEBHOOK_BODY_TEMPLATE utiliza um objeto JSON de vários valores como seu valor, mas com as seguintes diferenças em relação a uma integração de notificação PagerDuty padrão:
Dentro da chave
payload
, a chavesummary
não é usada para especificarSNOWFLAKE_WEBHOOK_MESSAGE
.Em vez disso, uma chave
custom_details
adicional é usada para especificarSNOWFLAKE_WEBHOOK_MESSAGE
.
Por exemplo:
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" } } }'
Como adicionar uma notificação de erro para um grupo de replicação ou failover¶
Para ativar as notificações de erro para um grupo de replicação/failover existente, use o comando ALTER REPLICATION GROUP ou ALTER FAILOVER GROUP para definir o parâmetro ERROR_INTEGRATION.
Por exemplo, adicione a integração de notificação my_notification_int
ao grupo de failover my_fg
. A instrução a seguir deve ser executada a partir da conta de origem:
ALTER FAILOVER GROUP my_fg SET
ERROR_INTEGRATION = my_notification_int;
Para criar um grupo de replicação/failover e ativar as notificações de erro, use o comando CREATE REPLICATION GROUP ou CREATE FAILOVER GROUP e defina o parâmetro ERROR_INTEGRATION.
Por exemplo, para criar o grupo de failover my_fg
e permitir a replicação e o failover dos bancos de dados db1
, db2
para as contas myaccount2
e myaccount2
na organização myorg
, execute a seguinte instrução na conta de origem para criar um grupo de failover primário:
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;
Nota
Se o cronograma de replicação de um grupo de replicação ou failover estiver definido para uma frequência alta, por exemplo, um minuto, as notificações de erro para o mesmo problema serão enviadas para cada operação de atualização programada.