다음을 통해 공유


SQL Server 확장 이벤트 대상

SQL Server 확장 이벤트 대상은 이벤트 소비자입니다. 대상은 파일에 기록하거나 이벤트 데이터를 집계하거나 이벤트에 연결된 태스크를 시작할 수 있으며 대상은 동기적 또는 비동기적으로 데이터를 처리할 수 있습니다.

확장 이벤트는 대상이 세션당 단 한 번만 이벤트를 수신하도록 설계되어 있습니다.

확장 이벤트 세션에 사용할 수 있도록 확장 이벤트에서 제공하는 대상은 다음과 같습니다.

  • 이벤트 버킷팅

    지정된 이벤트 열 또는 동작을 기반으로 지정된 이벤트가 발생한 횟수를 계산하는 데 사용합니다.

  • 이벤트 쌍

    잠금 획득 및 잠금 해제와 같이 많은 종류의 이벤트는 쌍으로 발생합니다. 지정된 쌍 이벤트가 일치하는 집합에서 발생하지 않는 경우를 확인하는 데 사용합니다.

  • ETW(Windows용 이벤트 추적)

    SQL Server 이벤트와 Windows 운영 체제 또는 응용 프로그램 이벤트 데이터의 상관 관계를 파악하는 데 사용합니다.

  • 이벤트 파일

    완료된 메모리 버퍼에서 디스크로 이벤트 세션 출력을 쓰는 데 사용합니다.

  • 동기 이벤트 카운터

    확장 이벤트 세션 동안 발생하는 모든 지정된 이벤트의 수를 셉니다. 전체 이벤트 컬렉션의 오버헤드를 추가하지 않고도 작업 특성에 대한 정보를 얻는 데 사용합니다.

  • 링 버퍼

    FIFO(선입선출) 또는 이벤트별 FIFO 방식으로 메모리에 이벤트 데이터를 저장하는 데 사용합니다.

대상은 파일 대상과 메모리 내 대상으로 나뉠 수 있습니다.

  • 이벤트 파일 대상과 ETW 대상은 파일 대상으로 간주됩니다.

  • 이벤트 버킷팅, 이벤트 쌍, 동기 이벤트 카운터 및 링 버퍼 대상은 데이터가 세션의 버퍼(sys.dm_xe_session_targets 동적 관리 뷰의 target_data 열)에 저장되는 메모리 내 대상으로 간주됩니다.

메모리 내 대상을 사용하는 세션을 중지하면 세션 버퍼에 저장된 모든 정보가 손실됩니다. 세션을 중지한 후 이벤트 데이터에 액세스하려면 파일 대상을 사용하도록 세션을 구성하거나(권장) 세션을 중지하기 전에 데이터를 저장해야 합니다.

다음 지침을 사용하면 사용할 대상을 결정하는 데 도움이 됩니다.

대상

권장 사용법

이벤트 파일 대상 또는 ETW 대상

다음 중 하나 이상의 조건에 해당되는 경우 파일 대상을 사용합니다.

  • 장기적인 데이터 수집을 수행하려고 합니다.

  • 고용량 이벤트에 대한 데이터를 수집하려고 합니다.

  • 기록 목적으로 이벤트 데이터를 보관하려고 합니다.

링 버퍼 대상

다음 조건이 충족되는 경우 링 버퍼 대상을 사용합니다.

  • 데이터를 지속적으로 수집하지만 최근 이벤트(이벤트 데이터의 약 2MB 분량)에 대해서만 관심을 두는 순환 추적을 수행하려고 합니다. 또는 단기 데이터 수집을 수행하고 최근 이벤트만 보려고 합니다.

  • 세션 버퍼에 캡처된 모든 이벤트 데이터를 보려고 합니다. 즉, 집계 정보가 아닌 원시 데이터를 보려고 합니다.

  • 기록 목적으로 이벤트 데이터를 보관할 필요가 없습니다.

