Поделиться через


Практическое руководство. Создание пользовательских счетчиков производительности

Обновлен: Ноябрь 2007

При создании нового счетчика прежде всего необходимо создать категорию, а потом уже указать один или несколько относящихся к ней счетчиков. Это можно сделать одним из следующих способов:

Есть два особых момента, которые следует иметь в виду при создании счетчиков и категорий. Во-первых, создание пользовательских категорий и счетчиков на удаленных компьютерах невозможно. Во-вторых, взаимодействие с пользовательскими счетчиками и категориями ограничено режимом "только для чтения", если явно не задано иное. В режиме "только для чтения" невозможно увеличить или уменьшить значения счетчиков или установить для них необработанное значение или значения другого типа. Для установки пользовательского счетчика в режим записи можно использовать свойство ReadOnly.

Следует учитывать разницу между созданием счетчика и созданием экземпляра компонента PerformanceCounter. При создании счетчика в операционной системе Windows создается новая категория и связанные с ней счетчики, в отличие от создания компонента в проекте или приложении. При создании экземпляра компонента PerformanceCounter внутри проекта Visual Studio создается компонент, который ссылается на внешний счетчик.

5e3s61wf.alert_note(ru-ru,VS.90).gifПримечание.

Существуют ограничения безопасности, влияющие на возможность использования счетчиков производительности. Дополнительные сведения см. в разделе Знакомство со способами выявления пороговых значений производительности.

5e3s61wf.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

При создании счетчика производительности имейте в виду, что такой ресурс уже может существовать. Другой процесс (возможно, вредоносный) уже мог создать ресурс и получить к нему доступ. При записи данных в счетчик производительности они становятся доступными для другого процесса.

5e3s61wf.alert_note(ru-ru,VS.90).gifПримечание.

В Microsoft Windows NT версии 4.0 класс PerformanceCounter поддерживается не полностью. Данные из системных счетчиков доступны для чтения, но пользовательские счетчики нельзя создавать, удалять, а также нельзя записывать в них данные.

5e3s61wf.alert_note(ru-ru,VS.90).gifПримечание.

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Создание новой категории и пользовательского счетчика производительности в режиме разработки

  1. Откройте Обозреватель серверов и разверните узел сервера, который требуется просмотреть.

    5e3s61wf.alert_note(ru-ru,VS.90).gifПримечание.

    Если этого сервера нет в списке, его нужно добавить. Дополнительные сведения см. в разделе Практическое руководство. Подключение и инициализация обозревателя серверов/обозревателя баз данных.

  2. Щелкните правой кнопкой мыши узел Счетчики производительности и выберите команду Создать новую категорию.

    Откроется диалоговое окно Построитель счетчиков производительности.

    5e3s61wf.alert_note(ru-ru,VS.90).gifПримечание.

    Для получения доступа к счетчикам производительности необходимо быть членом группы безопасности, имеющей доступ к счетчикам производительности (например, группы Пользователи монитора производительности). Кроме того, при попытке выполнить действие, требующее расширенных полномочий, в Windows Vista могут выводиться запросы даже в случае использования административных прав. Дополнительные сведения см. в разделе Windows Vista и Visual Studio.

  3. Введите имя и описание создаваемой категории.

    5e3s61wf.alert_note(ru-ru,VS.90).gifПримечание.

    Указание имени уже существующей категории приведет к ошибке. Для перезаписи существующей категории счетчика необходимо сначала удалить категорию с помощью метода Delete, а затем добавить новую категорию.

  4. Во фрейме Построитель списка счетчиков выполните следующие действия:

    1. Нажмите кнопку Создать.

    2. В окне Счетчик задайте имя создаваемого внутри категории счетчика.

    3. Выберите тип счетчика в раскрывающемся списке Тип.

    4. Введите описание счетчика.

  5. Повторите шаг 4 для создания каждого дополнительного счетчика в данной категории.

    5e3s61wf.alert_note(ru-ru,VS.90).gifСовет.

    Перед закрытием диалогового окна в списке Счетчики можно выбрать любые счетчики и изменить их значения или удалить их.

    5e3s61wf.alert_note(ru-ru,VS.90).gifПримечание.

    По умолчанию созданные в диалоговом окне счетчики и категории обладают возможностями чтения и записи, однако взаимодействие с ними с помощью экземпляра компонента PerformanceCounter ограничено режимом "только для чтения", если не указано иное.

Создание новой категории и набора счетчиков производительности программными средствами

  1. Создайте коллекцию типа CounterCreationDataCollection.

  2. Создайте необходимые счетчики как объекты типа CounterCreationData и задайте для них нужные свойства.

  3. Добавьте в коллекцию объекты CounterCreationData, вызвав метод Add коллекции.

  4. Вызовите метод Create класса PerformanceCounterCategory и передайте ему коллекцию.

    В следующем примере показано, как создать серию счетчиков и передать их в категорию в момент ее создания:

    ' 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);
    

См. также

Задачи

Практическое руководство. Создание категорий счетчиков производительности

Основные понятия

Управление категорией и счетчиком

Ссылки

Практическое руководство. Подключение и инициализация обозревателя серверов/обозревателя баз данных