Doručování serverless logů do svazků Unity Catalog

Doručování logů bezserverových úloh zapisuje aplikační logy z bezserverových úloh do svazku Unity Catalog. Administrátoři pracovního prostoru nastavují cílové umístění pro tento prostor tak, aby týmy mohly uchovávat logy a zpracovávat je pomocí svých nástrojů pro observabilitu. Protokoly jsou doručovány asynchronně po dokončení úlohy. Dodání může trvat několik minut a liší se podle doby zpracování a nahrávání.

Important

Tato funkce je v beta verzi. Pro jeho použití musí správce pracovního prostoru zapnout serverless doručování logů do svazků Unity Catalog přímo ze stránky Previews . Viz Manage Azure Databricks preview.

Požadavky

  • Pracovní prostor s povoleným serverless výpočetním režimem a aktivovaným Unity Catalogem.
  • Serverless prostředí verze 5 nebo novější.
  • Role správce pracovního prostoru slouží ke konfiguraci doručování logů. Viz Přiřazení role správce pracovního prostoru uživateli.
  • Náhled doručování serverless protokolů do svazků Unity Catalog byl pro pracovní prostor povolen. Možná už je zapnutý. Pokud je deaktivována, správce pracovního prostoru ji může povolit na stránce Náhledy. Zapnutí náhledu zpřístupní konfiguraci; nespustí doručení.
  • Cílový objem. Administrátor konfigurující doručování potřebuje USE CATALOG v katalogu, USE SCHEMA v jeho schématu a READ VOLUME a WRITE VOLUME ve svazku. Viz oprávnění pro svazky katalogu Unity.

Note

Nastavit doručení pouze na důvěryhodný svazek s omezeným přístupem. Doručované logy mohou obsahovat citlivé informace, včetně uživatelských e-mailů, cest úložiště, stack traces, interních identifikátorů a dočasně podepsaných URL. Není zaručeno, že logy neobsahují citlivé údaje.

Uživatelé s přístupem k cíli mohou číst doručené logy, včetně logů z úloh jiných uživatelů. Omezte přístup ke svazku podle toho.

Povolit doručování logů

Správce pracovního prostoru musí povolit doručování logů pro daný pracovní prostor.

  1. Otevřete Nastavení ve svém uživatelském menu.
  2. V sekci Správa pracovního prostoru klikněte na Compute.
  3. V sekci Doručování logů zapněte Serverless doručování logů.
  4. V Konfigurace doručování logů zadejte cestu k svazku, například /Volumes/observability/production/serverless_logs, nebo klikněte na ikonu složky pro prohlížení svazků.
  5. Klikněte na Uložit. Uložení cíle umožňuje doručení.

Nastavení platí na úrovni pracovního prostoru. Nemusíte konfigurovat každou úlohu zvlášť.

Přečíst doručené záznamy

Výstup aplikace zahrnuje standardní výstup a standardní chybový výstup z uživatelského kódu, včetně uživatelem definovaných funkcí (UDF). Použijte Catalog Explorer pro procházení cílového svazku a kontrolu doručených souborů. Viz Práce se soubory ve svazcích katalogu Unity.

Doručování protokolů neposkytuje metriky clusteru ani profily dotazů. Použijte stránku běhu úlohy pro prozkoumání stavu běhu a výkonu spolu s aplikačními logy. Viz Monitorování úloh v Lakeflow.

Dotazování protokolů pomocí SQL

Použijte read_files k dotazování doručených textových souborů. V tomto příkladu nahraďte cestu ke svazku vaším cílem. K přečtení protokolů potřebujete oprávnění USE CATALOG u katalogu, USE SCHEMA ve schématu a READ VOLUME ve svazku.

Vytvořte dočasný pohled, který extrahuje identifikátory úloh a běhů z cesty k souboru a uchovává každý řádek výstupu logu:

CREATE OR REPLACE TEMPORARY VIEW serverless_job_logs AS
SELECT
  regexp_extract(_metadata.file_path, '/job_id=([^/]+)/', 1) AS job_id,
  regexp_extract(_metadata.file_path, '/job_run_id=([^/]+)/', 1) AS job_run_id,
  regexp_extract(_metadata.file_path, '/task_run_id=([^/]+)/', 1) AS task_run_id,
  _metadata.file_name AS file_name,
  value AS log_line
FROM read_files(
  '/Volumes/observability/production/serverless_logs/',
  format => 'text'
);

Najděte řádky obsahující chyby napříč běženími úloh:

SELECT job_id, job_run_id, task_run_id, file_name, log_line
FROM serverless_job_logs
WHERE log_line LIKE '%ERROR%';

Identifikujte úlohy s největším počtem chybových řádků:

SELECT
  job_id,
  count(*) AS error_lines,
  count(DISTINCT job_run_id) AS affected_runs
FROM serverless_job_logs
WHERE log_line LIKE '%ERROR%'
GROUP BY job_id
ORDER BY error_lines DESC;

Tyto dotazy hledají doslovný text ERROR. Upravte filtr tak, aby odpovídal formátu logování vaší aplikace. Viz tabulkovou funkci read_files.

Změňte cíl nebo deaktivujte doručení

Pro změnu cíle otevřete Nastavení > Výpočetní prostředky > Doručování protokolů, klikněte na ikonu tužky vedle názvu svazku, zadejte nebo přejděte na novou cestu a klikněte na Uložit. Uložení cíle umožňuje doručení, včetně případů, kdy bylo doručení zakázáno.

Pro deaktivaci doručení otevřete Nastavení > Výpočetní prostředky > Doručování protokolů a vypněte bezserverové doručování protokolů. Nastavení zachovává cíl, takže můžete doručování znovu povolit bez nutnosti vybrat další diskový oddíl. Zakázání doručování neodstraní soubory, které už byly do svazku zapsané. Spravujte přístup a uchovávání těchto souborů zvlášť.

Odstraňování problémů s chybějícími logy

Pokud se logy neobjeví po dokončení práce:

  1. Zkontrolujte, zda je v části > v nabídce Nastavení > Compute Doručování logů povoleno. Samotné zapnutí náhledu nespustí doručení.
  2. Zkontrolujte, zda existuje nakonfigurovaný svazek a že administrátor, který nastavil doručení, si zachovává požadovaná oprávnění.
  3. Ověřte, že úloha používá serverless výpočetní systém a generuje výstup aplikace. Po dokončení úlohy může asynchronní doručení trvat několik minut. Doba zpracování a nahrávání mohou doručení zpozdit.

Pro klasické doručování výpočetních logů viz Doručování výpočetních logů.