이벤트 버킷팅 대상, 이벤트 쌍 대상 또는 동기 이벤트 카운터 대상

다음 조건에 해당되는 경우 이러한 메모리 내 대상 중 하나를 사용합니다.

  • 이벤트 데이터에 대한 일종의 분석 및 집계를 수행할 수 있는 대상을 사용하여 특정 문제를 해결하려고 합니다. 예를 들어 열린 상태로 남은 트랜잭션이 있는지 확인하거나(이벤트 쌍 대상) 지정된 기간에 걸쳐 CPU 사용량 기준 상위 쿼리를 확인하려는 경우가 있습니다(이벤트 버킷팅 대상).

  • 단기적인 데이터 수집을 수행하려고 합니다.

  • 기록 목적으로 이벤트 데이터를 보관할 필요가 없습니다.

이벤트 버킷팅 대상

이벤트 버킷팅 대상은 이벤트 데이터를 기준으로 특정 이벤트 유형의 항목을 그룹화합니다. "버킷"은 지정된 이벤트 열 또는 동작을 기준으로 계산되는 이벤트의 그룹입니다. 이벤트 버킷팅 대상을 사용하여 성능 문제를 해결할 수 있습니다. 가장 자주 발생하는 이벤트가 무엇인지 확인하면 성능 문제의 원인이 될 수 있는 "핫스폿"을 찾아낼 수 있습니다.

다음 표에서는 이벤트 버킷팅 대상을 구성하는 데 사용할 수 있는 옵션을 설명합니다.

옵션

허용되는 값

설명

slots

임의의 정수 값을 사용할 수 있습니다. 이 값은 선택 사항입니다.

저장할 최대 버킷 수를 나타내는 사용자 지정 값입니다. 이 값에 도달하면 기존 버킷에 속하지 않는 새 이벤트는 무시됩니다.

filtering_event_name

확장 이벤트 세션에 있는 이벤트입니다. 이 값은 선택 사항입니다.

이벤트의 클래스를 식별하는 데 사용되는 사용자 지정 값입니다. 지정된 이벤트의 인스턴스만 버킷팅되고 다른 이벤트는 모두 무시됩니다.

이 값을 지정하는 경우 package_name.event_name 형식(예: 'sqlserver.checkpoint_end')을 사용해야 합니다. 다음 쿼리를 사용하여 패키지 이름을 확인할 수 있습니다.

SELECT p.name, se.event_name
FROM sys.dm_xe_session_events se
JOIN sys.dm_xe_packages p
ON se_event_package_guid = p.guid
ORDER BY p.name, se.event_name

filtering_event_name 값을 지정하지 않는 경우 source_type을 기본값인 1로 설정해야 합니다.

source_type

버킷의 기반이 되는 개체의 유형입니다. 이 값은 선택 사항이고 지정되지 않은 경우 기본값이 1입니다.

다음 값 중 하나가 될 수 있습니다.

  • 0 = 이벤트

  • 1 = 동작

source

이벤트 열 또는 동작의 이름입니다.

데이터 원본으로 사용되는 이벤트 열 또는 동작 이름입니다.

원본에 대한 이벤트 열을 지정하는 경우 filtering_event_name 값에 사용되는 이벤트의 열을 지정해야 합니다. 다음 쿼리를 사용하여 후보 열을 확인할 수 있습니다.

SELECT name FROM sys.dm_xe_object_columns
WHERE object_name = '<eventname>'
AND column_type != 'readonly'

원본에 대한 이벤트 열을 지정할 때는 원본 값에 패키지 이름을 포함할 필요가 없습니다.

원본에 대한 동작 이름을 지정하는 경우 이 대상이 사용되고 있는 이벤트 세션의 컬렉션을 위해 구성된 동작 중 하나를 사용해야 합니다. sys.dm_xe_sesssion_event_actions view의 action_name 열을 쿼리하면 동작 이름의 후보 값을 찾을 수 있습니다.

