Las notificaciones de alerta se pueden gestionar con Function Compute. En escenarios de webhook, CloudMonitor admite métodos de notificación como DingTalk, WeCom, Lark y Slack, así como métodos de entrega como Auto Scaling, Simple Log Service y Simple Message Queue (SMQ, anteriormente MNS). Si los métodos existentes no cumplen con sus requisitos, utilice Function Compute para escribir código que permita a otras herramientas recibir las notificaciones de alerta.
Requisitos previos
Function Compute está activado. Para obtener más información, consulte Step 1: Activate Function Compute.
Si desea que otras herramientas reciban notificaciones de alerta, prepare sus URL de webhook con antelación.
Escenarios
Utilizar Function Compute para procesar el formato del contenido de las notificaciones de alerta y permitir que otras herramientas las reciban.
Utilizar Function Compute para personalizar el contenido de las notificaciones de alerta de CloudMonitor.
Paso 1: Desplegar una función de código en Function Compute
-
Cree un servicio.
Introduzca un nombre de servicio. Utilice los valores predeterminados para los demás parámetros. Para obtener más información, consulte Step 2: Create a service.
-
Cree una función.
En la sección Basic Settings, especifique el Function Name y establezca el Handler Type en Event Handler. Utilice los valores predeterminados para los demás parámetros. Para obtener más información, consulte Step 3: Create a function.
En este ejemplo, el Runtime se establece en Java 8.
NotaLa configuración del Handler en la sección Advanced Settings debe coincidir con el código de la función. Por ejemplo, el valor predeterminado del Handler para la función es example.App::handleRequest. En este valor, example identifica un nombre de paquete, App identifica un nombre de clase y handleRequest identifica un método de clase. Para consultar los requisitos de otros lenguajes de programación, haga clic en el enlace "Event handler" proporcionado en Function Compute runtimes.
-
Despliegue el código de la función.
-
En la pestaña Code, haga clic en Upload Code en la esquina superior derecha y seleccione Upload JAR Package.
NotaJava es un lenguaje de programación compilado y no admite la visualización ni la edición de código en línea. Debe desarrollar el código localmente y luego cargarlo mediante un paquete de Object Storage Service (OSS) o JAR. Para obtener más información sobre cómo editar y desplegar un paquete de código en el entorno Java, consulte Build and deploy a code package.
El siguiente código de ejemplo muestra un paquete JAR en el código de la función. Este código indica que los datos de notificación de alerta de CloudMonitor se transmiten primero a la función mediante la ejecución de
inputStream. Posteriormente, puede modificar el formato de los datos y enviarlos a diferentes URL de webhook para su procesamiento lógico. El código de ejemplo implementa la operaciónStreamRequestHandlery solo imprime los datos de notificación 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 el desarrollo de código, consulte la siguiente documentación:
Para obtener más información sobre cómo desarrollar código en varios lenguajes de programación, consulte Code development overview.
Para obtener más información sobre las funciones de evento en el código de ejemplo, consulte Event functions. Puede descargar un proyecto desde el repositorio de código de ejemplo de Function Compute y desarrollar rápidamente el código de la función.
Para obtener más información sobre el desarrollo en Java, consulte Event handlers.
En el cuadro de diálogo Upload Code in ZIP, JAR, or WAR Package, cargue el paquete de código y haga clic en Save and Deploy.
-
-
Pruebe el código de la función.
En la pestaña Code de la función, haga clic en Test Function.
-
En la pestaña Test Function, haga clic en Configure test events, copie los siguientes datos de notificación de alerta de CloudMonitor en la sección Create New Test Event y haga clic en Test Function.
Una vez completada la ejecución correctamente, podrá consultar el resultado de la ejecución, la salida del registro y el resultado de la verificación empresarial.
{ "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 }
Paso 2: Configurar una regla de alerta en la consola de CloudMonitor
Inicie sesión en la consola de CloudMonitor.
En el panel de navegación izquierdo, vaya a .
En la página Alert Rules, haga clic en Create Alert Rule.
-
En el panel Create Alert Rule, configure la información básica de la regla de alerta. A continuación, haga clic en Advanced Settings, active Function Compute y seleccione su región, servicio y función.
Para obtener más información sobre cómo configurar los parámetros de una regla de alerta, consulte Create an alert rule.
NotaLa región, el servicio y la función que seleccione en este paso deben ser los mismos que creó en Step 1.
Haga clic en Confirm.
Paso 3: Consultar el resultado de activación de la alerta
Cuando se activa una alerta basada en la regla para la cual se habilitó Function Compute, se invoca la función especificada. Puede consultar los registros de invocación de la función en la consola de Function Compute y determinar si cumplen con sus expectativas.
Inicie sesión en la consola de Function Compute 3.0.
En el panel de navegación izquierdo, haga clic en Functions. En la barra de navegación superior, seleccione una región.
Haga clic en el nombre de la función deseada.
-
En la parte central de la página, haga clic en la pestaña Logs, luego en la pestaña Invocation Requests y seleccione un intervalo de tiempo.
NotaSi consulta los registros de invocación de una función por primera vez, haga clic en Enable para habilitar la función de registro.
Haga clic en Request Log en la columna Actions para consultar los detalles del registro de invocación deseado.