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.")
Copy

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

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

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:

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Catalog » Database Explorer.

  3. Encontre o banco de dados e o esquema que contêm o projeto de notebook.

  4. Selecione o objeto do projeto de notebook e selecione a guia Run history.

  5. 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.