동작 이름을 데이터 원본으로 사용하고 있는 경우 package_name.action_name 형식을 사용하여 원본 값을 지정해야 합니다.

다음 예에서는 이벤트 버킷팅 대상이 데이터를 수집하는 방식을 높은 수준에서 보여 줍니다. 이 예에서 이벤트 버킷팅 대상을 사용하여 각 대기 유형의 대기 횟수가 몇 번인지 계산할 수 있습니다. 이를 계산하려면 이벤트 버킷팅 대상을 정의할 때 다음 옵션을 지정하면 됩니다.

  • filtering_event_name = 'wait_info'

  • source = 'wait_type'

  • source_type = 0(wait_type이 이벤트 열이므로)

예제 시나리오에서는 wait_type 원본에 대해 다음 데이터가 기록됩니다.

필터링 이벤트 이름

원본 열 값

wait_info

file_io

wait_info

file_io

wait_info

network

wait_info

network

wait_info

sleep

대기 유형 값은 세 개의 버킷으로 분류되고 각각의 값 및 슬롯 개수는 다음과 같습니다.

슬롯 개수

file_io

2

network

2

sleep

1

이벤트 버킷팅 대상 구문에 대한 자세한 내용은 방법: 확장 이벤트를 사용하여 시스템 작업 모니터링을 참조하십시오.

버킷팅 대상은 지정된 원본에 대한 이벤트 데이터만 저장합니다. 이벤트 데이터가 너무 커서 모두 저장할 수 없는 경우에는 데이터가 잘립니다. 이벤트 데이터가 잘리면 바이트 수가 기록되고 XML 출력으로 표시됩니다.

버킷팅 대상은 데이터를 XML 형식으로 직렬화하여 호출 프로그램 또는 프로시저에 반환합니다.

[!참고]

버킷팅 출력은 어떤 스키마도 따르지 않습니다.

다음 예에서는 버킷팅 대상의 출력 형식을 보여 줍니다.

<Slots truncated = "0" buckets=[count]>
    <Slot count=[count] trunc=[truncated bytes]>
        <value>
        </value>
    </Slot>
</Slots>

이벤트 쌍 대상

이벤트 쌍 대상은 각 이벤트에 있는 하나 이상의 데이터 열을 사용하여 두 이벤트를 연결합니다. 잠금 획득과 잠금 해제 등 많은 이벤트가 쌍을 이루게 됩니다. 이벤트 시퀀스가 쌍을 이루면 두 이벤트는 삭제됩니다. 일치하는 집합을 삭제하면 해제되지 않은 잠금 획득을 쉽게 찾아낼 수 있습니다.

이벤트 수준 필터를 사용하여 이벤트 쌍 대상이 사전 설정된 기준에 일치하지 않는 이벤트만 캡처하도록 할 수 있습니다.

이벤트 쌍 대상을 사용하면 연결 작업을 수행할 열 시퀀스와 연결할 두 이벤트를 선택할 수 있습니다. 이 시퀀스의 모든 열은 같은 유형이어야 합니다.

다음 표에는 이벤트 쌍을 구성하는 데 사용할 수 있는 옵션이 나와 있습니다.

옵션

허용된 값

설명

begin_event

현재 세션에 있는 이벤트 이름입니다.

시퀀스 쌍의 시작 이벤트를 지정하는 이벤트 이름입니다.

end_event

현재 세션에 있는 이벤트 이름입니다.

시퀀스 쌍의 종료 이벤트를 나타내는 이벤트 이름입니다.

begin_matching_columns

쉼표로 구분하여 순서대로 나열된 열 이름 목록입니다.

연결 작업을 수행할 열입니다.

end_matching_columns

쉼표로 구분하여 순서대로 나열된 열 이름 목록입니다.

연결 작업을 수행할 열입니다.

begin_matching_actions

쉼표로 구분하여 순서대로 나열한 동작 목록입니다.

연결 작업을 수행할 동작입니다.

end_matching_actions

