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:

Monitoramento de um serviço

Sintaxe

SYSTEM$GET_SERVICE_STATUS( [ <db_name>.<schema_name>. ]<service_name> [ , <timeout_secs> ]  )
Copy

Argumentos

Obrigatório:

service_name

Nome do serviço. Se você omitir db_name e schema_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);
Copy

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"
     }
    ]
    
    Copy

    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 (o instanceId 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"
      }
    ]
    
    Copy

Como todos esses contêineres pertencem à mesma instância de serviço, instanceId será 0 para todos os contêineres.