SYSTEM$GET_SERVICE_STATUS
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이에요.