쉼표로 구분하여 순서대로 나열한 동작 목록입니다.

연결 작업을 수행할 동작입니다.

respond_to_memory_pressure

다음 값 중 하나일 수 있습니다.

  • 0 = 응답하지 않습니다.

  • 1 = 메모리가 부족하면 목록에 새 고아를 추가하지 않습니다.

대상이 메모리 이벤트에 응답합니다. 1로 설정되어 있고 서버에 메모리가 부족하면 유지되고 있는 짝이 없는 정보가 제거됩니다.

이벤트와 연결된 모든 데이터는 캡처된 후 나중에 쌍을 이루기 위해 저장됩니다. 또한 동작에 의해 추가된 데이터도 수집됩니다. 수집된 이벤트 데이터는 메모리에 저장되므로 일정한 제한이 따릅니다. 이러한 제한은 시스템 용량 및 활동에 따라 달라집니다. 사용 가능한 시스템 리소스의 기준은 사용 가능한 최대 메모리 양이 아니라 사용된 메모리 양이며 시스템 리소스를 사용할 수 없는 경우 저장된 짝이 없는 이벤트가 삭제됩니다. 이벤트가 짝이 없어 삭제된 경우 연결 이벤트는 짝이 없는 이벤트로 표시됩니다.

이벤트 쌍 대상은 짝이 없는 이벤트를 XML 형식으로 직렬화합니다. 이 형식은 어떤 스키마도 따르지 않으며 두 요소 유형만 포함합니다. <unpaired> 요소가 루트이며 그 뒤에 현재 추적되고 있는 짝이 없는 이벤트에 대한 <event> 요소가 옵니다. <event> 요소에는 짝이 없는 이벤트의 이름이 들어 있는 특성이 포함됩니다.

다음 예에서는 쌍 대상의 출력 형식을 보여 줍니다.

<unpaired truncated = "0" matchedCount = "[matched count]" memoryPressureDroppedCount = " [lost count]">
    <event name  = "[event name]" package = "[package]" id= "[event ID value]" version = "[event version]">
    <data name = "[column name]"> 
    <type name = "[column type]" package = "[type package]" /> 
    <value>[column value]</value>
    <text value>[text value]</text>>
        </data>
    </event>
</unpaired>

Windows용 이벤트 추적 대상

ETW(Windows용 이벤트 추적)를 대상으로 사용하려면 먼저 ETW에 대한 실무 지식을 갖추고 있는 것이 좋습니다. ETW 추적은 확장 이벤트와 함께 사용되거나 확장 이벤트의 이벤트 소비자로 사용됩니다. 다음 외부 링크를 클릭하면 ETW에 대한 배경 지식을 제공하는 항목으로 연결됩니다.

확장 이벤트는 Windows XP 및 Windows Server 2003 버전의 ETW를 지원합니다. ETW 대상을 여러 세션에 추가할 수 있지만 이는 단일 대상입니다. 한 이벤트가 여러 세션에서 발생하는 경우 해당 이벤트는 발생 항목당 한 번만 ETW 대상으로 전파됩니다. 확장 이벤트 엔진은 프로세스당 하나의 인스턴스로 제한됩니다.

중요 정보중요

ETW 대상에 작업을 하려면 SQL Server 서비스 시작 계정은 성능 로그 사용자 그룹의 멤버여야 합니다.

ETW 세션에 있는 이벤트의 구성은 확장 이벤트 엔진을 호스트하는 프로세스에서 제어합니다. 엔진은 실행할 이벤트 및 이벤트 실행을 위해 충족해야 할 조건을 제어합니다.

ETW 대상이 프로세스의 수명이 유지되는 동안 처음으로 확장 이벤트 세션에 연결하여 바인딩되면 ETW 대상은 SQL Server 공급자에서 단일 ETW 세션을 엽니다. ETW 세션이 이미 있으면 ETW 대상은 기존 세션에 대한 참조를 얻습니다. 이러한 ETW 세션은 지정된 컴퓨터의 모든 SQL Server 인스턴스 전체에서 공유할 수 있습니다. 또한 이 ETW 세션은 ETW 대상이 있는 세션의 모든 이벤트를 수신합니다.

