Observabilidade e registro em log para Notebooks no Workspaces¶
Visão geral¶
O Snowflake grava logs de notebook no sistema de arquivos local do contêiner e os ingere em uma tabela de eventos, que você pode consultar para solucionar problemas de execução de notebooks, revisar o histórico de execução e realizar análises de longo prazo.
É possível usar uma tabela de eventos para centralizar dados operacionais de Notebooks no Workspaces; por exemplo, com as seguintes tarefas:
Solução de problemas de execuções agendadas (erros, avisos, carimbos de data/hora)
Auditoria de quem executou o que e quando (quando emitido pela carga de trabalho e configurado para coleta)
Criação de painéis para atividades do notebook (contagens de sucesso/falha, duração da execução, erros com ruído)
Nota
Normalmente, há um atraso de três a cinco minutos antes que os logs apareçam na tabela de eventos.
Habilitação do registro em log no código do notebook¶
Por padrão, o registro em log Python é definido como WARNING. Para capturar eventos do aplicativo, você deve definir o nível de registro em log como INFO ou DEBUG.
Adicione o seguinte código ao seu notebook ou script Python:
import logging
# Set the root logger to INFO level
logging.getLogger().setLevel(logging.INFO)
# Generate a test log entry
logging.info("APPLICATION_EVENT: Service initialization complete.")
Consulta de logs usando Snowflake Trail¶
É possível visualizar as entradas de log na Snowsight pelo Snowflake Trail.
Nota
Antes de ver mensagens de log, é necessário habilitar a coleta de dados de telemetria.
Identificação da tabela de eventos¶
Para localizar a tabela de eventos de sua conta, execute o seguinte comando em um arquivo SQL:
SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
Consulta e análise de logs¶
Depois que sua tabela de eventos começar a coletar eventos, é possível consultá-la como qualquer outra tabela para filtrar por identificadores de intervalo de tempo, gravidade e carga de trabalho. Para mais informações sobre o esquema da tabela de eventos e as definições de coluna, consulte Colunas da tabela de eventos.
Para investigar eventos de log recentes, execute o seguinte código (substituindo os valores de espaço reservado por seus valores reais):
SELECT TIMESTAMP, VALUE AS LOG_MESSAGE, RESOURCE_ATTRIBUTES:"snow.service.name"::string AS SERVICE_NAME, RECORD:"severity_text"::string AS SEVERITY FROM <database_name>.<schema_name>.<event_table_name> WHERE RECORD_TYPE = 'LOG' AND RESOURCE_ATTRIBUTES:"snow.service.name" = '<your_service_name>' AND TIMESTAMP > DATEADD(hour, -1, CURRENT_TIMESTAMP()) ORDER BY TIMESTAMP DESC LIMIT 100;
Exibição de logs para execuções agendadas de notebook na Snowsight¶
Cada notebook agendado usa um objeto de projeto de notebook que armazena o código implantado, o histórico de execução e os artefatos.
Para visualizar os logs de execuções agendadas no Snowsight:
Faça login no Snowsight.
No menu de navegação, selecione Catalog » Database Explorer.
Encontre o banco de dados e o esquema que contêm o projeto de notebook.
Selecione o objeto do projeto de notebook e selecione a guia Run history.
Para a execução que você quer inspecionar, na coluna Logs, selecione Logs.
Depois de habilitar o registro no código do notebook, as mensagens de log personalizadas e os logs de inicialização de infraestrutura aparecerão nessa exibição de log.
Solução de problemas¶
Caso não haja eventos esperados, verifique se sua tabela de eventos foi criada e se o registro de eventos foi habilitado e configurado para sua conta e cargas de trabalho.
Se as execuções agendadas falharem, faça uma verificação cruzada do agendamento de notebook e procure erros correlacionados na tabela de eventos durante a mesma janela de tempo.