Referens för larmsystemtabeller

Important

Den här systemtabellen finns i offentlig förhandsversion.

Denna sida innehåller information om larmsystemets tabeller, inklusive en översikt av varje tabells schema. Använd dessa tabeller för att fråga dina arbetsytsaviseringar och deras utvärderingshistorik direkt i SQL, så att du kan granska aviseringsdefinitioner, analysera utvärderingstrender och övervaka aviseringsarbetsbelastningar i stor skala.

Schemat system.alert innehåller två tabeller:

  • system.alert.alerts: Konfigurationen av varje varning, inklusive dess definition, schema, utvärderingsgränser, abonnenter och livscykeltidsstämplar.
  • system.alert.alert_evaluation_history: En rad per varningsutvärdering, som fångar det utvärderade tillståndet, resultatvärden, status för leverans av notifikationer och feldetaljer.

Requirements

Som standard har endast användare med både kontoadministratörs- och metastoreadministratörsroller tillgång till larmsystemtabellerna. För att dela en tabells data med en användare eller grupp rekommenderar Databricks att skapa en dynamisk vy för varje användare eller grupp. Se Skapa en dynamisk vy.

Alert konfigurationstabellschema schema

Bordet system.alert.alerts är en långsamt föränderlig dimensionstabell. Varje rad fångar konfigurationen av en varning vid en viss tidpunkt, så en enda varning har flera rader när dess konfiguration ändras.

Tabellsökväg: Den här systemtabellen finns på system.alert.alerts.

Tabellen system.alert.alerts använder följande schema:

Kolumnnamn Datatyp Description Example
account_id string Kontots ID. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string ID:t för arbetsytan där varningen är definierad. 1234567890123456
alert_id string ID:t för aviseringen. 2762099691916865
display_name string Aviseringens visningsnamn. Test Alert
owned_by string Användarnamnet på den uppmärksammade ägaren. Ställ in till Unavailable om användaren har tagits bort. example@databricks.com
compute struct En struktur som representerar den beräkningsresurs som är kopplad till varningen. Värdet type är antingen WAREHOUSE eller SERVERLESS_COMPUTE. {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}
run_as string ID:t för användaren eller tjänstehuvudpersonen vars inloggningsuppgifter används för att köra varningen. 2967555311742259
schedule struct En struktur som representerar larmets schema, inklusive dess pausstatus, cron-schema och tidszon. {
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}
evaluation_source struct En struktur som representerar källkolumnen från frågeresultatet som används för att utvärdera varningen, inklusive aggregeringen som appliceras på den. {
aggregation: SUM,
display: x,
name: x
}
evaluation_comparison_operator string Operatorn användes för att jämföra källvärdet med tröskelvärdet under utvärderingen. Till exempel: GREATER_THAN, LESS_THANoch EQUAL. LESS_THAN
evaluation_threshold struct En struktur som representerar tröskeln som källvärdet jämförs med. Tröskelvärdet är antingen ett statiskt värde eller en annan kolumn. {
value: {
double_value: 1.25
}
}
evaluation_empty_result_state string Det tillstånd som larmet rapporterar när frågan ger ett tomt resultat. Möjliga värden är OK, TRIGGEREDoch ERROR. OK
notify_on_ok boolean Om man ska meddela prenumeranter när varningen återvänder OK till delstaten. true
retrigger_seconds int Antalet sekunder som varningen väntar efter att ha utlösts innan den kan utlösas igen. Om 0, utlöses inte varningen igen. 0
subscriptions matris En rad av abonnenter som får notisen om varningen. Varje abonnent identifieras med en användare-e-postadress eller ett destinations-ID för notifikationer. [
{
user_email: example@databricks.com,
destination_id: null
}
]
change_time timestamp Tiden då konfigurationen senast ändrades. Tidszonsinformation registreras i slutet av värdet som +00:00 representerar UTC. 2023-01-01T01:01:01.123+00:00
create_time timestamp Tiden då larmet skapades. Tidszonsinformation registreras i slutet av värdet som +00:00 representerar UTC. 2023-01-01T01:01:01.123+00:00
delete_time timestamp Tiden då aviseringen raderades permanent. Aviseringar som flyttas till papperskorgen registreras inte. Tidszonsinformation registreras i slutet av värdet som +00:00 representerar UTC. 2023-01-01T01:01:01.123+00:00