ETW 대상이 이벤트를 소비하고 이를 ETW로 전송하려면 공급자가 필요하므로 세션에는 모든 확장 이벤트 패키지가 활성화됩니다. 이벤트가 발생하면 ETW 대상은 이벤트에 대한 공급자가 활성화되어 있는 세션에 이벤트를 전송합니다.

ETW 대상은 이벤트를 발생시키는 스레드에서의 이벤트 동기 게시를 지원합니다. 하지만 ETW 대상은 비동기 이벤트 게시를 지원하지 않습니다.

ETW 대상은 logman.exe와 같은 외부 ETW 컨트롤러의 컨트롤을 지원하지 않습니다. ETW 추적을 생성하려면 ETW 대상으로 이벤트 세션을 만들어야 합니다. 자세한 내용은 CREATE EVENT SESSION(Transact-SQL)을 참조하십시오.

[!참고]

ETW 대상을 활성화하면 이름이 XE_DEFAULT_ETW_SESSION인 ETW 세션이 생성됩니다. XE_DEFAULT_ETW_SESSION이라는 세션이 이미 있는 경우에는 기존 세션이 속성 수정 없이 그대로 사용됩니다. XE_DEFAULT_ETW_SESSION은 SQL Server의 모든 인스턴스 간에 공유됩니다. XE_DEFAULT_ETW_SESSION을 시작한 후에는 ETW 컨트롤러(예: Logman 도구)를 사용하여 중지해야 합니다. 예를 들어 명령 프롬프트에서 다음 명령을 실행할 수 있습니다. logman stop XE_DEFAULT_ETW_SESSION -ets.

다음 표에서는 ETW 대상을 구성하는 데 사용할 수 있는 옵션에 대해 설명합니다.

옵션

허용된 값

설명

default_xe_session_name

최대 256자까지의 모든 문자열. 이 값은 선택 사항입니다.

확장 이벤트 세션 이름입니다. 기본적으로 이 이름은 XESESSION0_4B7A5EC6-37EF-4d4c-81EC-13C547B9AC46입니다.

default_etw_session_logfile_path

최대 256자까지의 모든 문자열. 이 값은 선택 사항입니다.

확장 이벤트 세션의 로그 파일에 대한 경로입니다. 기본적으로 이 경로는 %TEMP%\ XEEtw.etl입니다.

default_etw_session_logfile_size_mb

부호 없는 정수. 이 값은 선택 사항입니다.

확장 이벤트 세션의 로그 파일 크기(MB)입니다. 기본값은 20MB입니다.

default_etw_session_buffer_size_kb

부호 없는 정수. 이 값은 선택 사항입니다.

확장 이벤트 세션의 메모리 내 버퍼 크기(KB)입니다. 기본값은 128KB입니다.

retries

부호 없는 정수.

이벤트가 삭제되기 전에 ETW 하위 시스템에 이벤트 게시를 재시도한 횟수입니다. 기본값은 0입니다.

위 설정의 구성은 선택 사항입니다. ETW 대상은 이러한 설정에 대해 기본값을 사용합니다.

ETW 대상의 역할은 다음과 같습니다.

  • 기본 ETW 세션을 생성합니다.

  • ETW로 모든 확장 이벤트 패키지를 등록합니다. 이렇게 하면 이벤트가 ETW에 의해 삭제되지 않습니다.

  • ETW로의 이벤트 흐름을 관리합니다. ETW 대상은 확장 이벤트 데이터를 사용하여 ETW 이벤트를 만들고 적절한 ETW 세션에 전송합니다. 이벤트가 버퍼 크기보다 크거나 데이터가 ETW 이벤트에 맞지 않는 경우 ETW는 이벤트를 조각으로 분할합니다.

  • 확장 이벤트 패키지를 항상 활성화된 상태로 유지합니다.

