Avvisi
Come sapere quando le tue funzioni si comportano in modo anomalo: i parametri che puoi guardare, come vengono controllate le regole e come gestirle su HTTP.
1. Crea una regola
Le regole di avviso sono gestite su HTTP con una chiave service_role. L'SDK non ha alcun metodo per loro.
2. Metriche, condizioni e canali
| Campo | Valori consentiti |
|---|---|
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 | Un indirizzo e-mail o l'URL del webhook o dell'hook Slack |
log_pattern controlla i log di un servizio per un'espressione regolare: log_pattern:functions:timeout. Un valore sconosciuto restituisce 400 ed elenca quelli accettati. Risposta reale per metric: "cpu":
3. Come vengono controllate le regole
- Il servizio controlla ogni regola abilitata una volta al minuto.
- Le metriche numeriche vengono lette da Prometeo; Le regole di
log_patterninterrogano Loki. Ogni query ha un limite di 5 secondi. Se un progetto fallisce, gli altri vengono comunque controllati. - Quando viene attivata una regola, il servizio imposta
last_triggered_at, registra un evento e lo pubblica per la consegna sul canale scelto. - Una regola disabilitata viene mantenuta ma non controllata.
Gli avvisi necessitano che Prometheus e Loki siano raggiungibili dal servizio delle funzioni e il canale di posta elettronica necessita di un provider di posta elettronica. Su uno stack di sviluppo senza di essi, una regola viene archiviata ma non può essere attivata.
4. Gestisci regole e cronologia
| Azione | Richiesta |
|---|---|
| Elenco regole | GET /v1/functions/alerts |
| Abilita o disabilita | PATCH /v1/functions/alerts/{id} con {"enabled": false} |
| Elimina | DELETE /v1/functions/alerts/{id} |
| Storia di una regola | GET /v1/functions/alerts/{id}/events |
| Storia di tutte le regole | GET /v1/functions/alerts/events |
Un evento ha alert_rule_id, event_type, triggered_value, message e created_at; i percorsi storici accettano limit e offset. Ogni percorso necessita di una chiave service_role.