다음을 통해 공유


방법: 사용자 지정 성능 카운터 만들기

업데이트: 2007년 11월

새 카운터를 만드는 경우 먼저 범주를 만든 다음 여기에 포함될 카운터를 한 개 이상 지정합니다. 다음 방법 중 하나를 사용하여 새 카운터를 만듭니다.

카운터와 범주를 만들 때는 다음 두 가지 문제를 고려해야 합니다. 첫째로, 원격 컴퓨터에서는 사용자 지정 범주와 카운터를 만들 수 없습니다. 둘째로, 명시적으로 달리 지정하지 않으면 사용자 지정 카운터 및 범주는 읽기 전용 모드로만 사용할 수 있습니다. 읽기 전용 모드에서는 이들의 값을 늘리거나 줄일 수 없고 원시 값 또는 다른 값을 설정할 수 없습니다. ReadOnly 속성을 사용하여 사용자 지정 카운터를 쓰기 가능한 모드로 설정할 수 있습니다.

카운터를 만드는 경우와 PerformanceCounter 구성 요소의 인스턴스를 만드는 경우는 차이가 있습니다. 카운터를 만드는 경우에는 프로젝트나 응용 프로그램에서 구성 요소를 만드는 것이 아니라 Windows 운영 체제에서 새 범주 및 그와 관련된 카운터를 만드는 것입니다. PerformanceCounter 구성 요소의 인스턴스를 만드는 경우에는 외부 이벤트 로그를 참조하는 Visual Studio 프로젝트 안에 구성 요소를 만듭니다.

참고:

보안을 위해 성능 카운터의 사용이 제한되는 경우도 있습니다. 자세한 내용은 성능 임계값 모니터링 개요를 참조하십시오.

보안 정보:

성능 카운터를 만들 때는 해당 리소스가 이미 존재하는지 파악해야 합니다. 악의를 가진 다른 프로세스에서 이미 해당 리소스를 만들어 이에 대한 액세스 권한을 가지고 있을 수도 있습니다. 이런 경우 성능 카운터에 데이터를 넣으면 다른 프로세스에서 해당 데이터를 사용할 수 있게 됩니다.

참고:

Microsoft Windows NT 버전 4.0에서는 PerformanceCounter 클래스가 완전히 지원되지 않습니다. 시스템 카운터를 읽을 수는 있지만 사용자 지정 카운터를 만들거나 삭제하거나 사용자 지정 카운터에 쓸 수는 없습니다.

참고:

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

디자인 타임에 새 범주와 사용자 지정 성능 카운터를 만들려면

  1. 서버 탐색기를 열고 표시할 서버의 노드를 확장합니다.

    참고:

    표시할 서버가 목록에 없으면 추가해야 합니다. 자세한 내용은 방법: 서버 탐색기/데이터베이스 탐색기 액세스 및 초기화를 참조하십시오.

  2. 성능 카운터 노드를 마우스 오른쪽 단추로 클릭하고 새 범주 만들기를 선택합니다.

    성능 카운터 작성기 대화 상자가 나타납니다.

    참고:

    성능 카운터에 액세스하려면 성능 카운터에 액세스할 수 있는 보안 그룹(예: Performance Monitor Users 그룹)의 구성원이어야 합니다. 또한 관리 권한으로 실행하는 경우에도 높은 권한이 필요한 작업을 수행하려고 하면 Windows Vista에서 메시지가 나타날 수 있습니다. 자세한 내용은 Windows Vista 및 Visual Studio를 참조하십시오.

  3. 만들려는 범주의 이름과 설명을 입력합니다.

    참고:

    기존의 범주 이름을 지정하면 오류가 발생합니다. 또한 기존의 카운터 범주를 덮어쓰려면 먼저 Delete 메서드를 사용하여 해당 범주를 삭제한 다음 새 범주를 추가해야 합니다.

  4. 카운터 목록 작성기 프레임에서 다음을 수행합니다.

    1. 새로 만들기 단추를 클릭합니다.

    2. 카운터 프레임에서 범주에 만들 카운터의 이름을 지정합니다.

    3. 형식 드롭다운 목록에서 형식을 선택합니다.

    4. 카운터에 대한 설명을 입력합니다.

  5. 이 범주에서 만들려는 각 카운터에 대해 4단계를 반복합니다.

    팁:

    대화 상자를 종료하기 전에 카운터 목록에서 카운터 중 하나를 선택하고 값을 편집하거나 카운터를 삭제할 수 있습니다.

    참고:

    기본적으로 대화 상자에서 만든 카운터와 목록은 읽기와 쓰기가 가능하지만 PerformanceCounter 구성 요소의 인스턴스를 통해 상호 작용할 경우에는 달리 지정하지 않으면 읽기 전용으로 제한됩니다.

