Alertas
Cómo saber cuándo sus funciones se comportan mal: las métricas que puede observar, cómo se verifican las reglas y cómo administrarlas a través de HTTP.
1. Crea una regla
Las reglas de alerta se administran a través de HTTP con una clave service_role. El SDK no tiene ningún método para ellos.
2. Métricas, condiciones y canales
| campo | Valores permitidos |
|---|---|
metric | error_rate, latency_p95, job_failures, low_disk, ai_quota, anomaly_detection o log_pattern:<service>:<regex> |
condition | gt, lt, eq, match, auto |
channel | email, webhook, slack |
threshold | un numero |
destination | Una dirección de correo electrónico o la URL del webhook o del gancho de Slack |
log_pattern observa los registros de un servicio en busca de una expresión regular: log_pattern:functions:timeout. Un valor desconocido devuelve 400 y enumera los aceptados. Respuesta real para metric: "cpu":
3. Cómo se verifican las reglas
- El servicio verifica cada regla habilitada una vez por minuto.
- Las métricas numéricas se leen desde Prometheus;
log_patternconsulta de reglas a Loki. Cada consulta tiene un límite de 5 segundos. Si un proyecto falla, los demás aún se revisan. - Cuando se activa una regla, el servicio configura
last_triggered_at, registra un evento y lo publica para su entrega en el canal elegido. - Una regla que deshabilites se mantiene pero no se verifica.
Las alertas necesitan que Prometheus y Loki sean accesibles desde el servicio de funciones, y el canal de correo electrónico necesita un proveedor de correo electrónico. En una pila de desarrollo sin ellos, una regla se almacena pero no se puede activar.
4. Gestionar las reglas y el historial.
| acción | Solicitar |
|---|---|
| Lista de reglas | GET /v1/functions/alerts |
| Activar o desactivar | PATCH /v1/functions/alerts/{id} con {"enabled": false} |
| Eliminar | DELETE /v1/functions/alerts/{id} |
| Historia de una regla | GET /v1/functions/alerts/{id}/events |
| Historia de todas las reglas. | GET /v1/functions/alerts/events |
Un evento tiene alert_rule_id, event_type, triggered_value, message y created_at; las rutas del historial aceptan limit y offset. Cada ruta necesita una clave service_role.