ETW에서 사용하는 기본 파일 위치는 다음과 같습니다.

  • ETW 출력 파일은 %TEMP%\XEEtw.etl에 저장됩니다.

    중요 정보중요

    첫 번째 세션이 시작되면 파일 경로를 변경할 수 없습니다.

  • MOF(Managed Object Format) 파일은 <your install path>\Microsoft SQL Server\Shared에 있습니다. 자세한 내용은 MSDN의 MOF(Managed Object Format)를 참조하십시오.

이벤트 파일 대상

이벤트 파일 대상은 전체 버퍼를 디스크에 기록하는 비동기 대상이며 두 가지 유형(로그와 메타데이터)의 파일을 만듭니다. 메타데이터 파일은 대상 출력 로그 파일에 있는 이벤트 내용에 대해 설명합니다. 이를 통해 로그 파일에 있는 모든 이벤트 및 이 이벤트와 관련된 동작 데이터의 구문을 정확하게 분석할 수 있습니다.

이 대상을 사용하려면 로그 파일 및 메타데이터 파일의 위치 이름을 지정해야 합니다. 파일 크기, 파일 증가 특징과 같은 다른 구성 옵션은 선택 사항입니다.

다음 표에서는 이벤트 파일 대상을 구성하는 데 사용할 수 있는 옵션에 대해 설명합니다.

옵션

허용된 값

설명

filename

최대 260자까지의 모든 문자열. 이 값은 필수 사항입니다.

파일 위치 및 파일 이름입니다.

원하는 파일 확장명을 사용할 수 있습니다.

max_file_size

64비트 정수. 이 값은 선택 사항입니다.

최대 파일 크기(MB)입니다. max_file_size가 지정되지 않은 경우 파일 크기는 디스크가 꽉 찰 때까지 증가합니다. 기본 파일 크기는 1GB입니다.

max_file_size는 세션 버퍼의 현재 크기보다 커야 합니다. 그렇지 않으면 파일 대상은 초기화에 실패하고 max_file_size가 잘못되었다고 보고합니다. 버퍼의 현재 크기를 보려면 sys.dm_xe_sessions 동적 관리 뷰의 buffer_size 열을 쿼리합니다.

기본 파일 크기가 세션 버퍼 크기보다 작으면 max_file_size를 sys.server_event_sessions 카탈로그 뷰의 max_memory 열에 지정된 값으로 설정하는 것이 좋습니다.

max_file_size가 세션 버퍼보다 크게 설정된 경우 세션 버퍼 크기의 배수 중에서 가장 가까운 값으로 반내림될 수 있습니다. 그러면 지정된 max_file_size 값보다 작은 대상 파일이 생성될 수 있습니다. 예를 들어 버퍼 크기가 100MB이고 max_file_size가 150MB로 설정된 경우 두 번째 버퍼가 남은 50MB 공간에 들어가지 않기 때문에 결과 파일 크기는 100MB로 반내림됩니다.

기본 파일 크기가 세션 버퍼 크기보다 작으면 max_file_size를 sys.server_event_sessions 카탈로그 뷰의 max_memory 열에 있는 값으로 설정하는 것이 좋습니다.

max_rollover_files

32비트 정수. 이 값은 선택 사항입니다.

파일 시스템에 보관할 최대 파일 수입니다.

increment

32비트 정수. 이 값은 선택 사항입니다.

파일의 증가분(MB)입니다. 이 값이 지정되지 않은 경우 증분에 대한 기본값은 세션 버퍼 크기의 두 배가 됩니다.

metadatafile

최대 260자까지의 모든 문자열. 이 값은 필수 사항입니다.

파일에 대한 메타데이터의 위치 및 이름입니다.

