- カテゴリ:
システム関数 (システム情報)
SYSTEM$GET_SERVICE_STATUS¶
Snowpark Container Servicesサービス のステータスを取得します。
- こちらもご参照ください。
構文¶
SYSTEM$GET_SERVICE_STATUS( [ <db_name>.<schema_name>. ]<service_name> [ , <timeout_secs> ] )
引数¶
必須:
service_name
サービス名。
db_name
とschema_name
を省略すると、この関数は現在のデータベースとスキーマを使用します。
オプション:
timeout_secs
ステータスを返す前にサービスが定常状態(例: READY)になるまで待機する秒数。指定された時間内にサービスが定常状態に到達しない場合、Snowflakeは現在の状態を返します。
指定がない場合、Snowflakeは現在の状態を即座に返します。
デフォルト: 0秒
戻り値¶
各サービスインスタンスの各コンテナに対して、1つの JSON オブジェクトを持つ JSON 配列のステータス情報を返します。JSON フィールドは以下のとおりです。
status
。サービスコンテナのステータス。現在サポートされているステータス値は次のとおりです: PENDING、 READY、 FAILED、 UNKNOWN。message
。特定のステータスの詳細を提供します。たとえば、ステータスが PENDING の場合、このフィールドにはその理由が記述されます。containerName
。コンテナ名。instanceId
。サービスインスタンス ID。serviceName
。サービス名。image
。実行中のイメージの URL。restartCount
。Snowflakeがコンテナを再起動した回数。再起動回数が多いほど、不健全なサービスであることを示しています。たとえば、サービスコードがクラッシュすると、コンテナが終了する場合があります。その後、Snowflakeはコンテナの再起動を試みます。この場合、以下のオプションを使用してコンテナログにアクセスし、調査することができます。ライブログ(コンテナーが実行中)には SYSTEM$GET_SERVICE_LOGS 関数を使用します。
永続ログにはイベントテーブルを使用します(コンテナが実行されなくなったときに便利です)。
startTime
。コンテナの開始時刻。
使用上の注意¶
ステータス情報を取得するには、現在のロールにサービスに対する MONITOR 権限が必要です。
例¶
以下の関数は、「echo_service」サービスのステータス情報を取得します。この関数は5秒間のタイムアウトを指定します。
SELECT SYSTEM$GET_SERVICE_STATUS('echo_service', 5);
出力例:
1つのコンテナを持つサービスインスタンス1つを実行中。 この関数は、以下に示されているようにコンテナ情報を返します、
[ { "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
はサービスインスタンス ID です。このサービスのインスタンスが2つ実行されている場合、配列は2つのオブジェクトを出力に含み、2つの別々のサービスインスタンスのコンテナステータスを提供します(instanceId
は0と1になります)。3つのコンテナを持つサービスインスタンス1つを実行中。 この関数は、3つのオブジェクト(各コンテナに1つずつ)を含む配列を返します。
[ { "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" } ]
これらのコンテナはすべて同じサービスインスタンスに属しているため、 instanceId
はすべてのコンテナについて0になります。