트랜잭션 이벤트
홈 화면 > 프로젝트 선택 > 사이트맵 > 경고 알림 > 이벤트 설정
New
> 트랜잭션 이벤트 탭
트랜잭션 이벤트는 특정 URL, 에러, 상태 코드 등의 패턴을 조합하여 트랜잭션을 세밀하게 모니터링할 수 있는 기능입니다. 애플리케이션에서 발생한 트랜잭션 중 설정한 조건을 만족하면 알림을 발생시킵니다. 1분 단위로 트랜잭션 데이터를 분석하고, 조건을 충족하는 트랜잭션 수가 임계값을 넘으면 알림을 전송합니다.
이벤트 목록
이벤트 목록에서는 생성된 트랜잭션 이벤트를 확인하고 관리할 수 있습니다.
- 활성화 상태: 스위치를 통해 이벤트 활성화 여부를 설정
- 이벤트 레벨: 위험(Critical), 경고(Warning), 정상(Info)
- 검색 기능: 이벤트 이름, 수신자, 대상 패턴을 기준으로 검색
- 컬럼 크기 조정: 각 컬럼의 경계를 드래그하여 너비를 조정
주요 컬럼
항목 | 설명 |
---|---|
No | 이벤트의 순번 |
활성화 | 이벤트의 활성화 여부 |
수정 | 이벤트를 편집할 수 있는 버튼 |
이벤트 이름 | 사용자가 설정한 이벤트 이름 |
조건 유형 | 이벤트 발생 조건 유형 (경과 시간, 에러 발생, 패턴만) |
집계 기준 | 트랜잭션 카운트를 집계하는 기준 |
대상 패턴 | 이벤트가 적용되는 포함/제외 패턴 (URL, 상태 코드 등) |
발생 횟수 | 알림 발생 기준이 되는 횟수 |
일시 중지 | 알림 후 일정 시간 동안 동일 이벤트를 무시하는 시간 |
이벤트 수신 | 알림을 받을 사용자 또는 그룹 |
이벤트 추가/수정
이벤트를 추가하려면 이벤트 목록 테이블 오른쪽 위에 이벤트 추가 버튼을 클릭하세요. 이벤트를 추가하거나 수정할 때는 다음의 세 가지 섹션에서 조건을 설정합니다.
1. 이벤트 조건 정의
이벤트의 발생 조건을 설정하는 섹션입니다.
-
조건 유형 (필수)
-
경과 시간: 지정 시간(ms) 이상 소요된 트랜잭션
-
에러 발생: 에러가 발생한 트랜잭션
-
패턴만: 지정된 패턴에 일치하는 트랜잭션
-
-
경과 시간 임계값: 조건 유형이 '경과 시간'일 경우, ms 단위로 입력
-
집계 기준 (필수)
-
전체
-
에이전트별
-
URL별
-
각 에이전트의 URL별
-
에러 클래스별
-
각 에이전트의 에러 클래스별
-
컨텍스트별
-
각 에이전트의 컨텍스트별
노트컨텍스트가 없는 경우 집계되지 않습니다.
- 에이전트 옵션 설정을 하지 않은 경우 (
app_context_enabled=true
) - 웹 트랜잭션이 아닌 경우
- 에이전트 옵션 설정을 하지 않은 경우 (
-
-
발생 횟수 (필수): 지정 횟수 이상 발생 시 알림
-
일시 중지 (필수): 알림 후 동일 이벤트 재발생 시 무시 시간 (1분 ~ 1일)
-
이벤트 동작 시간: 특정 시간대에만 이벤트가 동작하도록 설정 가능
2. 이벤트 대상 선택
트랜잭션 필터링을 위한 패턴을 설정합니다.
패턴 설정 방법
- Enter로 구분하여 여러 패턴을 입력할 수 있습니다.
- 와일드카드(*)를 사용하여 패턴을 설정할 수 있습니다.
- 같은 유형의 패턴은 OR 조건으로, 다른 유형의 패턴은 AND 조건으로 적용됩니다.
- 아무 패턴도 설정하지 않으면 프로젝트의 전체 트랜잭션이 대상이 됩니다.
슬래시(/
)와 와일드카드(*
) 조합에 주의하세요
/api/*
:/api
는 매칭되지 않음,/api/
뒤에 경로가 있어야 매칭 (예: ✅ /api/users, ❌ /api)/api*
:/api
자체도 매칭됨 (예: ✅ /api, ✅ /api/users, ✅ /apitest)
일치 패턴
지정한 항목과 일치하는 데이터를 필터링합니다. 일치 패턴은 적용 후 파란색 태그로 표시됩니다.
- 컨텍스트: 애플리케이션 컨텍스트 패턴
- URL: 트랜잭션 URL 패턴 (예: /api/*, /users/)
- 에러 클래스: 에러 클래스명 패턴 (예: *Exception, *Error)
- 에러 메시지: 에러 메시지 내용 패턴
- 상태 코드: HTTP 상태 코드 패턴 (예: 4**, 5**)
제외 패턴
지정한 항목과 일치하는 데이터를 필터링 대상에서 제외합니다. 제외 패턴은 적용 후 빨간색 태그로 표시되고, 일치 패턴과 동일한 형식을 사용합니다.
패턴 매칭 예시
1. 완전 매칭
패턴: "hello"
"hello" → 일치
"Hello" → 불일치 (대소문자 구분)
2. 접두사 매칭
패턴: "hello*"
"hello" → 일치
"helloworld" → 일치
"hi" → 불일치
3. 접미사 매칭
패턴: "*world"
"world" → 일치
"helloworld" → 일치
"hello" → 불일치
4. 부분 문자열 매칭
패턴: "*ell*"
"hello" → 일치 (h'ell'o)
"excellent" → 일치 (exc'ell'ent)
"welcome" → 불일치 (ell이 포함되지 않음)
5. 복합 패턴
패턴: "hello*world"
"hellobeautifulworld" → 일치
패턴: "hello*test*"
"hellomytestcase" → 일치
패턴: "*test*world"
"mytestcaseworld" → 일치
실제 사용 예시
-
URL 패턴
-
/api/*
: /api/로 시작하는 모든 URL -
*/users/*
: users가 포함된 모든 URL -
/api/v1/users
: 정확히 일치하는 URL만
-
-
에러 클래스 패턴
-
*Exception
: Exception으로 끝나는 모든 에러 -
java.lang.*
: java.lang으로 시작하는 모든 클래스 -
*Timeout*
: Timeout이 포함된 모든 에러
-
-
상태 코드 패턴
-
4**
: 400번대 모든 상태 코드 -
404
: 404 상태 코드만 -
5*
: 500번대 모든 상태 코드
-
패턴 제한사항
-
필수 문자열: 패턴에는 와일드카드(*) 외에 최소 1개 이상의 문자가 포함되어야 합니다. 와일드카드만으로는 패턴을 설정할 수 없습니다.
- ❌ 불가:
***
,**
- ✅ 가능:
a*
,*a
,*a*
,/api*
- ❌ 불가:
-
빈 문자열: 빈 문자열이나 null 값은 매칭되지 않습니다.
-
연속된 와일드카드: 연속된
**
는 하나의*
와 동일하게 처리됩니다. -
복잡한 패턴:
*
이 3개 이상 포함된 패턴은 지원하지 않습니다. -
정규식 미지원: 문자 클래스(
[a-z]
), 수량자(+
,?
), 그룹화(()
) 등은 지원하지 않습니다. -
대소문자 구분: 모든 패턴 매칭은 대소문자를 구분합니다.
-
이스케이프 불가:
*
문자 자체를 매칭할 방법은 없습니다.
3. 기본 정보 및 수신 설정
이 섹션에서는 이벤트의 기본 정보와 알림 수신 방식을 설정할 수 있습니다.
-
이벤트 활성화: 이벤트의 활성화 또는 비활성화 상태를 설정합니다.
-
이벤트 이름 (필수): 이벤트를 식별할 수 있는 명확한 이름을 입력합니다.
-
이벤트 레벨 (필수)
-
Critical: 위험
-
Warning: 경고
-
Info: 정상, 정보
-
-
이벤트 수신
-
전체 수신: 프로젝트에 속한 모든 멤버가 알림을 수신합니다.
-
태그 선택 수신: 특정 태그를 가진 멤버만 알림을 수신합니다. 이 옵션을 선택하면 수신 태그 항목이 표시됩니다.
-
수신 태그: '태그 선택 수신'을 선택한 경우, + 태그 추가 버튼을 클릭하면 드롭다운 메뉴가 열립니다.
-
드롭다운 메뉴에서 알림을 받을 기존 태그를 선택하거나, 새 태그를 직접 생성할 수 있습니다.
-
-
이벤트 동작 예시
다음은 트랜잭션 이벤트가 실제로 발생한 예시입니다:
설정 조건
- URL 패턴: /api/posts/**, /delete/*, /*test*/
- 에러 클래스 패턴: *TimeoutException*, *NullPointerException
- 상태 코드 패턴: 4**
- 제외 에러 클래스: *IOException
- 제외 상태 코드: 5**
- 집계 기준: 에이전트별
- 발생 횟수: 2회
- 일시 중지: 5분
발생한 알림 메시지 예시
이벤트 메시지의 트랜잭션 정보는 조건에 부합한 마지막 트랜잭션의 값을 표시합니다.
(ignored count: 3)
[Per Agent] limit: 2, count: 3
[Condition]
url patterns: /api/posts/**, /delete/*, */test/*
error class patterns: *TimeoutException*, *NullPointerException
status patterns: 4**
exclude error class patterns: *IOException
exclude status patterns: 5**
[Transaction]
url: /api/posts/test/timeout
txid: 408093121470636540
status: 408
error class: java.util.concurrent.TimeoutException
이벤트 메시지 구성 설명
-
(ignored count: n): 일시 중지 시간 동안 조건에 부합했지만 알림이 발생하지 않은 트랜잭션 수입니다. 일시 중지 시간 동안 무시된 건이 없으면 이 항목은 표시되지 않습니다.
-
집계 정보: 설정한 집계 방식에 따라 다르게 표시됩니다.
- 에이전트별:
[Per Agent] limit: n, count: n
- URL별:
[Per Url] limit: n
후 각 URL과 발생 건수 나열 - 에러 클래스별:
[Per Error Class] limit: n
후 각 에러 클래스와 발생 건수 나열 - 컨텍스트별:
[Per Context] limit: n
후 각 컨텍스트와 발생 건수 나열 - 각 에이전트의 URL별:
[Per Agent & Url] limit: n
후 각 URL과 발생 건수 나열 - 각 에이전트의 에러 클래스별:
[Per Agent & Error Class] limit: n
후 각 에러 클래스와 발생 건수 나열 - 에이전트별 컨텍스트별:
[Per Agent & Context] limit: n
후 각 컨텍스트와 발생 건수 나열 - 전체:
[Total] limit: n, count: n
- 에이전트별:
-
[Condition]: 이벤트 발생 시점에 설정되어 있던 조건들을 표시합니다. 설정된 패턴만 표시됩니다.
- context patterns: 컨텍스트 일치 패턴
- url patterns: URL 일치 패턴
- error class patterns: 에러 클래스 일치 패턴
- error message patterns: 에러 메시지 일치 패턴
- status patterns: 상태 코드 일치 패턴
- exclude context patterns: 컨텍스트 제외 패턴
- exclude url patterns: URL 제외 패턴
- exclude error class patterns: 에러 클래스 제외 패턴
- exclude error message patterns: 에러 메시지 제외 패턴
- exclude status patterns: 상태 코드 제외 패턴
-
[Transaction]: 조건에 부합한 마지막 트랜잭션의 상세 정보입니다.
- url: 트랜잭션 URL
- txid: 트랜잭션 고유 식별자
- status: HTTP 응답 상태 코드 (HTTP 트랜잭션이 아닌 경우 미표시)
- error class: 에러 클래스 (에러 클래스가 없는 경우 미표시)
- error message: 에러 메시지 (에러 메시지가 없는 경우 미표시)
이벤트 메시지는 설정한 조건과 실제 발생한 트랜잭션의 정보를 모두 포함하여, 어떤 조건에 의해 알림이 발생했는지 명확히 확인할 수 있습니다.
참고 사항
-
트랜잭션 이벤트는 1분 단위로 집계되어 처리됩니다.
-
조건 유형이 '패턴만'인 경우, 반드시 하나 이상의 일치 또는 제외 패턴을 설정해야 합니다.
-
패턴 매칭은 대소문자를 구분합니다.
-
알림 메시지에는 조건에 부합한 마지막 트랜잭션의 상세 정보가 포함됩니다.
최신 에이전트 버전
트랜잭션 이벤트는 최신 에이전트 버전이 요구됩니다.
- Node.js: 0.5.21 버전 이상