파일 대상이 처음 만들어질 때 지정한 파일 이름에는 _0_과 정수(Long) 값이 추가됩니다. 이 정수 값은 1600년 1월 1일에서 파일이 만들어진 날짜 및 시간 사이의 밀리초 수로 계산됩니다. 이후의 롤오버 파일도 이 형식을 사용합니다. 정수(Long) 값을 검토하면 가장 최근 파일을 확인할 수 있습니다. 다음 예에서는 파일 이름 옵션을 C:\OutputFiles\MyOutput.xel로 지정한 경우 파일의 이름이 지정되는 방식을 보여 줍니다.

  • 처음 생성된 파일 - C:\OutputFiles\MyOutput_0_128500310259380000.xel

  • 첫 번째 롤오버 파일 - C:\OutputFiles\MyOutput_0_128505831770890000.xel

  • 두 번째 롤오버 파일 - C:\OutputFiles\MyOutput_0_132410772966237000.xel

동기 이벤트 카운터 대상

동기 이벤트 카운터 대상은 확장 이벤트 세션 동안 발생하는 모든 이벤트를 계산합니다. 동기 이벤트 카운터 대상을 사용하면 전체 이벤트 컬렉션의 오버헤드를 추가하지 않고도 작업 특성에 대한 정보를 얻을 수 있습니다. 이 대상에는 사용자 지정할 수 있는 매개 변수가 없습니다.

다음 예에서는 동기 이벤트 카운터 대상 출력을 보여 줍니다.

<CounterTarget truncated = "0">
  <Packages>
    <Package name = "[package name]">
      <Event name = "[event name]" count = "[number]" />
    </Package>
  </Packages>
</CounterTarget>

링 버퍼 대상

간단히 말해 링 버퍼 대상은 메모리에 이벤트 데이터를 보관합니다. 이 대상은 다음 두 모드 중 하나로 이벤트를 관리할 수 있습니다.

  • 첫째 모드는 엄격한 FIFO(선입선출) 모드로서 대상에 할당된 모든 메모리가 사용되면 가장 오래된 이벤트가 삭제됩니다. 기본 모드인 이 모드에서는 occurrence_number 옵션이 0으로 설정됩니다.

  • 둘째 모드는 이벤트별 FIFO 모드로서 각 유형별로 지정된 이벤트 수가 유지됩니다. 이 모드에서는 대상에 할당된 모든 메모리가 사용되면 각 유형별로 가장 오래된 이벤트가 삭제됩니다. occurrence_number 옵션을 구성하여 각 유형별로 보존할 이벤트 수를 지정할 수 있습니다.

다음 표에서는 링 버퍼 대상을 구성하는 데 사용할 수 있는 옵션을 설명합니다.

옵션

허용된 값

설명

default_memory

32비트 정수. 이 값은 선택 사항입니다.

사용 가능한 최대 메모리 크기(KB)입니다. 이 값에 도달하면 기존 이벤트가 삭제됩니다.

occurrence_number

다음 값 중 하나일 수 있습니다.

  • 0(기본값) = 대상에 할당된 모든 메모리가 사용되면 가장 오래된 이벤트가 삭제됩니다.

  • 임의의 32비트 정수 = 이벤트별 FIFO 기준에 따라 이벤트를 삭제하기 전까지 각 유형별로 보존할 이벤트의 수입니다.

이 값은 선택 사항입니다.

사용할 FIFO 모드 및 각 유형별로 버퍼에 기본적으로 보존할 이벤트의 수(0보다 큰 값을 설정한 경우)입니다.

다음 예에서는 링 버퍼 대상 출력을 보여 줍니다.

<RingBufferTarget eventsPerSec="" processingTime="" totalEventsProcessed="" eventCount="" droppedCount="" memoryUsed="">
 <event name="" package="" id="" version="" timestamp="">
    <data name="">
      <type name="" package="" />
      <value></value>
      <text></text>
    </data>
    <action name="" package="">
      <type name="" package="" />
      <value></value>
      <text></text>
    </action>
  </event>
</RingBufferTarget>