Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Ta tabela systemowa jest dostępna w publicznej wersji zapoznawczej.
Ta strona zawiera informacje o tabelach systemu alertów, w tym zarys schematu każdej tabeli. Użyj tych tabel, aby bezpośrednio w SQL zapytać alerty w obszarze roboczym i ich historię ocen, aby móc audytować definicje alertów, analizować trendy ewaluacji i monitorować obciążenia alertów na dużą skalę.
Schemat system.alert zawiera dwie tabele:
-
system.alert.alerts: Konfiguracja każdego alertu, w tym jego definicja, harmonogram, progi oceny, subskrybenci oraz znaczniki cyklu życia. -
system.alert.alert_evaluation_history: Jeden wiersz na każdą ocenę alertu, rejestrujący ocenę stanu, wartości wyników, status dostawy powiadomień oraz szczegóły błędów.
Requirements
Domyślnie tylko użytkownicy posiadający zarówno role administratora konta, jak i administratora metastore mają dostęp do tabel systemu alertów. Aby udostępnić dane tabeli użytkownikowi lub grupie, Databricks zaleca utworzenie dynamicznego widoku dla każdego użytkownika lub grupy. Zobacz Tworzenie widoku dynamicznego.
Schemat tablicy konfiguracji alertów
Tabela system.alert.alerts jest powoli zmieniającą się tabelą wymiarów. Każdy wiersz rejestruje konfigurację alertu w danym momencie, więc pojedynczy alert ma wiele wierszy w momencie zmiany konfiguracji.
ścieżka tabeli: ta tabela systemowa znajduje się w system.alert.alerts.
Tabela system.alert.alerts używa następującego schematu:
| Nazwa kolumny | Typ danych | Description | Example |
|---|---|---|---|
account_id |
ciąg | Identyfikator konta. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
ciąg | ID przestrzeni roboczej, w której zdefiniowany jest alert. | 1234567890123456 |
alert_id |
ciąg | Identyfikator alertu. | 2762099691916865 |
display_name |
ciąg | Nazwa wyświetlana alertu. | Test Alert |
owned_by |
ciąg | Nazwa użytkownika właściciela alertu. Ustaw na , Unavailable jeśli użytkownik został usunięty. |
example@databricks.com |
compute |
struktura | Strukturę reprezentującą zasób obliczeniowy przypisany do alertu. Wartość type to albo WAREHOUSE albo SERVERLESS_COMPUTE. |
{type: WAREHOUSE,cluster_id: NULL,warehouse_id: 802f6d5283291c0d} |
run_as |
ciąg | ID użytkownika lub podmiotu usługi, którego poświadczenia są używane do uruchomienia alertu. | 2967555311742259 |
schedule |
struktura | Struktura reprezentująca harmonogram alertu, w tym status pauzy, harmonogram crona oraz strefę czasową. | {pause_status: UNPAUSED,quartz_cron_schedule: 0 0 10 * * ?,timezone_id: UTC} |
evaluation_source |
struktura | Struktura reprezentująca kolumnę źródłową z wyniku zapytania używaną do oceny alertu, włącznie z agregacją do niej zastosowaną. | {aggregation: SUM,display: x,name: x} |
evaluation_comparison_operator |
ciąg | Operator używany do porównywania wartości źródłowej z progiem podczas oceny. Na przykład: GREATER_THAN, LESS_THANi EQUAL. |
LESS_THAN |
evaluation_threshold |
struktura | Struktura reprezentująca próg, z którym porównuje się wartość źródłową. Próg to albo wartość statyczna, albo inna kolumna. | {value: { double_value: 1.25}} |
evaluation_empty_result_state |
ciąg | Stan raportuje alert, gdy zapytanie zwraca pusty wynik. Możliwe wartości to OK, TRIGGEREDi ERROR. |
OK |
notify_on_ok |
boolean | Czy powiadomić subskrybentów, gdy alert wróci do stanu OK . |
true |
retrigger_seconds |
Int | Liczba sekund, które alert czeka po wywołaniu, zanim może się ponownie wywołać. Jeśli 0, alert nie pojawia się ponownie. |
0 |
subscriptions |
macierz | Grupa subskrybentów, którzy otrzymują powiadomienie o alertie. Każdy subskrybent jest identyfikowany przez e-mail użytkownika lub identyfikator miejsca powiadomienia. | [{ user_email: example@databricks.com, destination_id: null}] |
change_time |
sygnatura czasowa | Czas ostatniej zmiany konfiguracji był możliwy. Informacje o strefach czasowych są zapisywane na końcu wartości z określeniem +00:00 UTC. |
2023-01-01T01:01:01.123+00:00 |
create_time |
sygnatura czasowa | Czas utworzenia alertu. Informacje o strefach czasowych są zapisywane na końcu wartości z określeniem +00:00 UTC. |
2023-01-01T01:01:01.123+00:00 |
delete_time |
sygnatura czasowa | Czas, gdy alert został trwale usunięty. Powiadomienia przenoszone do kosza nie są rejestrowane. Informacje o strefach czasowych są zapisywane na końcu wartości z określeniem +00:00 UTC. |
2023-01-01T01:01:01.123+00:00 |
Schemat tabeli historii alertów
Tabela rejestruje system.alert.alert_evaluation_history jeden wiersz dla każdej oceny alertu, zawierając oceniony stan i powiązane statystyki.
ścieżka tabeli: ta tabela systemowa znajduje się w system.alert.alert_evaluation_history.
Tabela system.alert.alert_evaluation_history używa następującego schematu:
| Nazwa kolumny | Typ danych | Description | Example |
|---|---|---|---|
account_id |
ciąg | Identyfikator konta. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
ciąg | ID przestrzeni roboczej, w której zdefiniowany jest alert. | 1234567890123456 |
alert_id |
ciąg | ID ocenionego alertu. Łączy się z alert_id .system.alert.alerts |
2762099691916865 |
job_id |
ciąg | ID zlecenia, które wywołało alert. Łączy się z job_id .system.lakeflow.jobs
NULL Gdy alert działa według własnego harmonogramu, a nie jako część zadania. Użyj aLEFT JOIN, gdy zapytujesz względem .system.lakeflow.jobs |
906851285941474 |
task_key |
ciąg | Klucz referencyjny do zadania w ramach pracy. Łączy się z task_key .system.lakeflow.job_tasks
NULL Gdy alert działa według własnego harmonogramu, a nie jako część zadania. Użyj aLEFT JOIN, gdy zapytujesz względem .system.lakeflow.job_tasks |
evaluate_alert |
alert_run_id |
ciąg | ID wyniku oceny alertu. | 4104302562320643 |
evaluated_state |
ciąg | Oceniony stan alarmu. Możliwe wartości to OK, TRIGGEREDi ERROR. |
TRIGGERED |
evaluated_source_result |
struktura | Struktura, która reprezentuje wartość źródłową wygenerowaną przez ocenę. | {double_value: 1.25} |
evaluated_threshold_result |
struktura | Strukturę reprezentującą wartość progową z oceny lub statyczną wartość ustawioną w konfiguracji alertu. | {double_value: 1.25} |
error_code |
ciąg | Kod błędu, jeśli ocena się nie powiodła, pojawił się błąd. | INTERNAL_ERROR |
error_message |
ciąg | Komunikat o błędzie widocznym dla użytkownika, jeśli ocena zakończyła się błędem. | Query execution failed |
notified_subscriptions |
macierz | Tablica subskrybentów, którzy zostali pomyślnie powiadomieni. Każdy subskrybent jest identyfikowany przez e-mail użytkownika lub identyfikator miejsca powiadomienia. | [{ user_email: example@databricks.com, destination_id: null}] |
failed_subscriptions |
macierz | Grupa subskrybentów, których powiadomienia nie zostały wysłane. Każdy subskrybent jest identyfikowany przez e-mail użytkownika lub identyfikator miejsca powiadomienia. | [{ user_email: example@databricks.com, destination_id: null}] |
start_time |
sygnatura czasowa | Wtedy rozpoczęła się ocena. Informacje o strefach czasowych są zapisywane na końcu wartości z określeniem +00:00 UTC. |
2023-01-01T01:01:01.123+00:00 |
end_time |
sygnatura czasowa | Czas, gdy ewaluacja się skończyła. Informacje o strefach czasowych są zapisywane na końcu wartości z określeniem +00:00 UTC. |
2023-01-01T01:01:01.123+00:00 |
Przykładowe zapytania
Poniższe przykładowe zapytania pokazują powszechne sposoby analizy konfiguracji alertów i historii oceny. Każde zapytanie używa nazwanych markerów parametrów dla ID alertu i workspace, więc podczas uruchamiania zapytania jesteś proszony o podanie wartości.
Znajdź najnowszą ocenę alertu
To zapytanie zwraca najnowszą konfigurację konkretnego alertu wraz z jego najnowszą oceną.
SELECT
c.alert_id,
c.display_name,
c.compute,
c.schedule.quartz_cron_schedule AS schedule,
c.evaluation_comparison_operator AS operator,
c.evaluation_threshold.value.double_value AS threshold,
c.change_time AS config_last_updated,
e.evaluated_state,
e.start_time AS evaluation_time,
e.end_time,
TIMESTAMPDIFF(SECOND, e.start_time, e.end_time) AS eval_duration_seconds
FROM (
SELECT *
FROM system.alert.alerts
WHERE alert_id = :your_alert_id
AND delete_time IS NULL
ORDER BY change_time DESC
LIMIT 1
) c
LEFT JOIN (
SELECT *
FROM system.alert.alert_evaluation_history
WHERE alert_id = :your_alert_id
ORDER BY start_time DESC
LIMIT 1
) e ON TRUE;
Sprawdź, które alerty wywołały się najczęściej w ciągu ostatnich siedmiu dni
To zapytanie liczy, ile razy każde powiadomienie zostało wywołane w obszarze pracy w ciągu ostatnich siedmiu dni.
SELECT
alert_id,
COUNT(*) AS trigger_count_7d
FROM system.alert.alert_evaluation_history
WHERE workspace_id = :your_workspace_id
AND start_time >= CURRENT_DATE() - INTERVAL 7 DAY
AND evaluated_state = 'TRIGGERED'
GROUP BY alert_id
ORDER BY trigger_count_7d DESC;
Śledź, jak zmieniał się stan alertu w czasie
To zapytanie podsumowuje dzienną liczbę każdego ocenianego stanu dla konkretnego alertu w ciągu ostatnich 30 dni. Użyj go do zbudowania panelu monitorującego niezawodność alertów.
SELECT
DATE_TRUNC('day', start_time) AS eval_day,
COUNT_IF(evaluated_state = 'OK') AS ok_count,
COUNT_IF(evaluated_state = 'TRIGGERED') AS triggered_count,
COUNT_IF(evaluated_state = 'ERROR') AS error_count
FROM system.alert.alert_evaluation_history
WHERE alert_id = :your_alert_id
AND start_time >= CURRENT_DATE() - INTERVAL 30 DAY
GROUP BY 1
ORDER BY eval_day ASC;
Lista aktywne alerty w przestrzeni roboczej
To zapytanie zwraca najnowszą konfigurację każdego alertu, która nie jest usuwana i nie jest wstrzymana w przestrzeni roboczej.
WITH latest AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY alert_id ORDER BY change_time DESC) AS rn
FROM system.alert.alerts
WHERE workspace_id = :your_workspace_id
AND delete_time IS NULL
)
SELECT
alert_id,
display_name,
compute,
schedule.quartz_cron_schedule AS cron_schedule,
schedule.pause_status
FROM latest
WHERE rn = 1
AND schedule.pause_status != 'PAUSED';