Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

Для нашей службы цитат может представлять интерес получение информации о числе клиентских запросов, размере данных, посылаемых по каналам связи, и т.д.

Классы мониторинга производительности

Пространство имен

System.Diagnostics
имеет следующие классы для мониторинга производительности:

□ 

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

□ С помощью класса

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;

 //

 // performanceCounterRequestsTotal

 //

 this.performanceCounterRequestsTotal.CategoryName =

"Quote Service Counts";

Поделиться:
Популярные книги

Вамп

Парсиев Дмитрий
3. История одного эволюционера
Фантастика:
рпг
городское фэнтези
постапокалипсис
5.00
рейтинг книги
Вамп

Не грози Дубровскому! Том II

Панарин Антон
2. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том II

Купец III ранга

Вяч Павел
3. Купец
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Купец III ранга

Газлайтер. Том 1

Володин Григорий
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

Хозяйка старой усадьбы

Скор Элен
Любовные романы:
любовно-фантастические романы
8.07
рейтинг книги
Хозяйка старой усадьбы

Сумеречный Стрелок 10

Карелин Сергей Витальевич
10. Сумеречный стрелок
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Сумеречный Стрелок 10

Законы Рода. Том 7

Flow Ascold
7. Граф Берестьев
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Законы Рода. Том 7

Боярышня Дуняша 2

Меллер Юлия Викторовна
2. Боярышня
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Боярышня Дуняша 2

Пятнадцать ножевых 3

Вязовский Алексей
3. 15 ножевых
Фантастика:
попаданцы
альтернативная история
7.71
рейтинг книги
Пятнадцать ножевых 3

Секретарша генерального

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
короткие любовные романы
8.46
рейтинг книги
Секретарша генерального

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Облачный полк

Эдуард Веркин
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Облачный полк

Бастард Императора. Том 6

Орлов Андрей Юрьевич
6. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 6

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2