프로그래밍 방식으로 새 범주와 성능 카운터 집합을 만들려면

  1. CounterCreationDataCollection 형식의 컬렉션을 만듭니다.

  2. 만들 카운터를 CounterCreationData 형식의 개체로 만들고 필요한 속성을 설정합니다.

  3. 컬렉션의 Add 메서드를 호출하여 CounterCreationData 개체를 컬렉션에 추가합니다.

  4. PerformanceCounterCategory 클래스의 Create 메서드를 호출하고 컬렉션을 이 메서드에 전달합니다.

    다음 예제에서는 일련의 카운터를 만들어 범주를 만들 때 이 카운터를 전달하는 방법을 보여 줍니다.

    ' Create a collection of type CounterCreationDataCollection.
    Dim CounterDatas As New CounterCreationDataCollection()
    ' Create the counters and set their properties.
    Dim cdCounter1 As New CounterCreationData()
    Dim cdCounter2 As New CounterCreationData()
    cdCounter1.CounterName = "MyCounter1"
    cdCounter1.CounterHelp = "help string"
    cdCounter1.CounterType = PerformanceCounterType.NumberOfItems64
    cdCounter2.CounterName = "MyCounter2"
    cdCounter2.CounterHelp = "help string 2"
    cdCounter2.CounterType = PerformanceCounterType.NumberOfItems64
    ' Add both counters to the collection.
    CounterDatas.Add(cdCounter1)
    CounterDatas.Add(cdCounter2)
    ' Create the category and pass the collection to it.
    PerformanceCounterCategory.Create("Multi Counter Category", _
        "Category help", PerformanceCounterCategoryType.SingleInstance, _
        CounterDatas)
    
         // Create a collection of type CounterCreationDataCollection.
            System.Diagnostics.CounterCreationDataCollection CounterDatas =
               new System.Diagnostics.CounterCreationDataCollection();
            // Create the counters and set their properties.
            System.Diagnostics.CounterCreationData cdCounter1 =
               new System.Diagnostics.CounterCreationData();
            System.Diagnostics.CounterCreationData cdCounter2 =
               new System.Diagnostics.CounterCreationData();
            cdCounter1.CounterName = "Counter1";
            cdCounter1.CounterHelp = "help string1";
            cdCounter1.CounterType = System.Diagnostics.PerformanceCounterType.NumberOfItems64;
            cdCounter2.CounterName = "Counter2";
            cdCounter2.CounterHelp = "help string 2";
            cdCounter2.CounterType = System.Diagnostics.PerformanceCounterType.NumberOfItems64;
            // Add both counters to the collection.
            CounterDatas.Add(cdCounter1);
            CounterDatas.Add(cdCounter2);
            // Create the category and pass the collection to it.
            System.Diagnostics.PerformanceCounterCategory.Create(
                "Multi Counter Category", "Category help",
                PerformanceCounterCategoryType.SingleInstance, CounterDatas);
    

참고 항목

작업

방법: 성능 카운터 범주 만들기

개념

범주 및 카운터 관리

참조

방법: 서버 탐색기/데이터베이스 탐색기 액세스 및 초기화