Referentie van waarschuwingssysteemtabellen

Important

Deze systeemtabel bevindt zich in Openbare Preview.

Deze pagina bevat informatie over de waarschuwingssysteemtabellen, inclusief een overzicht van het schema van elke tabel. Gebruik deze tabellen om direct in SQL de meldingen van je werkruimte-alerts en hun evaluatiegeschiedenis op te vragen, zodat je alertdefinities kunt auditen, evaluatietrends kunt analyseren en alertworkloads op grote schaal kunt monitoren.

Het system.alert schema bevat twee tabellen:

  • system.alert.alerts: De configuratie van elke melding, inclusief de definitie, planning, evaluatiedrempels, abonnees en levenscyclustijdstempels.
  • system.alert.alert_evaluation_history: Eén rij per waarschuwingsevaluatie, waarin de geëvalueerde toestand, resultaatwaarden, meldingsleveringsstatus en foutdetails worden vastgelegd.

Requirements

Standaard hebben alleen gebruikers met zowel de accountbeheerder als de metastore-beheerder toegang tot de waarschuwingssysteemtabellen. Om de gegevens van een tabel te delen met een gebruiker of groep, raadt Databricks aan om voor elke gebruiker of groep een dynamisch overzicht te maken. Zie Een dynamische weergave maken.

Alert configuratietabel schema

De system.alert.alerts tabel is een langzaam veranderende dimensie-tabel. Elke rij legt de configuratie van een waarschuwing op een bepaald moment vast, zodat één enkele waarschuwing meerdere rijen heeft wanneer de configuratie verandert.

tabelpad: deze systeemtabel bevindt zich op system.alert.alerts.

In de system.alert.alerts tabel wordt het volgende schema gebruikt:

Kolomnaam Gegevenstype Description Example
account_id tekenreeks De id van het account. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id tekenreeks De ID van de werkruimte waar de melding is gedefinieerd. 1234567890123456
alert_id tekenreeks De id van de waarschuwing. 2762099691916865
display_name tekenreeks De weergavenaam van de waarschuwing. Test Alert
owned_by tekenreeks De gebruikersnaam van de eigenaar van de alert. Stel in op Unavailable of de gebruiker is verwijderd. example@databricks.com
compute struct Een struct die de rekenkracht vertegenwoordigt die aan de alert is gekoppeld. De type waarde is ofwel WAREHOUSE of SERVERLESS_COMPUTE. {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}
run_as tekenreeks De ID van de gebruiker of diensthoofd wiens inloggegevens worden gebruikt om de waarschuwing uit te voeren. 2967555311742259
schedule struct Een struct die het schema van de alert vertegenwoordigt, inclusief de pauzestatus, cron-schema en tijdzone. {
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}
evaluation_source struct Een struct die de bronkolom uit het zoekresultaat vertegenwoordigt dat wordt gebruikt om de waarschuwing te evalueren, inclusief de aggregatie die daarop wordt toegepast. {
aggregation: SUM,
display: x,
name: x
}
evaluation_comparison_operator tekenreeks De operator vergelijkt de bronwaarde tijdens de evaluatie met de drempelwaarde. Bijvoorbeeld: GREATER_THAN, LESS_THANen EQUAL. LESS_THAN
evaluation_threshold struct Een struct die de drempel weergeeft waarmee de bronwaarde wordt vergeleken. De drempel is ofwel een statische waarde of een andere kolom. {
value: {
double_value: 1.25
}
}
evaluation_empty_result_state tekenreeks De toestand die de alert rapporteert wanneer de query een leeg resultaat teruggeeft. Mogelijke waarden zijn OK, TRIGGEREDen ERROR. OK
notify_on_ok boolean Of abonnees worden geïnformeerd wanneer de waarschuwing terugkeert naar de OK staat. true
retrigger_seconds int Het aantal seconden dat de waarschuwing wacht nadat hij is geactiveerd voordat hij opnieuw kan afgaan. Als 0, wordt de waarschuwing niet opnieuw geactiveerd. 0
subscriptions array Een reeks abonnees die de melding ontvangen. Elke abonnee wordt geïdentificeerd door een gebruikers-e-mail of een meldingsbestemmings-ID. [
{
user_email: example@databricks.com,
destination_id: null
}
]
change_time timestamp De tijd waarop de configuratie voor het laatst werd gewijzigd. Tijdzone-informatie wordt aan het einde van de waarde geregistreerd die +00:00 UTC vertegenwoordigt. 2023-01-01T01:01:01.123+00:00
create_time timestamp Het moment waarop het alarm werd gemaakt. Tijdzone-informatie wordt aan het einde van de waarde geregistreerd die +00:00 UTC vertegenwoordigt. 2023-01-01T01:01:01.123+00:00
delete_time timestamp De tijd waarop de melding permanent werd verwijderd. Meldingen die naar de prullenbak worden verplaatst, worden niet geregistreerd. Tijdzone-informatie wordt aan het einde van de waarde geregistreerd die +00:00 UTC vertegenwoordigt. 2023-01-01T01:01:01.123+00:00

