본문으로 건너뛰기

트랜잭션 이벤트

홈 화면 > 프로젝트 선택 > 아이콘 사이트맵 > 경고 알림 > 이벤트 설정 New > 트랜잭션 이벤트 탭

트랜잭션 이벤트는 특정 URL, 에러, 상태 코드 등의 패턴을 조합하여 트랜잭션을 세밀하게 모니터링할 수 있는 기능입니다. 애플리케이션에서 발생한 트랜잭션 중 설정한 조건을 만족하면 알림을 발생시킵니다. 1분 단위로 트랜잭션 데이터를 분석하고, 조건을 충족하는 트랜잭션 수가 임계값을 넘으면 알림을 전송합니다.

Metrics Event Transaction

이벤트 목록

이벤트 목록에서는 생성된 트랜잭션 이벤트를 확인하고 관리할 수 있습니다.

  • 활성화 상태: 스위치를 통해 이벤트 활성화 여부를 설정
  • 이벤트 레벨: 위험(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 버전 이상