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

□ Класс PerformanceCounterInstaller используется для установки счетчиков производительности, аналогично классу EventLogInstaller, о котором упоминалось ранее.

Построитель счетчиков производительности 

Можно создать новую категорию, выбирая счетчики производительности в Server Explorer. Категория называется Quote Service. В таблице показаны все счетчики производительности нашей службы:

Имя Описание Тип
# of Bytes sent Общее число байтов, посланных клиенту. NumberOfItems32
# of Bytes sent/sec Число байтов, посылаемых клиенту в одну секунду. NumberOfItems32
# of Requests Общее число запросов. NumberOfItems32
# of Requests /sec Число запросов в одну секунду. NumberOfItems32

Построитель счетчика производительности записывает конфигурацию в базу данных производительности. Это может также делаться динамически с помощью метода Create() класса PerformanceCategory в пространстве имен System.Diagnostics. Программу установки для других систем можно легко добавить в последующем с помощью Visual Studio.NET.

Построитель счетчика производительности запускается из Server Explorer при выборе контекстного меню Performance Counters|Create New Category:

Добавление счетчиков производительности

Теперь мы хотим добавить счетчики производительности в сервер цитат. Класс QuoteServiсе не располагает информацией, необходимой для счетчиков производительности. Мы хотим получить число запросов, но после запуска службы QuoteService не получает запросов. Информация полностью содержится в классе QuoteServer, созданном ранее.

Добавление поддержки Visual Studio.NET Designer в библиотеку классов

Можно вручную добавить в код экземпляры класса PerformanceCounter либо использовать приложение Visual Studio.NET Designer. С его помощью перетаскиваются компоненты PerformanceCounter из панели инструментов на его рабочую поверхность. Поддержку легко добавить в библиотеку компонентов, выводя класс из System.ComponentModel.Component. Метод InitializeComponent(), который используется для задания свойств компонентов, будет исполняться автоматически, необходимо добавить лишь его вызов.

Добавление компонентов PerformanceCounter

Далее можно добавить компоненты PerformanceCounter из панели инструментов. Для нашей службы добавляется четыре экземпляра, где свойство CategoryName задается как Quote Service Count для всех объектов, а свойство CounterName задается одним из значений, доступным в выбранной категории. Свойство ReadOnly должно быть задано как False.

Код, который был внесен в InitializeComponent() путем добавления Components в конструктор и заданием свойств, выглядит так:

private void InitializeComponent() {

 // ...

 //

 // performanceCounterRequestsPerSec

 //

 this.performanceCounterRequestsPerSec.CategoryName =

  'Quote Service Counts';

 this.performanceCounterRequestsPerSec.CounterName =

  '# of Requests / sec';

 this.performanceCounterRequestsPerSec.ReadOnly = false;

 //

 // performanceCounterBytesSentTotal

 //

 this.performanceCounterBytesSentTotal.CategoryName =

  'Quote Service Counts';

 this.performanceCounterBytesSentTotal.CounterName =

  '# of Bytes sent';

 this.performanceCounterBytesSentTotal.ReadOnly = false;

 //

 // performanceCounterBytesSentPerSec

 //

 this.performanceCounterBytesSentPerSec.CategoryName =

  'Quote Service Counts';

 this.performanceCounterBytesSentPerSec.CounterName =

  '# of Bytes sent / sec';

 this.performanceCounterBytesSentPerSec.ReadOnly = false;

 //

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату