관심 영역 파일 만들기

관심 영역 파일은 다음 노드를 포함하는 유효한 XML 파일입니다.

  • InstrumentationManifest

  • 계측

  • 지역

  • RegionsRoot, 정의된 모든 영역의 컨테이너

  • 하나 이상의 영역 노드

참고

영역 정의에서 XML 선언의 버전 특성(예: version='1.0')은 선택 사항입니다.

다음 예제는 단순한 영역을 정의하는 전체 관심 영역 파일입니다. 영역 내의 특성 및 노드에 대한 설명은 예제 다음에 설명되어 있습니다.

<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<?Copyright (c) Microsoft Corporation. All rights reserved.?>
<InstrumentationManifest>
   <Instrumentation>
      <Regions>
         <RegionRoot Guid="{EFA7A927-BAE3-48F6-92E1-000000000000}"
                     Name="Sample Region File Root"
                     FriendlyName="Root">
            <Region Guid="{d8d639a0-cf4c-45fb-976a-000111000100}"
                    Name="FastStartup-Suspend-UserSession-Shutdown"
                    FriendlyName="User Session Shutdown">
               <Start>
                  <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="301" Version="0" />
               </Start>
               <Stop>
                  <Event Provider="{331c3b3a-2005-44c2-ac5e-77220c37d6b4}" Id="22" Version="0" />
               </Stop>
            </Region>
         </RegionRoot>
      </Regions>
   </Instrumentation>
</InstrumentationManifest>

영역 정의

영역 정의는 영역 노드에 다음 특성을 포함합니다.

  • GUID(필수), 영역에 대한 GUID.

  • 이름(필수), 영역에 대한 고유한 이름. 이름에 대해 제안된 형식은 Root-GrandparentName-ParentName-RegionName입니다.

  • FriendlyName(선택 사항), 영역의 대체 이름.

영역 형식

시작 및 중지 방법에 따라 다음 형식의 영역을 만들 수 있습니다.

이벤트를 기반으로 하는 영역

가장 일반적인 형식의 영역은 시작 및 중지 지점이 이벤트에 의해 정의되는 영역입니다.

이벤트를 시작 또는 중지 지점으로 지정하려면 다음 특성을 제공해야 합니다.

  • 공급자, 이벤트에 대한 공급자 ID를 지정하는 GUID.

  • ID, 이벤트의 ID를 지정하는 unsigned short.

  • 버전, 이벤트의 버전을 지정하는 unsigned char.

또한 하나 이상의 PayloadIdentifier 노드를 추가하여 정의를 더욱 구체화할 수 있습니다. 이러한 태그에는 이벤트에 포함해야 하는 필드를 지정하는 두 개의 문자열 특성인 FieldNameFieldValue가 포함되어 있습니다. PayloadIdentifier 태그는 아래 페이로드 필드를 사용하여 이벤트 식별에 자세히 설명되어 있습니다.

다음은 이러한 형식의 영역에 대한 기본 예제입니다.

<Region Guid="{d8d639a0-cf4c-45fb-976a-000111000100}"
        Name="FastStartup-Suspend-UserSession-Shutdown"
        FriendlyName="User Session Shutdown">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="301" Version="0" />
   </Start>
   <Stop>
      <Event Provider="{331c3b3a-2005-44c2-ac5e-77220c37d6b4}" Id="22" Version="0" />
   </Stop>
</Region>

다음 예제에서 영역은 지정된 이벤트에 값이 StopStartOrStop 필드가 포함된 경우에만 종료됩니다.

<Region Guid="{d8d639a0-cf4c-45fb-976a-000111000100}"
        Name="FastStartup-Suspend-UserSession-Shutdown"
        FriendlyName="User Session Shutdown">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="301" Version="0" />
   </Start>
   <Stop>
      <Event Provider="{331c3b3a-2005-44c2-ac5e-77220c37d6b4}" Id="22" Version="0" />
      <PayloadIdentifier FieldName="StartOrStop" FieldValue="Stop" />
   </Stop>
</Region>

기간에 따른 영역

많은 ETW 이벤트는 기간 페이로드 필드가 있는 단일 중지 이벤트로 정의됩니다. 중지 이벤트 시간에서 기간을 빼면 시작 지점을 계산할 수 있습니다.

기간 태그는 시작 또는 중지 태그 내에서 지속 시간 정보를 가져올 페이로드 필드를 지정하는 데 사용할 수 있습니다. 시작 지점에 대한 기간을 정의하면 중지 지점에서 기간을 뺍니다. 마찬가지로 중지 지점에 대한 기간을 정의하면 시작 지점에 기간이 추가됩니다.

기간 노드는 다음과 같은 특성을 가질 수 있습니다.

  • 공급자, 페이로드 필드가 포함된 이벤트의 공급자 ID를 지정하는 GUID.

  • ID, 페이로드 필드가 포함된 이벤트의 ID를 지정하는 unsigned short.

  • 버전, 페이로드 필드가 포함된 이벤트의 버전을 지정하는 unsigned char.

  • 기간, 페이로드 필드의 이름을 지정하는 문자열.

  • 승수. WPA를 사용하려면 기간이 나노초 단위여야 합니다. 기본 승수는 1,000,000이며 밀리초에서 나노초로 변환됩니다.

시작 지점에 대한 기간을 정의하면 중지 지점에서 기간을 뺍니다. 마찬가지로 중지 지점에 대한 기간을 정의하면 시작 지점에 기간이 추가됩니다.

예제

다음 예제에서는 다른 영역이 시작될 때 중지되는 영역을 정의합니다. 시작점을 계산하기 위해 중지 지점에서 기간을 뺍니다. 기간은 HiberHiberFileTime 페이로드 필드에 있습니다. 그런 다음 기간에 1,000,000을 곱하여 나노초로 변환하고 중지 지점에서 이를 뺍니다.

<Region Guid="{7D6BA3F6-BC04-4776-8A7F-93CF7F4E2B6D}"
   Name="FastStartup-Suspend-WriteHiberFile"
   FriendlyName="Subscribers for Create Session">
   <Region Guid="{93783B2C-A67F-49cb-89BC-BF305D7E2CEA}"
         Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers-Child"
         FriendlyName="Hiberfile Write">
      <Start>
         <Duration Provider="{331c3b3a-2005-44c2-ac53-77220c37d6b4}" 
                   Id="117"
                   Version="0"
                   Duration="HiberHiberFileTime"
                   Multiplier="1000000" />
      </Start>
      <Stop>
         <Region RegionGuid="{EC1BB2D9-4AA8-4d82-84AA-6042FF4CFBE3}" />
      </Stop>
   </Region>
</Region>

다른 영역을 기반으로 하는 영역

시작 또는 중지 노드 내의 영역 노드를 사용하여 시작 및 중지 지점이 다른 영역에 의해 정의된 영역을 정의할 수 있습니다. 이 영역 노드에는 대상 영역의 GUID를 지정하는 하나의 필수 특성인 RegionGuid가 있습니다.

기본적으로 시작 지점이 다른 영역을 기반으로 하는 영역은 시작 지점 영역이 중지될 때 시작됩니다. 마찬가지로 중지 지점이 다른 영역을 기반으로 하는 영역은 중지 지점 영역이 시작될 때 중지됩니다. 영역 노드에 선택적 특성인 엔드포인트를 추가하여 이 기본 동작을 재정의할 수 있습니다. 엔드포인트의 값은 Start 또는 Stop일 수 있으며 시작 또는 중지 이벤트에 사용할 영역의 엔드포인트를 지정합니다.

예제

다음 영역 정의에는 다른 영역에서 정의한 시작 및 중지 지점이 포함되어 있습니다.

<Region Guid="{93783B2C-A67F-49cb-89BC-BF305D7E2CEA}"
        Name="FastStartup-Suspend-HiberInitTime"
        FriendlyName="Hiberfile Initialization">
   <Start>
      <Region RegionGuid="{5E81D74C-0CCC-43f9-8119-953F827BCD12}" />
   </Start>
   <Stop>
      <Region RegionGuid="{7D6BA3F6-BC04-4776-8A7F-93CF7F4E2B6D}" />
   </Stop>
</Region>

다른 영역의 컨테이너인 영역

다른 영역을 포함하는 영역을 컨테이너라고 합니다. 컨테이너는 포함된 영역의 첫 번째 인스턴스가 시작될 때 시작되며 마지막 인스턴스가 중지될 때 중지됩니다. 이러한 영역에는 다른 특성이 없습니다.

RegionRoot는 정의하는 모든 영역에 대한 컨테이너입니다. 따라서 RegionRoot는 영역의 첫 번째 인스턴스가 시작될 때 시작되고 영역의 마지막 인스턴스가 중지될 때 중지됩니다.

컨테이너 영역을 정의하려면 시작 지점이나 중지 지점 없이 영역을 정의하기만 하면 됩니다.

예제

아래 예제에서 세션 만들기의 구독자는 세션 만들기의 자식 구독자에 대한 컨테이너입니다. 세션 만들기의 구독자에는 시작 지점이나 중지 지점이 없습니다. 자식 영역의 첫 번째 인스턴스가 시작될 때 시작되고 자식 영역의 마지막 인스턴스가 중지될 때 중지됩니다.

<Region Guid="{A75D8F5D-E8F8-40b8-B453-5CC70DEAC06F}"
   Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers"
   FriendlyName="Subscribers for Create Session">
   <Region Guid="{93783B2C-A67F-49cb-89BC-BF305D7E2CEA}"
           Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers-Child"
           FriendlyName="Child of Subscribers for Create Session">
      <Start>
         <Region RegionGuid="{5E81D74C-0CCC-43f9-8119-953F827BCD12}" />
      </Start>
      <Stop>
         <Region RegionGuid="{7D6BA3F6-BC04-4776-8A7F-93CF7F4E2B6D}" 
                 Endpoint="Stop" />
      </Stop>
   </Region>
</Region>

페이로드 필드를 사용하여 이벤트 식별

이벤트 ID 속성(프로세스 ID, 스레드 ID, 활동 ID)이 특정 시나리오를 식별하는 데 충분하지 않은 경우가 종종 있습니다. 예를 들어 서비스가 시작되면 시작된 서비스를 식별하지 못할 수도 있는 일반 이벤트가 발생합니다. 이 경우 추가 정보는 페이로드 필드에 의존해야 합니다. 추가 필드 중 하나에 서비스 이름이 포함되어야 하며 이 정보를 사용하여 영역 시작 및 중지 지점을 추가로 지정할 수 있습니다.

페이로드 필드를 추가 이벤트 식별자로 사용하려면 하나 이상의 PayloadIdentifier 노드를 시작 또는 중지 노드에 추가합니다.

PayloadIdentifier 노드에는 다음 특성이 있습니다.

  • FieldName(필수), 페이로드 필드의 이름.

  • FieldValue(필수), 페이로드 값.

  • FieldValueRelationship(선택 사항). 이벤트에 페이로드 값이 포함되도록 지정하려면 IsEqual을 사용합니다. 이벤트에 페이로드 값이 포함되지 않도록 지정하려면 DoesNotContain을 사용합니다. 이 특성을 지정하지 않으면 기본값은 IsEqual입니다.

참고

페이로드 필드는 대/소문자를 구분하며 XML 정의는 페이로드 값과 완전히 일치해야 합니다. 예를 들어 페이로드 필드의 값이 00000인 경우 영역 정의도 페이로드 값으로 00000을 지정해야 합니다.

예제

다음 예제에는 시작 지점과 중지 지점 모두에 대한 PayloadIdentifier 노드가 포함되어 있습니다.

