- Catégories :
Fonctions système (Informations système)
SYSTEM$GET_SERVICE_STATUS¶
Récupère le statut d’un service Snowpark Container Services.
- Voir aussi :
Syntaxe¶
SYSTEM$GET_SERVICE_STATUS( [ <db_name>.<schema_name>. ]<service_name> [ , <timeout_secs> ] )
Arguments¶
Obligatoire :
service_name
Nom du service. Si vous omettez les éléments
db_name
etschema_name
, la fonction utilise la base de données et le schéma actuels.
Facultatif :
timeout_secs
Nombre de secondes à attendre pour que le service atteigne un état stable (par exemple, READY) avant de renvoyer le statut. Si le service n’atteint pas un état stable dans le délai spécifié, Snowflake renvoie l’état actuel.
S’il n’est pas spécifié, Snowflake renvoie immédiatement l’état actuel.
La valeur par défaut est 0 seconde.
Renvoie¶
Renvoie les informations de statut dans un tableau JSON avec un objet JSON pour chaque conteneur dans chaque instance de service. Les champs JSON sont les suivants :
status
. Statut du conteneur de service. Les valeurs de statut actuellement prises en charge sont les suivantes : PENDING, READY, FAILED et UNKNOWN.message
. Fournit des détails sur le statut spécifique. Par exemple, lorsque le statut est PENDING, ce champ explique pourquoi.containerName
. Nom du conteneur.instanceId
. ID d’instance de service.serviceName
. Nom du service.image
. URL de l’image en cours d’exécution.restartCount
. Nombre de fois où Snowflake a redémarré le conteneur. Un nombre élevé de redémarrages peut indiquer que le service n’est pas en bonne santé. Par exemple, si votre code de service se bloque, le conteneur peut sortir. Snowflake tente alors de redémarrer le conteneur. Dans ce cas, pour enquêter, vous pouvez accéder au journal du conteneur en utilisant ces options :Utilisez la fonction SYSTEM$GET_SERVICE_LOGS pour les journaux en direct (le conteneur est en cours d’exécution).
Utilisez les tables d’événements pour les journaux persistants (utiles lorsque le conteneur n’est plus en cours d’exécution).
startTime
. Heure à laquelle le conteneur a démarré.
Notes sur l’utilisation¶
Le rôle actuel doit avoir le privilège MONITOR sur le service pour obtenir les informations de statut.
Exemples¶
La fonction suivante permet de récupérer des informations sur le statut du service « echo_service ». La fonction spécifie un délai de 5 secondes :
SELECT SYSTEM$GET_SERVICE_STATUS('echo_service', 5);
Exemples de sorties :
Exécution d’une instance de service avec un seul conteneur. La fonction renvoie les informations sur le conteneur comme indiqué :
[ { "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
est l’ID d’instance de service. Si vous avez deux instances de ce service en cours d’exécution, le tableau inclut deux objets dans la sortie, fournissant le statut du conteneur pour deux instances de service distinctes (lesinstanceId
seront 0 et 1).Exécution d’une instance de service comportant trois conteneurs (tels que définis dans la spécification de service). La fonction renvoie un tableau contenant trois objets (un pour chaque conteneur) :
[ { "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" } ]
Comme tous ces conteneurs appartiennent à la même instance de service, le instanceId
sera 0 pour tous les conteneurs.