O Alert Management no Managed Service for OpenTelemetry permite enviar alertas de webhook para objetos de notificação de terceiros. Este tópico usa o Lark como exemplo para explicar como criar um alerta de webhook.
Etapa 1: Obter uma URL de webhook
Configure um bot de webhook do Lark no seu computador.
Abra o Lark e faça login.
Clique em + e, em seguida, clique em Create group para criar um grupo de alertas.
Clique em ícone de configurações do grupo e selecione a aba Bots.
Na aba Bots, clique em Add Bot.
No painel Add Bot, selecione Custom Bot.
Na página de configuração, defina um nome de exibição e uma descrição e clique em Add.
No painel de confirmação exibido, clique em Copy e, depois, em Finish. Copie a URL do webhook e mantenha-a segura. Não a exponha publicamente. Na área Security Settings, marque a caixa de seleção Custom Keywords, adicione a palavra-chave alert e clique em Finish.
Etapa 2: Criar um objeto de notificação de webhook
Faça login no console do Managed Service for OpenTelemetry.
No painel de navegação à esquerda, escolha . Clique em aba Webhook Integration e, em seguida, clique em Create Webhook.
-
Na caixa de diálogo Create Webhook, configure os parâmetros a seguir.
Parâmetro
Descrição
Webhook Name
Obrigatório. Nome personalizado para o webhook.
Post or Get
Obrigatório. Método da requisição. A URL não pode exceder 256 caracteres.
Neste exemplo, selecione Post e cole a URL do webhook obtida na Etapa 1: Obter uma URL de webhook na caixa de texto à direita.
Header or Param
Opcional. Cabeçalho da requisição. O valor não pode exceder 200 caracteres. Clique em + Create para adicionar outras informações de cabeçalho ou parâmetro. O cabeçalho de requisição padrão é Content-Type: text/plain; charset=UTF-8. O número total de cabeçalhos e parâmetros não pode exceder seis.
Neste exemplo, defina os dois cabeçalhos a seguir:
-
Arms-Content-Type : json
-
Content-Type : application/json
Notification template
Modelo para notificações enviadas quando um alerta é acionado. Este parâmetro é opcional e aparece apenas se você selecionar o método de requisição Post. Use a variável de modelo $content para gerar o conteúdo da notificação. O modelo não pode exceder 500 caracteres. Para mais informações, consulte Configurar modelos de notificação e modelos de webhook.
Veja a seguir um exemplo de modelo de notificação:
{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Alert Time":"{{ .startTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Para este exemplo com o Lark, utilize o seguinte formato de texto:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification Policy: {{ .dispatchRuleName }} \nAlert Time: {{ .startTime }} \nAlert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Alert resolution template
Modelo para notificações enviadas quando um alerta é resolvido. Este parâmetro é opcional e aparece apenas se você selecionar o método de requisição Post. Use a variável de modelo $content para gerar o conteúdo da notificação. O modelo não pode exceder 500 caracteres. Para mais informações, consulte Configurar modelos de notificação e modelos de webhook.
Veja a seguir um exemplo de modelo de resolução de alerta:
{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Resolution Time":"{{ .endTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Para este exemplo com o Lark, utilize o seguinte formato de texto:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Resolution Time: {{ .endTime }} \nNotification Policy: {{ .dispatchRuleName }} \nResolved Alert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } } -
Clique em Send Test para verifique a configuração.
Clique em OK.
Etapa 3: Configurar uma política de notificação
Crie ou edite uma política de notificação, defina the Notification Object como Universal Webhook e selecione a Webhook Integration correspondente.
Se o endpoint de destino não responder em até 5 segundos, o alerta de webhook expira e a notificação falha.