Enviar logs serverless para volumes do Unity Catalog

A entrega de logs serverless escreve logs de aplicação de trabalhos serverless para um volume do Unity Catalog. Os administradores do espaço de trabalho configuram um destino para o espaço de trabalho para que as equipas possam reter registos e processá-los com as suas ferramentas de observabilidade. Os logs são entregues de forma assíncrona após a conclusão da tarefa. A entrega pode demorar vários minutos e varia consoante o processamento e o tempo de carregamento.

Importante

Este recurso está em versão Beta. Para o utilizar, um administrador de espaço de trabalho deve ativar a entrega de logs serverless para volumes do Unity Catalog a partir da página de Pré-visualizações. Ver Gerir as pré-visualizações de Azure Databricks.

Requirements

  • Um espaço de trabalho com computação serverless e Unity Catalog ativada.
  • Versão 5 ou posterior do ambiente serverless.
  • O papel de administrador do espaço de trabalho é utilizado para configurar a entrega de registos. Veja Atribuir o papel de administrador do espaço de trabalho a um utilizador.
  • A pré-visualização da entrega de logs serverless para volumes do catálogo Unity está ativada para o espaço de trabalho. Pode já estar ativado. Se estiver desativado, um administrador do espaço de trabalho pode ativá-lo na página de Pré-visualizações. Ativar a pré-visualização torna a configuração disponível; não inicia a entrega.
  • Um volume de destino. O administrador que configura a entrega precisa de USE CATALOG no seu catálogo, USE SCHEMA no seu esquema e READ VOLUME e WRITE VOLUME no volume. Consulte Privilégios para volumes do catálogo Unity.

Note

Configure a entrega apenas para um volume fidedigno com acesso restrito. Os registos entregues podem conter informações sensíveis, incluindo emails de utilizador, caminhos de armazenamento, stack traces, identificadores internos e URLs temporários assinados. Não é garantido que os registos estejam livres de segredos.

Os utilizadores com acesso ao destino podem ler os registos entregues ao destino, incluindo os registos dos trabalhos de outros utilizadores. Restringa o acesso ao volume em conformidade.

Ativar entrega de logs

Um administrador de espaço de trabalho deve ativar a entrega de registos para o espaço de trabalho.

  1. Abre as Definições no teu menu de utilizador.
  2. Em Administração do espaço de trabalho, clique em Computação.
  3. Na secção de entrega de logs, ative a entrega de logs Serverless.
  4. Em Configurar entrega de registos, introduza um caminho de Volume, como /Volumes/observability/production/serverless_logs, ou clique no ícone da pasta para navegar pelos volumes.
  5. Clique em Salvar. Guardar o destino permite a entrega.

A definição aplica-se ao nível do espaço de trabalho. Não precisas de configurar cada trabalho separadamente.

Leia os registos enviados

A saída da aplicação inclui saída padrão e erro padrão do código do utilizador, incluindo funções definidas pelo utilizador (UDFs). Utilize o Explorador de Catálogo para navegar pelo volume de destino e inspecionar ficheiros entregues. Consulte Trabalhar com arquivos em volumes do Catálogo Unity.

A entrega de registos não fornece métricas de cluster nem perfis de consulta. Use a página da execução da tarefa para investigar o estado e o desempenho da execução juntamente com os registos da aplicação. Consulte Monitorizar tarefas do Lakeflow.

Consultar registos entregues com SQL

Utilize read_files para consultar os ficheiros de texto entregues. Substitua o caminho de volume neste exemplo pelo seu destino. Para ler os registos, precisa de USE CATALOG no catálogo, USE SCHEMA no esquema e READ VOLUME no volume.

Crie uma vista temporária que extraia identificadores de trabalho e execução do caminho do ficheiro e mantenha cada linha de saída de log:

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

Encontre linhas que contenham erros entre execuções de tarefa:

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

Identifique os trabalhos com mais linhas de erro:

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;

Estas consultas procuram o texto literal ERROR. Ajuste o filtro para corresponder ao formato de registo da sua aplicação. Consulte read_files função de valor de tabela.

Alterar o destino ou desativar a entrega

Para alterar o destino, abra Definições > Cálculo > Entrega de registos, clique no ícone do lápis ao lado do nome do volume, introduza ou navegue para um novo caminho e clique em Guardar. Guardar um destino permite a entrega, incluindo quando a entrega foi desativada.

Para desativar a entrega, abra as Definições > Compute > entrega de registos e desative a entrega de registos serverless. A definição mantém o destino para que possa ativar o fornecimento novamente sem selecionar outro volume. Desativar a entrega não remove ficheiros já escritos no volume. Gerir o acesso e a retenção desses ficheiros separadamente.

Resolver problemas de registos em falta

Se os registos não aparecerem após a conclusão do trabalho:

  1. Verifique se a entrega de logs serverless está ativada em Definições > Compute > Entrega de logs. Ativar a pré-visualização sozinha não inicia a entrega.
  2. Verifique se o volume configurado existe e se o administrador que configurou a entrega mantém as permissões necessárias.
  3. Confirme que o trabalho utiliza computação serverless e produz a saída da aplicação. Aguarde alguns minutos após a conclusão do trabalho até à entrega assíncrona. O tempo de processamento e carregamento pode atrasar a entrega.

Para a entrega de registos do Compute clássico, veja Entrega de registos do Compute.