As notificações de alerta podem ser gerenciadas com base no Function Compute. Em cenários de webhook, o Cloud Monitor oferece suporte a métodos de notificação de alerta como DingTalk, WeCom, Lark e Slack, além de métodos de entrega de alertas como Auto Scaling, Simple Log Service e Simple Message Queue (SMQ, anteriormente MNS). Se os métodos de notificação e entrega de alertas existentes não atenderem às suas necessidades, use o Function Compute para escrever código e permitir que outras ferramentas recebam as notificações de alerta.
Pré-requisitos
O Function Compute está ativado. Para mais informações, consulte Step 1: Activate Function Compute.
Caso outras ferramentas precisem receber notificações de alerta, prepare os URLs de webhook delas com antecedência.
Cenários
Use o Function Compute para processar o formato do conteúdo das notificações de alerta, permitindo que outras ferramentas as recebam.
Use o Function Compute para personalizar o conteúdo das notificações de alerta do Cloud Monitor.
Etapa 1: Implantar uma função de código no Function Compute
-
Crie um serviço.
Insira um nome para o serviço e mantenha os valores padrão dos demais parâmetros. Para mais informações, consulte Step 2: Create a service.
-
Crie uma função.
Na seção Basic Settings, especifique Function Name e defina Handler Type como Event Handler. Mantenha os valores padrão dos demais parâmetros. Para mais informações, consulte Step 3: Create a function.
Neste exemplo, Runtime está definido como Java 8.
NotaA configuração de Handler na seção Advanced Settings deve ser consistente com o código da função. Por exemplo, o valor padrão de Handler para a função é example.App::handleRequest. Nesse valor padrão, example identifica o nome do pacote, App identifica o nome da classe e handleRequest identifica o método da classe. Para consultar os requisitos de outras linguagens de programação, clique no link "Event handler" indicado em Function Compute runtimes.
-
Implante o código da função.
-
Na guia Code, clique em Upload Code no canto superior direito e selecione Upload JAR Package.
NotaJava é uma linguagem de programação compilada e não oferece suporte à visualização e edição de código online. Desenvolva o código localmente e faça o upload por meio de um Object Storage Service (OSS) ou de um pacote JAR. Para mais informações sobre como editar e implantar um pacote de código no ambiente Java, consulte Build and deploy a code package.
O código de exemplo a seguir ilustra um pacote JAR no código da função. Ele indica que os dados de notificação de alerta do Cloud Monitor são primeiro transmitidos à função via
inputStream. Em seguida, modifique o formato dos dados e envie-os para diferentes URLs de webhook para processamento da lógica de negócio. O código de exemplo implementa a operaçãoStreamRequestHandlere imprime apenas os dados da notificação de alerta.package example; import com.aliyun.fc.runtime.Context; import com.aliyun.fc.runtime.FunctionInitializer; import com.aliyun.fc.runtime.StreamRequestHandler; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** * Hello world! */ public class App implements StreamRequestHandler, FunctionInitializer { public void initialize(Context context) throws IOException { //TODO } @Override public void handleRequest( InputStream inputStream, OutputStream outputStream, Context context) throws IOException { int n; StringBuilder sb = new StringBuilder(); while ((n = inputStream.read()) != -1) { sb.append((char) n); } System.out.println("alert param"); System.out.println(sb.toString()); } }NotaPara o desenvolvimento do código, consulte a documentação a seguir:
Para mais informações sobre como desenvolver código em diversas linguagens de programação, consulte Code development overview.
Para mais informações sobre as funções de evento no código de exemplo, consulte Event functions. Baixe um projeto do repositório de código de exemplo do Function Compute para desenvolver o código da função com mais agilidade.
Para mais informações sobre desenvolvimento em Java, consulte Event handlers.
Na caixa de diálogo Upload Code in ZIP, JAR, or WAR Package, faça o upload do pacote de código e clique em Save and Deploy.
-
-
Teste o código da função.
Na guia Code da função, clique em Test Function.
-
Na guia Test Function, clique em Configure test events, copie os dados de notificação de alerta do Cloud Monitor a seguir para a seção Create New Test Event e clique em Test Function.
Após a execução ser concluída com êxito, visualize o resultado da execução, a saída do log e o resultado da verificação de negócio.
{ "product":"KVstore", "metricName":"ShardingCpuUsage", "instance":{ "instanceId":"r-bp1wt5u2ov6e5w****", "resource":"r-bp1wt5u2ov6e5w****", "instanceName":"online", "vpc":{ "vswitchInstanceId":"vsw-bp1rpjm10in1wgxd4****", "vpcInstanceId":"vpc-bp1n5sng5dntm3daf****" }, "aliUid":173651113438****, "category":"KVSTORE", "region":{ "regionId":"cn-hangzhou", "availabilityZone":"" }, "networkType":"VPC", "dimension":{ }, "desc":"", "tags":[ { "value":"1", "key":"__level__" } ] }, "Average":0.483, "userId":"173651113438****", "curLevel":"INFO", "Maximum":0.483, "__ts__":168612****, "instanceId":"r-bp1wt5u2ov6e5w****", "escalation":{ "comparisonOperator":"GreaterThanOrEqualToThreshold", "expression":"$Average >= 0.1", "level":4, "statistics":"Average", "tag":"INFO", "threshold":"0.1", "times":1 }, "ruleName":"test-tair", "nodeId":"r-bp1wt5u2ov6e5w****-db-1", "timestamp":1686123300000 }
Etapa 2: Configurar uma regra de alerta no console do Cloud Monitor
Faça login no console do Cloud Monitor.
No painel de navegação à esquerda, escolha .
Na página Alert Rules, clique em Create Alert Rule.
-
No painel Create Alert Rule, configure as informações básicas da regra de alerta. Em seguida, clique em Advanced Settings, ative Function Compute e selecione a região, o serviço e a função correspondentes.
Para mais informações sobre como configurar os parâmetros de uma regra de alerta, consulte Create an alert rule.
NotaA região, o serviço e a função selecionados nesta etapa devem ser os mesmos criados em Step 1.
Clique em Confirm.
Etapa 3: Visualizar o resultado do acionamento do alerta
Quando um alerta é acionado com base em uma regra para a qual o Function Compute está ativado, a função especificada é chamada. Visualize os logs de invocação da função no console do Function Compute para verificar se eles atendem às suas expectativas.
Faça login no console do Function Compute 3.0.
No painel de navegação à esquerda, clique em Functions. Na barra de navegação superior, selecione uma região.
Clique no nome da função desejada.
-
Na parte central da página, clique na guia Logs, depois clique na guia Invocation Requests e selecione um intervalo de tempo.
NotaSe for a primeira vez que você visualiza os logs de invocação de uma função, clique em Enable para ativar o recurso de log.
Clique em Request Log na coluna Actions para visualizar os detalhes do log de invocação desejado.