<Region Guid="{AB719FB1-D863-4305-AE8E-F21281899A85}"
        Name="FastStartup-ConsoleSessionDisconnect"
        FriendlyName="Console Session Disconnect">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="801" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="8" />
      <PayloadIdentifier FieldName="Key" FieldValue="00000" />
   </Start>
   <Stop>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="802" Version="0" />
      <PayloadIdentifier FieldName="Event"
                         FieldValue="20"
                         FieldValueRelationship="DoesNotContain" />
   </Stop>
</Region>

영역에 대해 일치하는 이벤트

WPA는 시작 이벤트와 중지 이벤트를 일치시켜 이벤트 일치라는 프로세스에서 영역을 형성합니다. 이벤트 수준에서 WPA는 공급자 ID, 이벤트 ID, 이벤트 버전, 추가로 지정된 페이로드 필드를 기반으로 단일 시작 또는 중지 이벤트를 일치시키려고 시도합니다.

일치는 영역 수준으로 확장될 수도 있습니다. 여기서 시작 지점과 중지 지점 모두 충족해야 하는 조건을 지정할 수 있습니다. 영역 수준에서 두 지점에 일치하는 스레드 ID, 프로세스 ID, 활동 ID가 있어야 한다고 요구할 수 있습니다. 또한 영역 수준에서 페이로드 조건을 정의할 수도 있습니다.

영역 노드 내부에 일치 노드를 포함하여 영역 수준 일치를 사용할 수 있습니다. 일치 노드에는 다음 특성의 조합을 포함할 수 있는 자식 노드인 이벤트가 포함됩니다.

  • TID="true" – 일치하는 스레드 ID가 필요

  • PID="true" – 일치하는 프로세스 ID가 필요

  • AID="true" – 일치하는 활동 ID가 필요

이벤트 노드에는 FieldName 특성을 포함하는 선택적 페이로드 자식 노드가 있을 수 있습니다. 이 노드를 사용하려면 시작 노드와 중지 노드 모두에 지정된 FieldName와 일치하는 페이로드 값이 포함되어야 합니다.

또는 페이로드 노드에 선택적 특성인 TargetFieldName이 포함될 수도 있습니다. 이 특성이 지정되면 FieldName은 시작 노드의 페이로드 필드에만 해당하고 TargetFieldName은 중지 노드의 페이로드 필드에 해당합니다.

예제

다음 예제는 시작 이벤트에 페이로드 필드인 SubscriberName이 포함되어 있을 때 영역을 형성합니다. 이 필드의 값은 중지 노드의 페이로드 필드인 클라이언트와 일치합니다. 시작 및 중지 이벤트에도 일치하는 스레드 ID가 있어야 합니다.

<Region Guid="{A75D8F5D-E8F8-40b8-B453-5CCC70DEAC06F}"
        Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers"
        FriendlyName="Subscribers for Create Session">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="805" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="0" />
   </Start>
   <Stop>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="806" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="0" />
   </Stop>
   <Match>
      <Event TID="true">
         <Payload FieldName="SubscriberName" TargetFieldName="Client" />
      </Event>
   </Match>
</Region>

조건에 따라 영역 필터링

WPA는 조건 또는 트리거(이벤트 또는 다른 영역일 수 있음)에 따라 영역을 포함하거나 제외할 수 있습니다. 트리거는 필터 요소에 지정되고 필터를 포함하는 영역이 대상입니다.

트리거가 영역인 경우 필터는 영역 ID를 포함해야 합니다.

트리거가 이벤트인 경우 필터는 ETW 공급자의 ProviderId가 있는 이벤트 요소와 ID, 버전, OpCode, 형식 특성 중 하나 이상을 포함해야 합니다.

ID 및 버전은 이전의 영역 형식에 설명되어 있습니다. OpCode는 임의의 선택한 값입니다. 형식은 다음 테이블에 설명된 조건에 따라 대상 영역을 포함하거나 제외하는 필터링 모드를 지정합니다.

