Alerty
Jak dowiedzieć się, kiedy funkcje działają nieprawidłowo: jakie metryki możesz obserwować, w jaki sposób sprawdzane są reguły i jak nimi zarządzać za pośrednictwem protokołu HTTP.
1. Utwórz regułę
Reguły alertów są zarządzane przez protokół HTTP za pomocą klucza service_role. SDK nie ma dla nich żadnej metody.
2. Metryki, warunki i kanały
| Pole | Dozwolone wartości |
|---|---|
metric | error_rate, latency_p95, job_failures, low_disk, ai_quota, anomaly_detection lub log_pattern:<service>:<regex> |
condition | gt, lt, eq, match, auto |
channel | email, webhook, slack |
threshold | Kilka |
destination | Adres e-mail lub adres URL webhooka lub haka Slack |
log_pattern obserwuje logi jednej usługi pod kątem wyrażenia regularnego: log_pattern:functions:timeout. Nieznana wartość zwraca 400 i wyświetla listę zaakceptowanych. Prawdziwa odpowiedź na metric: "cpu":
3. Jak sprawdzane są reguły
- Usługa sprawdza każdą włączoną regułę raz na minutę.
- Metryki numeryczne są odczytywane z Prometeusza; Reguły
log_patternwysyłają zapytanie do Lokiego. Każde zapytanie ma limit 5 sekund. Jeśli jeden projekt zakończy się niepowodzeniem, pozostałe są nadal sprawdzane. - Po uruchomieniu reguły usługa ustawia
last_triggered_at, rejestruje zdarzenie i publikuje je w celu dostarczenia na wybranym kanale. - Reguła, którą wyłączysz, zostanie zachowana, ale nie zaznaczona.
Alerty wymagają dostępności Prometheusa i Lokiego z usługi funkcji, a kanał e-mail wymaga dostawcy poczty e-mail. Na stosie programistycznym bez nich reguła jest przechowywana, ale nie może zostać uruchomiona.
4. Zarządzaj regułami i historią
| Działanie | Wniosek |
|---|---|
| Zasady listy | GET /v1/functions/alerts |
| Włącz lub wyłącz | PATCH /v1/functions/alerts/{id} z {"enabled": false} |
| Usuwać | DELETE /v1/functions/alerts/{id} |
| Historia jednej reguły | GET /v1/functions/alerts/{id}/events |
| Historia wszystkich zasad | GET /v1/functions/alerts/events |
Zdarzenie ma alert_rule_id, event_type, triggered_value, message i created_at; trasy historii akceptują limit i offset. Każda trasa wymaga klucza service_role.