Use um serviço de webhook para resolver dinamicamente os destinatários das notificações de alerta, em vez de manter listas de destinatários no Simple Log Service.
Casos de uso
Você pode criar usuários ou grupos de usuários no Simple Log Service e selecioná-los em uma política de ação para receber notificações de alerta. No entanto, essa abordagem pode não ser adequada para todos os cenários, como:
Integração com sistemas externos de gerenciamento de usuários: muitas organizações usam seus próprios sistemas de gerenciamento de identidade. Manter as informações de usuários sincronizadas em tempo real com o Simple Log Service pode ser complexo, pois os modelos de usuário e grupo da plataforma nem sempre correspondem perfeitamente à estrutura organizacional existente.
Notificação de contatos dinâmicos: se o seu sistema tiver muitos serviços e cada um exigir alertas para diferentes destinatários, configurar ramificações separadas na política de ação aumenta a sobrecarga de manutenção.
Funcionamento
Com o recurso de destinatário dinâmico, você fornece um serviço de webhook que o Simple Log Service chama quando um alerta é acionado. O webhook retorna as informações de contato dos destinatários, eliminando a necessidade de manter listas de destinatários no Simple Log Service.
-
Destinatário dinâmico
-
Destinatário estático
Configuração
Em uma política de ação, defina Recipient Type como Dynamic Recipient e configure os seguintes parâmetros.
|
Parâmetro |
Descrição |
|
Recipient type |
Selecione Dynamic Recipient. |
|
Recipient callback URL |
URL do seu serviço de webhook. Para obter mais informações, consulte Especificação da API. As seguintes restrições se aplicam:
Importante
O webhook de destinatário dinâmico segue a mesma convenção de chamada de um webhook padrão de notificação de alerta. Para controlar o acesso, configure uma lista de permissões de endereços IP ou cabeçalhos HTTP personalizados. Para obter mais informações, consulte Configurar controle de acesso. |
|
Request header |
Cabeçalho de requisição incluído quando o Simple Log Service envia uma solicitação para a URL de callback do destinatário. Por padrão, o Simple Log Service adiciona o cabeçalho de requisição Content-Type: application/json. Definir Content-Type com outro valor não surte efeito. |
Especificação da API
Requisição
Método de requisição: POST
-
Cabeçalho da requisição:
Seus cabeçalhos de requisição personalizados.
Cabeçalho de requisição padrão: Content-Type: application/json.
-
Exemplo de payload da requisição
O campo alerts é um array que contém até 10 alertas correlacionados. Para obter mais informações sobre os parâmetros, consulte Variáveis em modelos de alerta (novo). Seu serviço de webhook usa esses dados para determinar os destinatários e retornar suas informações de contato ao Simple Log Service.
{ "alerts": [ { "alert_id": "test-alert-1", // Unique ID of the alert "alert_instance_id": "jid-**********-a578-441e-8d25-42e92aef506c", // instance ID "alert_name": "Test Alert 1", // Alert rule name "alert_time": 1646808904, // Current evaluation time "alert_type": "sls_alert", // Alert type "aliuid": "123****3424", // Alibaba Cloud account ID // Annotations "annotations": { "desc": "Test alert triggered", // Description "title": "Test Title" // Title }, // The data entries that triggered the alert "fire_results": [ {"message": "error occurs"} ], "fire_results_count": 1, // Total number of data entries that triggered the alert "fire_time": 1646808904, // First trigger time // Labels "labels": { "app": "nginx", // Application tag "env": "prod", // Environment tag "team": "sre" // Responsible team }, "next_eval_interval": 60, // Next evaluation interval (seconds) "project": "demo-alert", // The project to which the alert rule belongs "region": "cn-hangzhou", // region "resolve_time": 0, // Time when the alert was resolved. The value is 0 if the alert status is 'firing', or the actual resolution time if the alert status is 'resolved'. "severity": 8, // alert severity (10: Critical, 8: High, 6: Medium, 4: Low, 2: Report-Only) "status": "firing" // alert status ('firing': triggered, 'resolved': recovery notification) } ] }
Resposta
Código de status: 200
Cabeçalho da resposta: deve incluir Content-Type: application/json.
-
Exemplo de corpo da resposta:
{ "receivers": [{ "code": "86", "phone": "137****34", "email": "****@example.com" }] }Parâmetro
Tipo
Obrigatório
Descrição
code
string
Não
Código de discagem internacional do país. O padrão é 86 se omitido.
phone
string
Não
Usado para notificações via SMS, voz, DingTalk e Enterprise WeChat. Não necessário para notificações por e-mail.
email
string
Não
Usado apenas para notificações por e-mail. Não necessário para outros canais.