필터 형식 설명
아웃 트리거 이벤트 또는 영역이 있으면 대상 영역을 제외합니다.
OutPost 가장 최근의 트리거 이벤트 또는 영역 이후에 대상이 발생한 경우 대상 영역을 제외합니다.
OutPrev 첫 번째 트리거 이벤트 또는 영역 이전에 대상이 발생한 경우 대상 영역을 제외합니다.
In(다음 안에) 트리거 이벤트 또는 영역이 있을 때만 대상 영역을 포함합니다.
InPost 가장 최근의 트리거 이벤트 또는 영역 이후에 대상이 발생한 경우에만 대상 영역을 포함합니다.
InPrev 첫 번째 트리거 이벤트 또는 영역 이전에 대상이 발생한 경우에만 대상 영역을 포함합니다.

부모-자식 관계

다른 영역 내에서 영역을 정의하여 부모-자식 관계를 만들 수 있습니다. 영역이 부모가 되려면 자식 영역의 시작 시간보다 빠르거나 같은 시작 시간이 있어야 합니다. 또한 자식 영역의 중지 시간보다 늦거나 같은 중지 시간이 있어야 합니다. 이러한 조건이 충족되지 않으면 부모-자식 관계를 형성할 수 없습니다.

부모 영역에 대한 추가 조건을 지정하려면 일치 노드 내에서 부모 노드를 사용합니다. 부모 노드에는 영역 수준 일치에 사용되는 이벤트 노드와 동일한 특성 및 자식 노드가 있습니다. 부모 및 자식 영역에 동일한 스레드 ID, 프로세스 ID, 활동 ID, 일치하는 페이로드 필드 수가 있도록 지정할 수 있습니다.

페이로드 필드를 사용하는 경우 FieldName 특성만 지정하는 경우 부모 영역과 자식 영역 모두 해당 필드에 대해 일치하는 페이로드 값이 있어야 합니다. TargetFieldName 특성도 지정하면 TargetFieldName 특성이 부모 및 자식에게 적용됩니다. 즉, 자식 영역에는 부모의 TargetFieldName 필드에 대한 페이로드 값과 일치하는 FieldName 필드의 페이로드 값이 있어야 합니다.

자식에 둘 이상의 잠재적 부모가 있는 경우 시작 시간이 가장 빠른 부모가 선택됩니다.

예제

아래 예제에서는 부모에 대한 조건을 정의합니다. 부모에게는 일치하는 스레드 ID가 있어야 하고 자식의 SubscriberName 필드에 대한 페이로드 값은 부모에게 있는 Client 필드 값과 일치해야 합니다.

<Region Guid="{A75D8F5D-E8F8-40b8-B453-5CC70DEAC06F}"
        Name="FastStartup-Suspend-Winlogon-CreateSession-Subscribers"
        FriendlyName="Subscribers for Create Session">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="805" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="0" />
   </Start>
   <Stop>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="806" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="0" />
   </Stop>
   <Match>
      <Event TID="true">
         <Payload FieldName="SubscriberName" TargetFieldName="Client" />
      </Event>
      <Parent TID="true">
         <Payload FieldName="SubscriberName" TargetFieldName="Client" />
      </Parent>
   </Match>
</Region>

자체 중첩 영역

자체 중첩은 부모-자식 관계를 최적화하는 선택적 기능입니다.

자체 중첩 영역은 기간이 형제 영역의 기간 내에 완전히 포함되는 영역입니다. 이 영역은 실질적으로 더 오래 지속되는 형제의 자녀가 됩니다.

예를 들어 다음 영역에 대해 자체 중첩을 사용하도록 설정되어 있다고 가정합니다.

  • 부모 영역 A

  • 시간 0에서 시작하여 시간 6에서 중지하는 자식 영역 B1

  • 시간 2에서 시작하여 시간 5에서 중지하는 자식 영역 B2

  • 시간 3에서 시작하여 시간 4에서 중지하는 자식 영역 B3

이 예제에서 B2는 B1의 자식 영역이 되고 B3는 B2의 자식 영역이 됩니다. 이러한 형식의 부모-자식 관계를 만들 때 시작 시간이 자식의 시작 시간에 가장 가까운 부모가 선택됩니다.

자체 중첩을 활성화하려면 일치 노드 내에 SelfNest 노드를 추가합니다.

