- 카테고리:
시스템 함수 (시스템 정보)
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초
반환¶
각 서비스 인스턴스의 각 컨테이너에 대해 하나의 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);
예제 출력:
하나의 컨테이너가 있는 하나의 서비스 인스턴스 실행 중. 이 함수는 다음과 같이 컨테이너 정보를 반환합니다.
[ { "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입니다. 이 서비스의 두 인스턴스가 실행 중인 경우 배열에는 출력에 두 개의 오브젝트가 포함되어 두 개의 개별 서비스 인스턴스에 대한 컨테이너 상태를 제공합니다(instanceId는 0과 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이 됩니다.