Alertes
Comment être informé lorsque vos fonctions se comportent mal : les métriques que vous pouvez surveiller, comment les règles sont vérifiées et comment les gérer via HTTP.
1. Créez une règle
Les règles d'alerte sont gérées via HTTP avec une clé service_role. Le SDK n'a aucune méthode pour eux.
2. Métriques, conditions et canaux
| Champ | Valeurs autorisées |
|---|---|
metric | error_rate, latency_p95, job_failures, low_disk, ai_quota, anomaly_detection ou log_pattern:<service>:<regex> |
condition | gt, lt, eq, match, auto |
channel | email, webhook, slack |
threshold | Un numéro |
destination | Une adresse e-mail, ou l'URL du webhook ou du Slack hook |
log_pattern surveille les journaux d'un service pour une expression régulière : log_pattern:functions:timeout. Une valeur inconnue renvoie 400 et répertorie celles acceptées. Vraie réponse pour metric: "cpu":
3. Comment les règles sont vérifiées
- Le service vérifie chaque règle activée une fois par minute.
- Les mesures numériques sont lues à partir de Prometheus ; Les règles
log_patterninterrogent Loki. Chaque requête a une limite de 5 secondes. Si un projet échoue, les autres sont quand même vérifiés. - Lorsqu'une règle se déclenche, le service définit
last_triggered_at, enregistre un événement et le publie pour diffusion sur le canal choisi. - Une règle que vous désactivez est conservée mais n'est pas vérifiée.
Les alertes nécessitent que Prometheus et Loki soient accessibles depuis le service de fonctions, et le canal de messagerie nécessite un fournisseur de messagerie. Sur une pile de développement sans eux, une règle est stockée mais ne peut pas se déclencher.
4. Gérer les règles et l'historique
| Action | Demande |
|---|---|
| Règles de liste | GET /v1/functions/alerts |
| Activer ou désactiver | PATCH /v1/functions/alerts/{id} avec {"enabled": false} |
| Supprimer | DELETE /v1/functions/alerts/{id} |
| Histoire d'une règle | GET /v1/functions/alerts/{id}/events |
| Histoire de toutes les règles | GET /v1/functions/alerts/events |
Un événement a alert_rule_id, event_type, triggered_value, message et created_at; les routes historiques acceptent limit et offset. Chaque itinéraire nécessite une clé service_role.