SelfNest 노드에는 필수 매개 변수가 없습니다. 그러나 일반 부모-자식 관계를 만드는 데 사용되는 것과 동일한 일치 매개 변수를 사용할 수 있습니다. 자세한 내용은 이 항목 앞부분에 나오는 부모-자식 관계을 참조하세요.

다음 예제에서는 자체 중첩을 호출하는 일치 태그를 정의합니다.

<Match>
   <SelfNest />
</Match>

다음 예제에서는 일치하는 스레드 ID 및 페이로드 필드가 필요한 더 복잡한 자체 중첩 시나리오를 정의합니다.

<Match>
   <SelfNest TID="true">
      <Payload FieldName="SubscriberName" />
   </SelfNest>
</Match>

인스턴스 이름

명명 노드를 사용하여 일치하는 영역의 각 인스턴스에 고유한 이름을 할당할 수 있습니다. 명명은 동일한 영역의 인스턴스 수가 많거나 다른 기준에 따라 영역을 분류해야 하는 경우에 유용합니다. 인스턴스 이름은 페이로드 필드 또는 다른 영역과의 관계를 기반으로 할 수 있습니다.

명명 노드 내에서 PayloadBased 노드를 사용하여 페이로드 값에 따라 인스턴스의 이름을 지정할 수 있습니다. PayloadBased 노드에는 인스턴스 이름으로 사용할 값이 있는 페이로드 필드를 지정하는 하나의 필수 특성인 NameField가 있습니다. 이러한 페이로드 필드는 영역의 시작 또는 중지 지점에 있을 수 있습니다.

다음은 페이로드 기반 명명 노드가 있는 영역의 예입니다.

<Region Guid="{9261872F-D3A7-4d80-BDE3-8479CC920639}"
        Name="FastStartup-Suspend-Winlogon-EndShell-CallSubscriber"
        FriendlyName="Call Subscriber for End Shell">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="811" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="13" />
   </Start>
   <Stop>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="812" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="13" />
   </Stop>
   <Match>
      <Event PID="true" />
      <Parent PID="true" />
   </Match>
   <Naming>
      <PayloadBased NameField="SubscriberName" />
   </Naming>
</Region>

이전 예제에서 명명 노드는 시작 또는 중지 이벤트에 SubscriberName이라는 페이로드 필드가 포함되어 있음을 나타냅니다. 만들어진 영역의 각 인스턴스에 대해 인스턴스 이름은 연결된 페이로드 값입니다.

참고

영역 인스턴스의 이름을 지정하는 경우 WPA는 먼저 일치하는 페이로드 필드에 대한 시작 이벤트를 확인합니다. 이를 찾을 수 없는 경우 WPA는 페이로드 필드에 대한 중지 이벤트를 검색합니다. 두 이벤트 중 하나에서 일치하는 항목을 찾을 수 없으면 콘솔에 오류가 출력됩니다.

경우에 따라 페이로드의 정보가 원하는 유일한 정보가 아닌 경우도 있습니다. 예를 들어 포함된 페이로드의 정보가 디바이스 ID인 경우 해당 정보를 디바이스 설명 및 이름에 다시 매핑할 수 있습니다. 지원되는 형식 특성은 다음과 같습니다.

  • Device, 이름과 설명을 연결

  • GUID, GUID를 영역과 연결

  • CLSID, 클래스 이름을 클래스 ID에 연결

  • PID, 프로세스 이름을 영역과 연결

<Naming>
   <PayloadBased NameField="SubscriberName" Type="Device" />
</Naming>

시작 지점과 중지 지점 모두에서 페이로드 값을 찾을 수 있는 경우 선택적 InstanceEndpoint 특성을 사용하여 사용할 지점을 지정할 수 있습니다. InstanceEndpoint에 사용할 수 있는 값은 StartStop입니다.

<Naming>
   <PayloadBased NameField="SubscriberName" InstanceEndpoint="Start" />
</Naming>

