Pular para o conteúdo principal

Entregar logs serverless para volumes do Unity Catalog

A entrega de logs serverless grava logs de aplicativos de jobs serverless em um volume do Unity Catalog. Os administradores do workspace configuram um destino para o workspace para que as equipes possam manter logs e processá-los com suas ferramentas de observabilidade. Os logs são entregues de forma assíncrona após a conclusão do job. A entrega pode levar alguns minutos e varia de acordo com o tempo de processamento e upload.

info

Beta

Esse recurso está em Beta. Para usá-lo, um administrador do workspace deve ativar a entrega de logs do serverless para volumes do Unity Catalog na página Prévias . Consulte Gerenciar prévias do Databricks.

Requisitos​

  • Um Workspace com compute Serverless e Unity Catalog habilitados.
  • Serverless versão de ambiente 5 ou posterior.
  • A função de administrador do workspace para configurar a entrega de logs. Consulte Atribuir a função de administrador do workspace a um usuário.
  • A prévia de entrega de log Serverless para volumes do Unity Catalog está habilitada para o workspace. Pode já estar habilitado. Se estiver desativado, um administrador do Workspace poderá ativá-lo na página Pré-visualizações. Habilitar a prévia torna a configuração disponível; não começa a entrega.
  • Um volume de destino. O administrador que configura a entrega precisa de USE CATALOG em seu catálogo, USE SCHEMA em seu esquema e READ VOLUME e WRITE VOLUME no volume. Consulte Privilégios para volumes do Unity Catalog.
nota

Configure a entrega apenas para um volume confiável com acesso restrito. Os logs entregues podem conter informações confidenciais, incluindo emails de usuários, caminhos de armazenamento, rastreamentos de pilha, identificadores internos e URLs assinadas temporárias. Não há garantia de que os logs estejam livres de segredos.

Os usuários com acesso ao destino podem ler os logs entregues, incluindo os logs de jobs de outros usuários. Restrinja o acesso ao volume adequadamente.

Ativar a entrega de logs​

Um administrador do Workspace deve ativar a entrega de Logs para o Workspace.

  1. Abra Configurações no menu do usuário.
  2. Em Administração do workspace , clique em Compute .
  3. Na seção Entrega de log , ative a Entrega de log Serverless .
  4. Em Configurar entrega de log , insira um Caminho do volume , como /Volumes/observability/production/serverless_logs, ou clique no ícone de pasta para navegar pelos volumes.
  5. Clique em Salvar . Salvar o destino ativa a entrega.

A configuração se aplica ao nível do workspace. Você não precisa configurar cada job separadamente.

Ler logs entregues​

A saída do aplicativo inclui a saída padrão e o erro padrão do código do usuário, incluindo funções definidas pelo usuário (UDFs). Use o Catalog Explorer para navegar no volume de destino e inspecionar os arquivos entregues. Consulte Trabalhar com arquivos em volumes do Unity Catalog.

A entrega de logs não fornece métricas de cluster nem perfis de query. Use a página de execução do job para investigar o status e o desempenho da execução junto com os logs do aplicativo. Consulte Monitorar Lakeflow Jobs.

query logs entregues com SQL​

Use read_files para query os arquivos de texto entregues. Substitua o caminho do volume neste exemplo pelo seu destino. Para ler os logs, você precisa de USE CATALOG no catálogo, USE SCHEMA no esquema e READ VOLUME no volume.

Criar uma view temporária que extrai os identificadores de job e execução do caminho do arquivo e mantém cada linha da saída do log:

SQL
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 em execuções de jobs:

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

Identificar jobs com o maior número de linhas de erro:

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

Essas queries pesquisam o texto literal ERROR. Ajuste o filtro para corresponder ao formato de log do seu aplicativo. Consulte função read_files table-valued.

Altere o destino ou desabilite a entrega​

Para alterar o destino, abra Configurações > Compute > Entrega de log , clique no ícone de lápis ao lado do nome do volume, insira ou procure um novo caminho e clique em Salvar . Salvar um destino habilita a entrega, mesmo quando a entrega estava desabilitada.

Para desabilitar a entrega, abra Configurações > Compute > Entrega de logs e desative Entrega de logs serverless . A configuração retém o destino para que você possa habilitar a entrega novamente sem selecionar outro volume. Desabilitar a entrega não remove arquivos já gravados no volume. Gerencie o acesso e a retenção desses arquivos separadamente.

Solucionar problemas de logs ausentes​

Se os logs não aparecerem após a conclusão do job:

  1. Verifique se a Entrega de log serverless está habilitada em Configurações > Compute > Entrega de log . Habilitar a visualização isoladamente não começar 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 se o job usa compute serverless e produz uma saída de aplicativo. Aguarde vários minutos após a conclusão do job para a entrega assíncrona. O tempo de processamento e upload pode atrasar a entrega.

Para a entrega de logs do compute clássico, consulte Entrega de logs de compute.