- Categorias:
Funções do sistema (Informações do sistema)
SYSTEM$GET_SERVICE_STATUS¶
Recupera o status de um serviço Snowpark Container Services.
- Consulte também:
Sintaxe¶
SYSTEM$GET_SERVICE_STATUS( [ <db_name>.<schema_name>. ]<service_name> [ , <timeout_secs> ] )
Argumentos¶
Obrigatório:
service_name
Nome do serviço. Se você omitir
db_name
eschema_name
, a função usará o banco de dados e o esquema atuais.
Opcional:
timeout_secs
Número de segundos de espera para que o serviço atinja um estado estável (por exemplo, READY) antes de retornar o status. Se o serviço não atingir um estado estável dentro do tempo especificado, o Snowflake retornará o estado atual.
Se não for especificado, o Snowflake retornará o estado atual imediatamente.
Padrão: 0 segundos
Retornos¶
Retorna informações de status em uma matriz JSON com um objeto JSON para cada contêiner em cada instância de serviço. Os campos JSON são:
status
. Status do contêiner de serviço. Os valores de status atualmente suportados incluem: PENDING, READY, FAILED e UNKNOWN.message
. Fornece detalhes sobre o status específico. Por exemplo, quando o status é PENDING, este campo descreve o motivo.containerName
. Nome do contêiner.instanceId
. ID da instância de serviço.serviceName
. Nome do serviço.image
. URL da imagem que está sendo executada.restartCount
. Número de vezes que o Snowflake reiniciou o contêiner. Uma contagem de reinicializações mais alta pode indicar um serviço não íntegro. Por exemplo, se o seu código de serviço falhar, o contêiner poderá sair. Snowflake então tenta reiniciar o contêiner. Nesse caso, para investigar, você pode acessar o log do contêiner usando estas opções:Use a função SYSTEM$GET_SERVICE_LOGS para logs ativos (o contêiner está em execução).
Use tabelas de eventos para logs persistentes (úteis quando o contêiner não estiver mais em execução).
startTime
. Hora em que o contêiner foi iniciado.
Notas de uso¶
A função atual deve ter o privilégio MONITOR no serviço para obter as informações de status.
Exemplos¶
A função a seguir recupera informações de status do serviço «echo_service». A função especifica um tempo limite de 5 segundos:
SELECT SYSTEM$GET_SERVICE_STATUS('echo_service', 5);
Exemplos de saídas:
Executando uma instância de serviço que possui um contêiner. a função retorna as informações do contêiner conforme mostrado:
[ { "status":"READY", "message":"Running", "containerName":"echo", "instanceId":"0", "serviceName":"ECHO_SERVICE", "image":"<account>.registry.snowflakecomputing.com/tutorial_db/data_schema/tutorial_repository/my_echo_service_image:tutorial", "restartCount":0, "startTime":"2023-01-01T00:00:00Z" } ]
instanceId
é a ID da instância de serviço. Se você tiver duas instâncias desse serviço em execução, a matriz incluirá dois objetos na saída, fornecendo o status do contêiner para duas instâncias de serviço separadas (oinstanceId
será 0 e 1).Executando uma instância de serviço que possui três contêineres (conforme definido na especificação do serviço). a função retorna uma matriz com três objetos (um para cada contêiner):
[ { "status":"READY", "message":"Running", "containerName":"echo-1", "instanceId":"0", "serviceName":"ECHO_SERVICE", "image":"<account>.registry.snowflakecomputing.com/tutorial_db/data_schema/tutorial_repository/my_echo_service_image_x:tutorial", "restartCount":0, "startTime":"2023-01-01T00:00:00Z" }, { "status":"READY", "message":"Running", "containerName":"echo-2", "instanceId":"0", "serviceName":"ECHO_SERVICE", "image":"<account>.registry.snowflakecomputing.com/tutorial_db/data_schema/tutorial_repository/my_echo_service_image_y:tutorial", "restartCount":0, "startTime":"2023-01-01T00:00:00Z" }, { "status":"READY", "message":"Running", "containerName":"echo-3", "instanceId":"0", "serviceName":"ECHO_SERVICE", "image":"<account>.registry.snowflakecomputing.com/tutorial_db/data_schema/tutorial_repository/my_echo_service_image_z:tutorial", "restartCount":0, "startTime":"2023-01-01T00:00:00Z" } ]
Como todos esses contêineres pertencem à mesma instância de serviço, instanceId
será 0 para todos os contêineres.