Windows용 이벤트 추적 대상
적용 대상: SQL Server
ETW(Windows용 이벤트 추적)를 대상으로 사용하기 전에 ETW에 대한 실무 지식을 갖고 있는 것이 좋습니다. ETW 추적은 확장 이벤트와 함께 사용하되나 확장 이벤트 이벤트 소비자로 사용됩니다. 다음 외부 링크를 클릭하면 ETW에 대한 배경 지식을 제공하는 항목으로 연결됩니다.
ETW 대상을 여러 세션에 추가할 수 있지만 이는 단일 대상입니다. 한 이벤트가 여러 세션에서 발생하는 경우 해당 이벤트는 발생 항목당 한 번만 ETW 대상으로 전파됩니다. 확장 이벤트 엔진은 프로세스당 단일 인스턴스로 제한됩니다.
Important
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자까지의 임의의 문자열. 이 값은 선택 사항입니다. | 확장 이벤트 세션 이름입니다. 기본적으로 XE_DEFAULT_ETW_SESSION. |
default_etw_session_logfile_path |
최대 256자까지의 임의의 문자열. 이 값은 선택 사항입니다. | 확장 이벤트 세션에 대한 로그 파일의 경로입니다. 기본적으로 이 값은 %TEMP%\XEEtw.etl 입니다. |
default_etw_session_logfile_size_mb |
부호 없는 정수 이 값은 선택 사항입니다. | 확장 이벤트 세션의 로그 파일 크기(MB)입니다. 기본값은 20 MB입니다. |
default_etw_session_buffer_size_kb |
부호 없는 정수 이 값은 선택 사항입니다. | 확장 이벤트 세션의 메모리 내 버퍼 크기(KB)입니다. 기본값은 128 KB입니다. |
retries |
부호 없는 정수 | 이벤트를 삭제하기 전에 ETW 하위 시스템에 이벤트 게시를 다시 시도할 횟수를 입력합니다. 기본값은 0입니다. |
이러한 설정을 구성하는 것은 선택 사항입니다. ETW 대상은 이러한 설정에 기본값을 사용합니다.
ETW 대상은 다음을 담당합니다.
기본 ETW 세션 만들기
ETW에 모든 확장 이벤트 패키지를 등록합니다. 이렇게 하면 ETW에서 이벤트를 삭제하지 않습니다.
ETW로의 이벤트 흐름 관리. ETW 대상은 확장 이벤트 데이터를 사용하여 ETW 이벤트를 만들고 적절한 ETW 세션으로 보냅니다. 이벤트가 버퍼 크기보다 크거나 데이터가 하나의 ETW 이벤트에 맞지 않는 경우 ETW는 이벤트를 조각으로 분할합니다.
확장 이벤트 패키지를 항상 활성화된 상태로 유지합니다.
ETW에서 사용하는 기본 파일 위치는 다음과 같습니다.
ETW 출력 파일은 %TEMP%\XEEtw.etl에 있습니다.
Important
첫 번째 세션이 시작되면 파일 경로를 변경할 수 없습니다.
MOF(Managed Object Format) 파일은 <설치 경로>\Microsoft SQL Server\Shared에 있습니다. 자세한 내용은 MSDN의 Managed Object Format 을 참조하십시오.
세션에 대상 추가
확장 이벤트 세션에 ETW 대상을 추가하려면 이벤트 세션을 만들거나 변경할 때 다음 문을 포함해야 합니다.
ADD TARGET package0.etw_classic_sync_target
데이터를 보는 방법을 포함하여 ETW 대상을 사용하는 방법을 보여 주는 전체 예제에 대한 자세한 내용은 확장 이벤트를 사용하여 시스템 작업 모니터링을 참조하세요.