sentry-jstack

원격 센트리에서 전체 스레드 덤프를 조회합니다. 수집기의 내부 동작 상태 등을 원격으로 진단하는 데 사용합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한관리자
라이선스 사용량해당 없음
병렬 실행지원
분산 실행미지원

문법

sentry-jstack [timeout=INT]

옵션

timeout=INT
초 단위 RPC 타임아웃. 1 이상 600 이하의 값을 지정할 수 있습니다. (기본값: 30)

입력 필드

필드타입필수 여부설명
guid문자열필수센트리 고유 식별자

출력 필드

필드타입설명
guid문자열센트리 고유 식별자
tid64비트 정수스레드 ID
name문자열스레드 이름
state문자열스레드 상태
stacktrace문자열스레드 스택 트레이스
_error문자열오류 발생 시 오류 메시지

state 필드에 할당될 수 있는 값은 다음과 같습니다.

설명
RUNNABLE언제든 실행 가능한 스레드
BLOCKED사용할 객체의 락이 풀릴 때까지 대기 중인 스레드
TIMED_WAITING주어진 시간 동안 대기 중인 스레드
WAITING다른 스레드와 동기화를 위해 대기 중인 스레드

오류 코드

파싱 오류
오류 코드메시지설명
23100센트리 RPC 호출 권한이 없습니다.관리자 권한이 없는 사용자가 명령어를 실행한 경우
23101유효하지 않은 센트리 RPC 타임아웃 옵션 값입니다. 1부터 600 사이의 값을 사용하세요.timeout 옵션 값이 숫자가 아니거나 1~600 범위를 벗어난 경우
런타임 오류

guid 필드 값에 따라 _error 필드에 다음 오류 메시지가 할당될 수 있습니다.

오류 메시지설명
guid is null입력 레코드의 guid 필드 값이 null인 경우
guid should be string입력 레코드의 guid 필드 값이 문자열이 아닌 경우
guid should be non empty string입력 레코드의 guid 필드 값이 빈 문자열인 경우
not connected센트리가 접속된 상태가 아닌 경우
timeoutRPC 요청 타임아웃 시간을 초과한 경우
disconnectedRPC 요청 처리 중에 연결이 단절된 경우

위에 정의된 오류 메시지 외에 센트리가 설치된 시스템 상태에 따라 다른 RPC 예외 메시지가 _error 필드에 할당될 수 있습니다.

설명

sentry-jstack 명령어는 입력 레코드의 guid 필드를 기반으로 원격 센트리에 전체 스레드 덤프를 요청하는 비동기 RPC 메시지를 전송합니다. 센트리로부터 응답을 수신하면 입력 레코드에 스레드 정보를 추가하여 출력합니다.

비동기 RPC 요청 대기열의 최대 길이는 기본값 100이며, 로그프레소 환경 변수 logpresso.core.sentry_rpc_parallel로 조정할 수 있습니다. 대기열이 가득 찬 상태에서 일부 센트리가 응답하거나 타임아웃되면 대기열에 빈 자리가 생기는 만큼 추가로 RPC 메시지를 전송합니다.

센트리의 RPC 응답 메시지를 수신하는 순서대로 결과를 출력하므로, 출력 레코드의 순서는 입력 레코드의 순서와 다를 수 있습니다.

클러스터 환경에서 모든 수집 노드의 결과를 한 번에 조회하려면 sonar-sentry-jstack 명령어를 사용하세요.

사용 예

  1. 모든 센트리의 스레드 덤프 조회

    system-sentries | fields guid | sentry-jstack
    
  2. BLOCKED 상태의 스레드만 조회

    system-sentries | fields guid | sentry-jstack | search state == "BLOCKED"
    

호환성

sentry-jstack 명령어는 소나 4.0 이전 버전부터 제공되었습니다.