Waarschuwingsevaluatiegeschiedenis-tabel schema

De system.alert.alert_evaluation_history tabel registreert één rij voor elke waarschuwingsevaluatie, waarbij de geëvalueerde toestand en gerelateerde statistieken worden vastgelegd.

tabelpad: deze systeemtabel bevindt zich op system.alert.alert_evaluation_history.

In de system.alert.alert_evaluation_history tabel wordt het volgende schema gebruikt:

Kolomnaam Gegevenstype Description Example
account_id tekenreeks De id van het account. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id tekenreeks De ID van de werkruimte waar de melding is gedefinieerd. 1234567890123456
alert_id tekenreeks De ID van de geëvalueerde melding. Sluit zich aan tot alert_id in system.alert.alerts. 2762099691916865
job_id tekenreeks De ID van de baan die de alert uitzond. Sluit zich aan tot job_id in system.lakeflow.jobs. NULL wanneer de melding op eigen schema verloopt in plaats van als onderdeel van een taak. Gebruik een LEFT JOIN wanneer je een query tegen system.lakeflow.jobs. 906851285941474
task_key tekenreeks De referentiesleutel voor de taak binnen de functie. Sluit zich aan tot task_key in system.lakeflow.job_tasks. NULL wanneer de melding op eigen schema verloopt in plaats van als onderdeel van een taak. Gebruik een LEFT JOIN wanneer je een query tegen system.lakeflow.job_tasks. evaluate_alert
alert_run_id tekenreeks De ID van de waarschuwingsevaluatie wordt uitgevoerd. 4104302562320643
evaluated_state tekenreeks De beoordeelde status van het alarm. Mogelijke waarden zijn OK, TRIGGEREDen ERROR. TRIGGERED
evaluated_source_result struct Een struct die de bronwaarde vertegenwoordigt die door de evaluatie wordt geproduceerd. {
double_value: 1.25
}
evaluated_threshold_result struct Een struct die de drempelwaarde uit de evaluatie vertegenwoordigt, of de statische waarde die in de waarschuwingsconfiguratie is ingesteld. {
double_value: 1.25
}
error_code tekenreeks De foutcode als de evaluatie faalde met een fout. INTERNAL_ERROR
error_message tekenreeks De door de gebruiker zichtbare foutmelding als de evaluatie faalde met een foutmelding. Query execution failed
notified_subscriptions array Een reeks abonnees die succesvol op de hoogte zijn gebracht. Elke abonnee wordt geïdentificeerd door een gebruikers-e-mail of een meldingsbestemmings-ID. [
{
user_email: example@databricks.com,
destination_id: null
}
]
failed_subscriptions array Een reeks abonnees van wie de meldingen niet verzonden konden worden. Elke abonnee wordt geïdentificeerd door een gebruikers-e-mail of een meldingsbestemmings-ID. [
{
user_email: example@databricks.com,
destination_id: null
}
]
start_time timestamp De tijd dat de evaluatie begon. Tijdzone-informatie wordt aan het einde van de waarde geregistreerd die +00:00 UTC vertegenwoordigt. 2023-01-01T01:01:01.123+00:00
end_time timestamp De tijd dat de evaluatie eindigde. Tijdzone-informatie wordt aan het einde van de waarde geregistreerd die +00:00 UTC vertegenwoordigt. 2023-01-01T01:01:01.123+00:00

Voorbeeldvragen

De volgende voorbeeldqueries tonen veelvoorkomende manieren om waarschuwingsconfiguratie en evaluatiegeschiedenis te analyseren. Elke query gebruikt benoemde parametermarkers voor de alert- en workspace-ID's, dus je wordt gevraagd om de waarden wanneer je de query uitvoert.

Vind de meest recente evaluatie voor een melding

Deze query geeft de meest recente configuratie van een specifieke waarschuwing samen met de meest recente evaluatie.

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;

Vind welke meldingen het meest zijn geactiveerd in de afgelopen zeven dagen

Deze query telt hoe vaak elke melding in een werkruimte in de afgelopen zeven dagen is geactiveerd.

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;

Houd bij hoe de status van een waarschuwing in de loop van de tijd veranderde

Deze query vat de dagelijkse telling samen van elke geëvalueerde staat voor een specifieke waarschuwing in de afgelopen 30 dagen. Gebruik het om een dashboard te bouwen dat de betrouwbaarheid van waarschuwingen monitort.

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;

Vermeld actieve meldingen in een werkruimte

Deze query geeft de nieuwste configuratie van elke alert die niet is verwijderd en niet gepauzeerd in een werkruimte.

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