Schema för larmutvärderingshistorik

Tabellen system.alert.alert_evaluation_history registrerar en rad för varje varningsutvärdering och fångar det utvärderade tillståndet och relaterade statistik.

Tabellsökväg: Den här systemtabellen finns på system.alert.alert_evaluation_history.

Tabellen system.alert.alert_evaluation_history använder följande schema:

Kolumnnamn Datatyp Description Example
account_id string Kontots ID. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string ID:t för arbetsytan där varningen är definierad. 1234567890123456
alert_id string ID:t för den utvärderade varningen. Ansluter till alert_id i system.alert.alerts. 2762099691916865
job_id string ID:t på jobbet som körde varningen. Ansluter till job_id i system.lakeflow.jobs. NULL när varningen körs på sitt eget schema istället för som en del av ett jobb. Använd en LEFT JOIN när du frågar mot system.lakeflow.jobs. 906851285941474
task_key string Referensnyckeln för uppgiften inom jobbet. Ansluter till task_key i system.lakeflow.job_tasks. NULL när varningen körs på sitt eget schema istället för som en del av ett jobb. Använd en LEFT JOIN när du frågar mot system.lakeflow.job_tasks. evaluate_alert
alert_run_id string ID:t för larmutvärderingen körs. 4104302562320643
evaluated_state string Det bedömda tillståndet för varningen. Möjliga värden är OK, TRIGGEREDoch ERROR. TRIGGERED
evaluated_source_result struct En struktur som representerar källvärdet som produceras av utvärderingen. {
double_value: 1.25
}
evaluated_threshold_result struct En struktur som representerar tröskelvärdet från utvärderingen, eller det statiska värdet som satts i larmkonfigurationen. {
double_value: 1.25
}
error_code string Felkoden om utvärderingen misslyckades med ett fel. INTERNAL_ERROR
error_message string Användarsynligt felmeddelande om utvärderingen misslyckades med ett fel. Query execution failed
notified_subscriptions matris En rad prenumeranter som framgångsrikt meddelades. Varje abonnent identifieras med en användare-e-postadress eller ett destinations-ID för notifikationer. [
{
user_email: example@databricks.com,
destination_id: null
}
]
failed_subscriptions matris En rad prenumeranter vars notiser inte skickades. Varje abonnent identifieras med en användare-e-postadress eller ett destinations-ID för notifikationer. [
{
user_email: example@databricks.com,
destination_id: null
}
]
start_time timestamp När utvärderingen började. Tidszonsinformation registreras i slutet av värdet som +00:00 representerar UTC. 2023-01-01T01:01:01.123+00:00
end_time timestamp När utvärderingen var slut. Tidszonsinformation registreras i slutet av värdet som +00:00 representerar UTC. 2023-01-01T01:01:01.123+00:00

Exempelfrågor

Följande exempelfrågor visar vanliga sätt att analysera varningskonfiguration och utvärderingshistorik. Varje fråga använder namngivna parametermarkörer för aviserings- och arbetsyts-ID:n, så du blir tillfrågad om värdena när du kör frågan.

Hitta den senaste utvärderingen för en varning

Denna fråga returnerar den senaste konfigurationen av en specifik varning tillsammans med dess senaste utvärdering.

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;

Hitta vilka varningar som triggats mest under de senaste sju dagarna

Denna fråga räknar hur många gånger varje varning utlöstes i en arbetsyta under de senaste sju dagarna.

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;

Följ hur en varnings tillstånd förändrades över tid

Denna fråga sammanfattar den dagliga räkningen för varje utvärderad stat för en specifik varning under de senaste 30 dagarna. Använd den för att bygga en instrumentpanel som övervakar varningens tillförlitlighet.

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 aktiva varningar i en arbetsyta

Denna fråga returnerar den senaste konfigurationen för varje varning som inte är borttagen och inte pausad i en arbetsyta.

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';