다른 영역과의 관계에 따라 영역의 이름을 지정할 수도 있습니다. 다른 영역과 연결하려면 RegionBased 노드를 명명 노드에 추가합니다. RegionBased 노드에는 네 가지 필수 특성이 있습니다.

  • RegionGuid, 연결된 영역의 GUID.

  • Relation, 정의하는 영역과 연결하는 영역 간의 관계를 설명하는 조건부 값. 현재 지원되는 유일한 관계는 IsPresent이며, 이는 연결된 영역이 추적의 어딘가에 있으면 조건부가 true임을 의미합니다.

  • IfRelationTrue, Relation에 설명된 관계가 true인 경우 인스턴스 이름으로 사용되는 문자열 값.

  • IfRelationFalse, Relation에 설명된 관계가 false인 경우 인스턴스 이름으로 사용되는 문자열 값.

다음 예제에서는 영역 기반 명명이 있는 영역을 정의합니다. 일치하는 GUID가 있는 영역이 추적 어딘가에 있으면 Launch의 각 인스턴스 이름은 Warm입니다. 그렇지 않으면 각 인스턴스의 이름이 Cold로 지정됩니다.

<Region Guid="{C99EFA90-F645-4A24-9576-740351171BD0}"
        Name="WinStoreAppActivationDuration"
        FriendlyName="Launch">
   <Start>
      <Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="5901" Version="0" />
      <PayloadIdentifier FieldName="SqmableContractID" FieldValue="Windows.Launch" />
   </Start>
   <Stop>
      <Event Provider="{315a8872-923e-43a2-9889-33cd4754bf64}" Id="5902" Version="0" />
      <PayloadIdentifier FieldName="SqmableContractID" FieldValue="Windows.Launch" />
   </Stop>
   <Match>
      <Event PID="true" />
   </Match>
   <Naming>
      <RegionBased RegionGuid="{1539A93E-129C-4602-A011-431E7F73A353}" Relation="IsPresent" IfRelationTrue="Warm" IfRelationFalse="Cold" />
   </Naming>
</Region>

참고

관심 영역 그래프의 영역 인스턴스 위로 마우스를 가져가면 WPA의 인스턴스 이름을 볼 수 있습니다.

메타데이터

메타데이터 노드 내에 포함된 메타데이터 형식으로 지역 정의에 추가 정보를 추가할 수 있습니다. 예를 들어 다른 사용자가 영역의 목적을 더 쉽게 이해할 수 있도록 영역 조건을 설명하는 정보를 메타데이터에 포함할 수 있습니다. 메타데이터는 단순히 추가 데이터이므로 영역 처리에 영향을 미치지 않습니다.

WPA는 관심 영역 그래프의 차트 보기에서 각 영역의 인스턴스에 해당 메타데이터를 추가합니다. WPA에서 일치하는 이벤트에 대한 메타데이터를 보려면 차트 보기에서 영역을 확장하고 원하는 메타데이터로 스크롤하기만 하면 됩니다. WPA는 메타데이터에 고유 번호를 할당하고 노드 이름은 열 정보로 표시됩니다.

예제

다음 예제에서는 영역 정의에 메타데이터 노드를 포함합니다.

<Region Guid="{F466EE67-192C-4772-B13D-052CCD2D70B3}"
        Name="FastStartup-Suspend-Winlogon-Logoff-Subscribers"
        FriendlyName="Subscribers for Logoff">
   <Start>
      <Event Provider="{dbe9b383-7cf3-4331-91cc-a3cb16a3b538}" Id="805" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="3" />
   </Start>
   <Stop>
      <Event Provider="{db39b383-7cf3-4331-91cc-a3cb16a3b538}" Id="806" Version="0" />
      <PayloadIdentifier FieldName="Event" FieldValue="3" />
   </Stop>
   <Match>
      <Event>
         <Payload FieldName="Event" />
      </Event>
   </Match>
   <Naming>
      <PayloadBased NameField="SubscriberName" />
   </Naming>
   <Metadata>
      <FAS.TestNode>yes</FAS.TestNode>
   </Metadata>
</Region>

관심 영역

WPA 기능