트랜잭션
홈 > 프로젝트 선택 >
경고 알림 > 이벤트 설정 > 트랜잭션 탭
트랜잭션 이벤트는 특정 URL, 에러, 상태 코드 등을 기준으로 트랜잭션을 세밀하게 모니터링하는 기능입니다. 설정한 조건을 만족하는 트랜잭션이 감지되면 이벤트가 발생합니다. 트랜잭션 데이터를 1분 단위로 분석하며, 조건을 충족하는 트랜잭션 수가 임계값을 초과할 경우 알림을 전송합니다.
최신 에이전트 버전
트랜잭션 이벤트를 사용하려면 최소 지원 버전 이상의 에이전트가 필요합니다.
| 언어 | 최소 지원 버전 |
|---|---|
| Java | 2.2.50 버전 이상 |
| PHP | 버전 미정 (최신 버전 이상 사용 권장, 별도 문의 필요) |
| Node.js | 0.5.21 버전 이상 |
| Python | 1.7.8 버전 이상 |
| .NET | 2.3.5 버전 이상 |
| Go | 버전 미정 (최신 버전 이상 사용 권장, 별도 문의 필요) |
기본 옵션
- 이벤트 레벨: 이벤트의 심각도를 의미하며 Info, Warning, Critical 세 단계로 구분
- 검색: 이벤트 이름 또는 이벤트 수신 태그를 선택해 원하는 이벤트 검색
- + 이벤트 추가: 새로운 트랜잭션 이벤트 추가
- 컬럼 크기 조정: 각 컬럼의 경계를 드래그하여 너비 조정 가능
| 항목 | 설명 |
|---|---|
| No. | 이벤트의 순번 |
| 이벤트의 활성화 여부 - 활성화: 조건을 충족하면 이벤트 발생 - 비활성화: 이벤트가 동작하지 않으며, 조건을 검사하지 않음 | |
| 이벤트 설정 수정 및 삭 제 | |
| 이벤트 이름 | 사용자가 지정한 이벤트명 - 최대 255byte까지 입력 가능 |
| 조건 유형 | 이벤트 발생 조건 유형(경과 시간, 에러 발생, 패턴만) |
| 집계 기준 | 트랜잭션 수를 집계하는 기준 |
| 대상 패턴 | 이벤트가 적용되는 포함/제외 패턴 (URL, 상태 코드 등) |
| 발생 횟수 | 이벤트 발생 기준이 되는 기간과 횟수 - 선택한 시간 동안 설정한 횟수만큼 조건을 충족하면 이벤트 발생 |
| 일시 중지 | 이벤트 알림 발생 후, 같은 이벤트 발생을 일정 시간 동안 멈춤 - 선택 가능 시간: 사용 안 함, 5분, 10분, 15분, 20분, 30분, 1시간, 2시간, 3시간, 6시간, 12시간, 1일 - 해소된 알림이 활성화된 경우, 정상(RECOVERED) 상태 알림을 받은 후 선택한 시간 동안 같은 이벤트가 발생해도 알림이 발생하지 않음 |
| 이벤트 수신 | 해당 이벤트 알림을 받을 사용자 또는 그룹(수신 태그) |
이벤트 설정
트랜잭션 이벤트는 이벤트 조건, 대상 패턴, 기본 정보 및 수신 설정 단계를 통해 구성됩니다. 이벤트 설정을 통해 특정 트랜잭션 패턴을 감지하고 알림을 받을 수 있습니다.
이벤트 추가
트랜잭션 이벤트를 추가하려면 이벤트 설정 > 트랜잭션 탭으로 이동한 후, 화면 오른쪽 상단의 [ + 이벤트 추가 ] 버튼을 클릭하세요.
| 트랜잭션 이벤트 추가 방법 |
|---|
| Step 1. 이벤트 조건 정의: 이벤트의 기본 구조를 선택합니다. |
| Step 2. 이벤트 대상 선택: 이벤트가 발생하는 모니터링 대상을 선택합니다. |
| Step 3. 기본 정보 및 수신 설정: 이벤트 이름 및 메시지, 수신 대상을 설정합니다. |
이벤트 조건 정의
트랜잭션 이벤트 발생 조건을 설정합니다.
조건 유형
이벤트를 발생시킬 기준을 선택하세요.
- 경과 시간: 지정한 시간(ms) 이상 소요된 트랜잭션
- 경과 시간 임계값: 조건 유형이 경과 시간인 경우, ms 단위로 입력하세요. 설정한 시간(ms) 이상 소요된 트랜잭션이 발생할 경우 이벤트가 발생합니다.
- 에러 발생: 에러가 발생한 트랜잭션
- 패턴만: 특정 패턴(히트맵 패턴 등)에 해당하는 트랜잭션
집계 기준
알림 조건을 어떤 단위로 집계할지 선택하세요.
- 집계 기준: 에이전트별, 각 에이전트의 URL별, 각 에이전트의 에러 클래스별, 각 에이전트의 업무별, URL별, 에러 클래스별, 업무별, 전체
발생 횟수(필수)
조건을 충족한 이벤트가 몇 번 발생했을 때 알림을 보낼지 설정합니다.
예: 발생 횟수 1회 → 조건 충족 즉시 알림 / 발생 횟수 3회 → 같은 조건이 3번 연속 발생해야 알림
일시 중지
과도한 이벤트 알림을 방지하기 위해, 알림을 일시 중지할 시간을 선택하세요.
- 이벤트 발생 후 설정한 시간 동안 동일한 이벤트가 발생하지 않습니다.
- 선택 가능 시간:
1분,5분,10분,15분,30분,1시간,2시간,3시간,6시간,12시간,1일
이벤트 동작 시간
이벤트가 어떤 시간대에 동작할지 설정합니다. 비근무 시간, 점검 시간대 등의 알림 발생을 제한할 수 있습니다. 태그를 설정하지 않으면 이벤트가 활성화된 상태에서 24시간 상시 동작합니다.
- + 추가를 클릭하세요.
- 이벤트 동작 시간에서 +새로운 태그 생성을 클릭하세요.
- 이벤트 동작 시간 태그 생성에서 태그 이름, 요일, 시간, 색상을 선택하고 [ 적용 ] 버튼을 클릭하세요.
- 생성한 태그는 태그 목록에서 확인할 수 있으며, 체크 박스를 선택하면 적용됩니다.
- 수정 또는 삭제할 태그의
아이콘을 클릭해 이벤트 동작 시간 태그 수정에서 태그를 수정하거나 태그 삭제할 수 있습니다.
태그 삭제 시 해당 태그가 적용된 모든 알림에서 삭제됩니다. 단, 이벤트 설정에서 사용 중인 태그는 삭제할 수 없습니다.
이벤트 대상 선택
트랜잭션 필터링을 위한 패턴을 설정합니다.
패턴 설정 방법
Enter로 구분하여 여러 패턴을 입력할 수 있습니다.- 별도로 설정하지 않으면, 프로젝트 내 모든 트랜잭션을 대상으로 이벤트가 발생합니다.
- 같은 유형의 패턴은 OR 조건으로 적용됩니다.
- 다른 유형의 패턴은 AND 조건으로 적용됩니다.
- 와일드카드(
*)를 사용하여 패턴을 설정할 수 있습니다. 와일드카드 위치는 최 대 2곳까지 허용됩니다. - 와일드카드(
*)와 슬래시(/) 외에 다른 문자가 함께 포함되어야 합니다.
슬래시(/)와 와일드카드(*) 조합에 주의하세요
/api/*:/api는 매칭되지 않음,/api/뒤에 경로가 있어야 매칭 (예: ✅ /api/users, ❌ /api)/api*:/api자체도 매칭됨 (예: ✅ /api, ✅ /api/users, ✅ /apitest)
일치 패턴
지정한 항목과 일치하는 데이터를 필터링합니다. 일치 패턴은 적용 후 파란색 태그로 표시됩니다.
각 항목의 패턴은 최대 10개까지 입력할 수 있습니다.
| 항목 | 설명 |
|---|---|
| 업무명 | 업무명 패턴 |
| URL | 트랜잭션 URL 패턴 - 예: /api/*, */users/* |
| 에러 클래스 | 에러 클래스명 패턴 - 예: *Exception, *Error |
| 에러 메시지 | 에러 메시지 내용 패턴 |
| 상태 코드 | HTTP 상태 코드 패턴 - 예: 4**, 5** |
제외 패턴
지정한 항목과 일치하는 데이터를 필터링 대상에서 제외합니다. 제외 패턴은 적용 후 빨간색 태그로 표시되고, 일치 패턴과 동일한 형식을 사용합니다. 각 항목의 패턴은 최대 10개까지 입력할 수 있습니다.
패턴 예시
-
완전 매칭
패턴: "hello"
"hello" → 일치
"Hello" → 불일치 (대소문자 구분) -
접두사 매칭
패턴: "hello*"
"hello" → 일치
"helloworld" → 일치
"hi" → 불일치 -
접미사 매칭
패턴: "*world"
"world" → 일치
"helloworld" → 일치
"hello" → 불일치 -
부분 문자열 매칭
패턴: "*ell*"
"hello" → 일치 (h'ell'o)
"excellent" → 일치 (exc'ell'ent)
"welcome" → 불일치 (ell이 포함되지 않음) -
복합 패턴
패턴: "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]), 수량자(+,?), 그룹화(( )) 등은 지원하지 않습니다. - 대소문자 구분: 모든 패턴 매칭은 대소문자를 구분합니다.
- 이스케이프 불가: 문자 자체를 매칭할 방법은 없습니다.
기본 정보 및 수신 설정
이벤트의 기본 정보와 알림 수신 방식을 설정합니다.
이벤트 활성화
이벤트가 발생했을 때 알림 전송 여부를 설정합니다.
-
활성화: 설정한 조건을 충족하면 이벤트의 알림이 전송됨
-
비활성화: 설정한 조건을 충족하더라도 알림이 전송되지 않음
이벤트 이름(필수)
알림 제목으로 사용될 이벤트 이름을 입력하세요.
이벤트 레벨(필수)
이벤트 레벨(Info, Warning, Critical)을 선택하세요.
이벤트 수신
이벤트 알림을 받을 멤버를 지정합니다.
- 전체 수신
- 태그 선택 수신
프로젝트에서 이벤트 수신 설정이 활성화된 모든 대상(멤버, 채널)에게 알림을 전송합니다.
해당 태그를 가진 프로젝트 멤버에게 알림을 전송합니다.
- 태그 선택 수신을 선택하세요.
- 수신 태그 항목에서 [ + 태그 추가 ] 또는 [ + ] 버튼을 클릭하세요.
- 이벤트 수신 태그 창 아래의 + 새 태그 생성을 클릭하세요.
- 태그 생성 창에서 태그 이름을 입력하고, 색상을 선택한 후, [ 태그 생성 ] 버튼을 클릭해 태그를 생성하세요.
- 생성된 태그는 태그 목록의
아이콘을 클릭해 수정 또는 삭제하세요.
- 이벤트 수신 태그 창에서 태그 목록에서 원하는 태그를 선택하면 적용됩니다.
수신 태그
수신자 태그는 알림을 받을 사용자 또는 채널을 그룹 단위로 관리하기 위한 기 능입니다. 이벤트에 수신자 태그를 설정하면, 해당 태그가 포함된 사용자에게만 알림이 전달됩니다. 수신 태그를 설정하지 않으면 프로젝트 내 모든 사용자에게 알림이 전송됩니다.
참고. 이벤트 동작 예시
트랜잭션 이벤트가 실제로 발생한 예시입니다.
설정 조건
- 집계 기준: 에이전트별
- 발생 횟수: 2회
- 일시 중지: 5분
- URL 패턴:
/api/posts/**,/delete/*,/*test*/ - 에러 클래스 패턴:
*TimeoutException*,*NullPointerException - 상태 코드 패턴:
4** - 제외 에러 클래스:
*IOException - 제외 상태 코드:
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분 단위로 집계되어 처리됩니다.
- 조건 유형이 '패턴만'인 경우, 반드시 하나 이상의 일치 또는 제외 패턴을 설정해야 합니다.
- 패턴 매칭은 대소문자를 구분합니다.
- 알림 메시지는 조건에 부합한 마지막 트랜잭션의 상세 정보가 포함됩니다.