Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Questa tabella di sistema si trova in versione di anteprima pubblica.
Questa pagina include informazioni sulle tabelle del sistema di allarme, inclusa una panoramica dello schema di ciascuna tabella. Usa queste tabelle per interrogare direttamente in SQL gli avvisi del tuo spazio di lavoro e la loro cronologia di valutazione, così puoi controllare le definizioni degli avvisi, analizzare le tendenze di valutazione e monitorare i carichi di lavoro degli avvisi su larga scala.
Lo system.alert schema contiene due tabelle:
-
system.alert.alerts: La configurazione di ogni avviso, inclusa la sua definizione, il calendario, le soglie di valutazione, gli abbonati e i timestamp del ciclo di vita. -
system.alert.alert_evaluation_history: Una riga per ogni valutazione dell'allerta, che cattura lo stato valutato, i valori dei risultati, lo stato della consegna delle notifiche e i dettagli dell'errore.
Requirements
Di default, solo gli utenti con ruoli sia di account admin che di metastore hanno accesso alle tabelle del sistema di avviso. Per condividere i dati di una tabella con un utente o un gruppo, Databricks raccomanda di creare una visuale dinamica per ogni utente o gruppo. Vedere Creare una visualizzazione dinamica.
Schema della tabella di configurazione degli allarmi
La system.alert.alerts tabella è una tabella delle dimensioni che cambia lentamente. Ogni riga cattura la configurazione di un avviso in un determinato momento, quindi un singolo avviso ha più righe quando la sua configurazione cambia.
Percorso della tabella: Questa tabella di sistema si trova in system.alert.alerts.
La system.alert.alerts tabella usa lo schema seguente:
| Nome della colonna | Tipo di dati | Description | Esempio |
|---|---|---|---|
account_id |
string | ID dell'account. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | L'ID dello spazio di lavoro dove è definito l'avviso. | 1234567890123456 |
alert_id |
string | ID dell'avviso. | 2762099691916865 |
display_name |
string | Nome visualizzato dell'avviso. | Test Alert |
owned_by |
string | Il nome utente del proprietario dell'allerta. Imposta se Unavailable l'utente è stato eliminato. |
example@databricks.com |
compute |
struct | Una struct che rappresenta la risorsa di calcolo collegata all'allarme. Il type valore è o WAREHOUSE oppure SERVERLESS_COMPUTE. |
{type: WAREHOUSE,cluster_id: NULL,warehouse_id: 802f6d5283291c0d} |
run_as |
string | L'ID dell'utente o del principale servizio le cui credenziali vengono utilizzate per eseguire l'allarme. | 2967555311742259 |
schedule |
struct | Una struct che rappresenta il programma dell'avviso, inclusi il suo stato di pausa, il cron schedule e il fuso orario. | {pause_status: UNPAUSED,quartz_cron_schedule: 0 0 10 * * ?,timezone_id: UTC} |
evaluation_source |
struct | Una struct che rappresenta la colonna sorgente del risultato della query utilizzata per valutare l'allarme, inclusa l'aggregazione ad esso applicata. | {aggregation: SUM,display: x,name: x} |
evaluation_comparison_operator |
string | L'operatore veniva utilizzato per confrontare il valore sorgente con la soglia durante la valutazione. Ad esempio: GREATER_THAN, LESS_THANe EQUAL. |
LESS_THAN |
evaluation_threshold |
struct | Una struct che rappresenta la soglia con cui il valore sorgente viene confrontato. La soglia è o un valore statico o un'altra colonna. | {value: { double_value: 1.25}} |
evaluation_empty_result_state |
string | Lo stato dell'avviso riporta quando la query restituisce un risultato vuoto. I valori possibili sono OK, TRIGGERED e ERROR. |
OK |
notify_on_ok |
booleano | Se notificare gli abbonati quando l'avviso torna nello OK stato. |
true |
retrigger_seconds |
int | Il numero di secondi che l'avviso aspetta dopo essere stato attivato prima di potersi attivare di nuovo. Se 0, l'allarme non si attiva di nuovo. |
0 |
subscriptions |
array | Un insieme di abbonati che ricevono la notifica di avviso. Ogni abbonato è identificato tramite un'email utente o un ID di destinazione delle notifiche. | [{ user_email: example@databricks.com, destination_id: null}] |
change_time |
Timbro data/ora | L'ultima volta che la configurazione è stata cambiata. Le informazioni sul fuso orario vengono registrate alla fine del valore con +00:00 la rappresentazione dell'UTC. |
2023-01-01T01:01:01.123+00:00 |
create_time |
Timbro data/ora | L'ora in cui è stato creato l'allarme. Le informazioni sul fuso orario vengono registrate alla fine del valore con +00:00 la rappresentazione dell'UTC. |
2023-01-01T01:01:01.123+00:00 |
delete_time |
Timbro data/ora | L'orario in cui l'allarme è stato cancellato definitivamente. Gli avvisi spostati nella spazzatura non vengono registrati. Le informazioni sul fuso orario vengono registrate alla fine del valore con +00:00 la rappresentazione dell'UTC. |
2023-01-01T01:01:01.123+00:00 |
Schema della tabella della storia della valutazione degli allerti
La system.alert.alert_evaluation_history tabella registra una riga per ogni valutazione dell'allerta, catturando lo stato e le statistiche correlate.
Percorso della tabella: Questa tabella di sistema si trova in system.alert.alert_evaluation_history.
La system.alert.alert_evaluation_history tabella usa lo schema seguente:
| Nome della colonna | Tipo di dati | Description | Esempio |
|---|---|---|---|
account_id |
string | ID dell'account. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | L'ID dello spazio di lavoro dove è definito l'avviso. | 1234567890123456 |
alert_id |
string | L'ID dell'allarme valutato. Si unisce a alert_id in system.alert.alerts. |
2762099691916865 |
job_id |
string | L'ID del lavoro che ha eseguito l'allarme. Si unisce a job_id in system.lakeflow.jobs.
NULL quando l'avviso viene eseguito secondo un proprio programma invece che come parte di un lavoro. Usa un LEFT JOIN quando fai una query contro system.lakeflow.jobs. |
906851285941474 |
task_key |
string | La chiave di riferimento per il compito all'interno del lavoro. Si unisce a task_key in system.lakeflow.job_tasks.
NULL quando l'avviso viene eseguito secondo un proprio programma invece che come parte di un lavoro. Usa un LEFT JOIN quando fai una query contro system.lakeflow.job_tasks. |
evaluate_alert |
alert_run_id |
string | L'ID della valutazione dell'allerta. | 4104302562320643 |
evaluated_state |
string | Lo stato valutato dell'allarme. I valori possibili sono OK, TRIGGERED e ERROR. |
TRIGGERED |
evaluated_source_result |
struct | Una struct che rappresenta il valore sorgente prodotto dalla valutazione. | {double_value: 1.25} |
evaluated_threshold_result |
struct | Una struct che rappresenta il valore di soglia della valutazione, o il valore statico impostato nella configurazione di allerta. | {double_value: 1.25} |
error_code |
string | Il codice di errore se la valutazione è fallita con un errore. | INTERNAL_ERROR |
error_message |
string | Il messaggio di errore visibile all'utente se la valutazione è fallita con un errore. | Query execution failed |
notified_subscriptions |
array | Una serie di abbonati che sono stati notificati con successo. Ogni abbonato è identificato tramite un'email utente o un ID di destinazione delle notifiche. | [{ user_email: example@databricks.com, destination_id: null}] |
failed_subscriptions |
array | Una serie di abbonati le cui notifiche non sono state inviate. Ogni abbonato è identificato tramite un'email utente o un ID di destinazione delle notifiche. | [{ user_email: example@databricks.com, destination_id: null}] |
start_time |
Timbro data/ora | L'orario in cui iniziò la valutazione. Le informazioni sul fuso orario vengono registrate alla fine del valore con +00:00 la rappresentazione dell'UTC. |
2023-01-01T01:01:01.123+00:00 |
end_time |
Timbro data/ora | L'orario in cui la valutazione è terminata. Le informazioni sul fuso orario vengono registrate alla fine del valore con +00:00 la rappresentazione dell'UTC. |
2023-01-01T01:01:01.123+00:00 |
Interrogazioni di esempio
Le seguenti query di esempio mostrano modi comuni per analizzare la configurazione degli allarmi e la cronologia delle valutazioni. Ogni query utilizza marker di parametri nominati per gli ID di avviso e workspace, quindi ti vengono chiesti i valori quando esegui la query.
Trova la valutazione più recente per un avviso
Questa query restituisce l'ultima configurazione di un avviso specifico insieme alla sua valutazione più recente.
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;
Trova quali avvisi si sono attivati maggiormente negli ultimi sette giorni
Questa query conta quante volte ogni avviso è stato attivato in uno spazio di lavoro negli ultimi sette giorni.
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;
Monitora come lo stato di un allarme è cambiato nel tempo
Questa query riassume il conteggio giornaliero di ciascuno stato valutato per un allarme specifico negli ultimi 30 giorni. Usalo per costruire una dashboard che monitori l'affidabilità degli allarmi.
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;
Elenca gli avvisi attivi in uno spazio di lavoro
Questa query restituisce l'ultima configurazione di ogni avviso che non viene eliminata né messa in pausa in uno spazio di lavoro.
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';