jennifer-xview
JENNIFER 도메인의 개별 트랜잭션(X-View 점)을 콘솔의 X-View 분석 화면처럼 검색합니다. 끝난 트랜잭션 하나가 한 행입니다. 원인 분석의 증거 단계에 씁니다. jennifer-metrics, jennifer-problems, jennifer-app-summary, jennifer-errors로 시간대·인스턴스·애플리케이션을 좁힌 뒤, 그 범위의 느리거나 실패한 트랜잭션을 나열하고 시간이 어디에 쓰였는지(response_time 대비 sql_time, fetch_time, external_call_time, cpu_time) 봅니다. 그다음 트랜잭션의 domain_id, txid, 시각을 jennifer-profile에 넘겨 호출 프로파일을 읽습니다.
jennifer-xview [profile=값] domain_id=값 [instance_ids=값] [duration=값] [from=값] [to=값] [min_response_time=값] [errors_only=값] [limit=값]
- profile=값
- 선택. JENNIFER 콘솔 접속 프로파일(유형 jennifer-apm-console) 이름입니다. 지정하지 않으면 권한이 있는 콘솔 프로파일을 모두 사용합니다. domain_id는 콘솔마다 다르므로 domain_id를 쓸 때는 프로파일이 하나여야 합니다. 권한이 있는 프로파일이 여럿이면 지정하세요.
- domain_id=값
- 필수. 예: 1000. 검색할 도메인(sid)입니다. jennifer-instances로 확인할 수 있습니다.
- instance_ids=값
- 선택. 예: 75553,75555. 도메인의 인스턴스 ID(oid)를 쉼표로 구분해 지정합니다. 지정하지 않으면 기간 안에 데이터가 있는 인스턴스를 모두 검색합니다.
- duration=값
- 선택. 예: 10m(최근 10분). 현재 시각까지의 최근 기간으로 s(초), m(분), h(시), d(일) 단위입니다. 기간을 지정하지 않으면 최근 10분입니다. 최대 1일입니다. 트랜잭션은 콘솔이 수집한 시각(collection_time)으로 고릅니다.
- from=값
- 선택. 기간의 시작, yyyyMMddHHmmss. 뒷자리를 쓰지 않으면 0으로 채웁니다. duration보다 우선합니다.
- to=값
- 선택. 기간의 끝, yyyyMMddHHmmss. 뒷자리를 쓰지 않으면 0으로 채웁니다. 생략하면 현재 시각입니다.
- min_response_time=값
- 선택. 예: 3000. 응답시간이 이 값(밀리초) 이상인 트랜잭션만 반환합니다. 기본값은 0(전체)입니다. 콘솔이 걸러 주므로 바쁜 기간의 행 수를 줄이는 방법입니다.
- errors_only=값
- 선택. t 또는 f. t이면 에러로 끝난 트랜잭션만 반환합니다(콘솔의 '예외만 보기' 조건). 기본값은 f입니다.
- limit=값
- 선택. 예: 50000. 반환할 최대 행 수로, 기본값은 10000입니다. 오래된 것부터 오므로 한도에 이르면 기간의 마지막 부분이 빠집니다. 값을 키우기보다 기간을 좁히거나 min_response_time을 올리세요.
참고
- 기간은 짧게(문제 전후 몇 분) 잡고, 바쁜 기간에는 min_response_time이나 errors_only를 쓰세요. 작은 서버도 10분에 약 6,000건을 기록합니다. 기간은 최대 1일입니다.
- 행은 콘솔이 수집한 순서(오래된 것부터)로 오며 limit(기본 10000)에서 멈춥니다. 정확히 limit 행이면 잘린 결과입니다. 정렬과 집계는 Logpresso 명령으로 합니다.
- 소요 시간(response_time, sql_time 등)은 밀리초입니다. _time과 end_time은 트랜잭션 종료, start_time은 시작, collection_time은 콘솔이 수집한 시각(기간 옵션이 고르는 기준)입니다.
출력 필드
| 필드 | 타입 | 이름 | 설명 |
|---|---|---|---|
| _time | 날짜 | 종료 시각 | 예: 2026-10-27 03:13:59. 트랜잭션이 끝난 시각(에이전트 시계, end_time과 같음)입니다. |
| profile | 문자열 | 접속 프로파일 | 예: jennifer-prod |
| domain_id | 32비트 정수 | 도메인 ID | 예: 1000 |
| instance_id | 64비트 정수 | 인스턴스 ID | 예: 75553. 트랜잭션을 실행한 인스턴스(oid)입니다. |
| instance_name | 문자열 | 인스턴스 이름 | 예: siem-mon-console-1 |
| inst_id | 64비트 정수 | 인스턴스 키 | 예: 10017. 인스턴스의 콘솔 instId로, 트랜잭션 상세 조회에 쓰입니다. |
| application | 문자열 | 애플리케이션 | 예: /api/orders. 서비스 이름(URL)입니다. |
| txid | 문자열 | 트랜잭션 ID | 예: -2271545734455864799. 도메인 안에서 트랜잭션을 가리킵니다. jennifer-profile에 domain_id, 행의 시각과 함께 넘깁니다. |
| response_time | 32비트 정수 | 응답시간 | 예: 18719. 밀리초. |
| sql_time | 32비트 정수 | SQL 시간 | 예: 43. SQL 수행에 쓴 밀리초. |
| fetch_time | 32비트 정수 | 패치 시간 | 예: 0. SQL 결과 패치에 쓴 밀리초. |
| external_call_time | 32비트 정수 | 외부 호출 시간 | 예: 197. 외부 서비스 호출에 쓴 밀리초. |
| cpu_time | 32비트 정수 | CPU 시간 | 예: 26. 밀리초. |
| frontend_time | 32비트 정수 | 프론트엔드 시간 | 예: 0. 프론트엔드 모니터링을 쓸 때의 브라우저 시간입니다. |
| network_time | 32비트 정수 | 네트워크 시간 | 예: 0. 밀리초. |
| error_code | 32비트 정수 | 에러 코드 | 예: 1020. 에러가 없으면 0입니다. |
| error_name | 문자열 | 에러 유형 | 예: SQL_EXCEPTION, SERVICE_EXCEPTION, EXTERNALCALL_EXCEPTION, BAD_RESPONSE_TIME_APPLICATION. 에러가 없으면 null입니다. |
| http_status | 32비트 정수 | HTTP 상태 | 예: 200. 기록되지 않았으면 null입니다. |
| client_ip | 문자열 | 클라이언트 IP | 예: 10.10.26.233 |
| client_id | 문자열 | 클라이언트 ID | 예: 3109098555655530894. 콘솔의 wmonId입니다. |
| user_id | 문자열 | 사용자 ID | 예: alice. 수집하지 않았으면 null입니다. |
| guid | 문자열 | GUID | 서비스 사이에 연결된 트랜잭션이 공유하는 전역 ID입니다. 없으면 null입니다. |
| start_time | 날짜 | 시작 시각 | end_time에서 response_time을 뺀 시각입니다. |
| end_time | 날짜 | 종료 시각 | 에이전트가 기록한 종료 시각입니다. |
| collection_time | 날짜 | 수집 시각 | 콘솔이 트랜잭션을 수집한 시각으로 end_time보다 몇 밀리초 늦습니다. 기간 옵션은 이 시각으로 고르며, 트랜잭션 상세 조회가 트랜잭션을 찾을 때 씁니다. |
| async | 불리언 | 비동기 | 예: false |
| linked | 불리언 | 연계 | 예: false. 모니터링하는 다른 서비스를 호출했거나 호출받았습니다. |
| stacked | 불리언 | 스택 수집 | 예: true. 실행 중 스택 트레이스가 수집되었습니다. |
사용 예
최근 10분 가장 느린 트랜잭션:
jennifer-xview domain_id=1000 duration=10m min_response_time=3000 | sort limit=20 -response_time | fields _time, instance_name, application, response_time, sql_time, external_call_time, cpu_time, error_name, txid
느린 트랜잭션의 시간 구성(애플리케이션별):
jennifer-xview domain_id=1000 from=20261027030000 to=20261027031000 min_response_time=1000 | stats count, avg(response_time) as rt, avg(sql_time) as sql, avg(fetch_time) as fetch, avg(external_call_time) as ext, avg(cpu_time) as cpu by application | sort limit=10 -rt
최근 30분 에러 유형·애플리케이션별 건수:
jennifer-xview domain_id=1000 duration=30m errors_only=t | stats count, max(_time) as last_seen by error_name, application, instance_name | sort -count
두 인스턴스의 분당 응답시간: