Categorias:

Funções de tabela (Snowpark Container Services)

<service_name>!SPCS_GET_LOGS

Retorna os logs que o Snowflake coletou de contêineres do serviço especificado. Para obter mais informações, consulte Publicação e acesso a logs de contêiner.

Consulte também:

Serviços de monitoramento

Sintaxe

<service_name>!SPCS_GET_LOGS(
  [ START_TIME => <constant_expr> ],
  [ END_TIME => <constant_expr> ] )
Copy

Argumentos

START_TIME => constant_expr

Hora de início (no formato TIMESTAMP_LTZ) para o intervalo de tempo a partir do qual os logs devem ser recuperados. Para as funções disponíveis para construção de dados, hora e carimbo de data/hora, consulte Funções de data e hora.

Se START_TIME não for especificado, o padrão será 1 dia atrás.

END_TIME => constant_expr

Hora de término (no formato TIMESTAMP_LTZ) para o intervalo de tempo a partir do qual os logs devem ser recuperados.

Se END_TIME não for especificado, o padrão será o carimbo de data/hora atual.

Saída

Cada linha na saída corresponde a um evento registrado na tabela de eventos. Cada linha que seu serviço envia para stdout ou stderr resulta em uma linha na saída.

A função retorna as seguintes colunas:

Coluna

Tipo de dados

Descrição

TIMESTAMP

TIMESTAMP_NTZ

Carimbo de data/hora no horário universal coordenado (UTC) em que Snowflake coletou o log do contêiner. Esse valor é mapeado para a coluna TIMESTAMP na tabela de eventos.

INSTANCE_ID

NUMBER

ID da instância do serviço de trabalho. Esse valor é mapeado para o campo snow.service.instance na coluna RESOURCE_ATTRIBUTES na tabela de eventos.

CONTAINER_NAME

VARCHAR

Nome do contêiner. Esse valor é mapeado para o campo RESOURCE_ATTRIBUTES na coluna na tabela de eventos.

LOG

VARCHAR

Log que o Snowflake coletou do contêiner do aplicativo. Esse valor é mapeado para a coluna VALUE na tabela de eventos.

RECORD_ATTRIBUTES

OBJECT

Adição de informações sobre o log. Por exemplo, o fluxo de logs (stderr ou stdout) de onde o log foi coletado. Esse valor é mapeado para a coluna RECORD_ATTRIBUTES na tabela de eventos.

Requisitos de controle de acesso

A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:

Privilégio

Objeto

Notas

MONITOR

Serviço

A operação em um objeto de esquema requer pelo menos um privilégio no banco de dados pai e um privilégio no esquema pai.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Pode levar alguns minutos até que os logs do contêiner sejam exibidos na saída.

Exemplos

Recuperar os logs que o Snowflake coletou de contêineres do trabalho my_test_job no último dia.

SELECT * FROM TABLE(mydb.myschema.my_test_job!SPCS_GET_LOGS());
Copy

Exemplo de saída:

+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
| TIMESTAMP               | INSTANCE_ID | CONTAINER_NAME | LOG                                                                                                                                                                 | RECORD_ATTRIBUTES          |
|-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------|
| 2025-06-26 00:23:40.281 |           0 | main           | job-tutorial - INFO - Job finished                                                                                                                                  | {                          |
|                         |             |                |                                                                                                                                                                     |   "log.iostream": "stdout" |
|                         |             |                |                                                                                                                                                                     | }                          |
| 2025-06-26 00:23:38.787 |           0 | main           | job-tutorial - INFO - Executing query [select current_time() as time,'hello'] and writing result to table [results]                                                 | {                          |
|                         |             |                |                                                                                                                                                                     |   "log.iostream": "stdout" |
|                         |             |                |                                                                                                                                                                     | }                          |
| 2025-06-26 00:23:38.787 |           0 | main           | job-tutorial - INFO - Connection succeeded. Current session context: database="TUTORIAL_DB", schema="DATA_SCHEMA", warehouse="TUTORIAL_WAREHOUSE", role="TEST_ROLE" | {                          |
|                         |             |                |                                                                                                                                                                     |   "log.iostream": "stdout" |
|                         |             |                |                                                                                                                                                                     | }                          |
| 2025-06-26 00:23:36.852 |           0 | main           | job-tutorial - INFO - Job started                                                                                                                                   | {                          |
|                         |             |                |                                                                                                                                                                     |   "log.iostream": "stdout" |
|                         |             |                |                                                                                                                                                                     | }                          |
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+

Recuperar os logs que o Snowflake coletou de contêineres do trabalho my_test_job nos últimos três dias.

SELECT * FROM TABLE(mydb.myschema.my_test_job!SPCS_GET_LOGS(START_TIME => DATEADD('day', -3, CURRENT_TIMESTAMP())));
Copy

Recuperação dos logs da instância 0 do trabalho my_test_job no contêiner chamado main. Como mostrado no exemplo a seguir, se você omitir os argumentos START_TIME e END_TIME, a função recupera os logs do último dia:

SELECT * FROM TABLE(mydb.myschema.my_test_job!SPCS_GET_LOGS())
WHERE instance_id = 0 AND container_name = 'main';
Copy