sentry-top-threads

원격 센트리에서 상위 부하 스레드 덤프를 조회합니다.

명령어 속성

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

문법

sentry-top-threads [timeout=INT]

옵션

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

입력 필드

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

출력 필드

필드타입설명
guid문자열센트리 고유 식별자
tid64비트 정수스레드 ID
name문자열스레드 이름
state문자열스레드 상태(예: RUNNABLE, WAITING, BLOCKED)
priority32비트 정수스레드 우선순위
usage64비트 정수약 1초 동안 스레드가 사용한 CPU 시간(단위: 나노초)
stacktrace문자열스택 트레이스
_error문자열오류 발생 시 원본 레코드에 추가되는 오류 메시지

오류 코드

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

_error 필드를 통해 오류 내용을 반환합니다.

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

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

설명

sentry-top-threads 명령어는 입력 레코드의 guid 필드를 읽어 해당 센트리에 비동기 RPC 메시지를 전송하고, 약 1초 동안 CPU를 사용한 스레드의 덤프 정보를 조회합니다. 센트리는 스레드마다 CPU 사용 시간을 1초 간격으로 두 번 측정해 그 차이를 usage 필드에 담아 돌려주며, 그동안 CPU를 쓰지 않은 스레드는 결과에서 빠집니다.

이 명령어는 센트리의 RPC 응답 메시지를 수신하는 순서대로 결과를 반환하기 때문에 출력 레코드의 순서는 입력 레코드의 순서와 다를 수 있습니다.

비동기 RPC 요청 대기열의 최대 길이는 기본값 100이며, 로그프레소 환경 변수 logpresso.core.sentry_rpc_parallel로 조정할 수 있습니다.

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

사용 예

  1. 모든 센트리의 상위 부하 스레드 조회

    sentry | fields guid | sentry-top-threads
    
  2. CPU 사용 시간 기준으로 정렬하여 조회

    sentry | fields guid | sentry-top-threads | sort -usage
    
  3. 타임아웃을 120초로 설정하여 조회

    sentry | fields guid | sentry-top-threads timeout=120
    

변경 이력

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