Makale Özeti

Bu yazıda konu aldığım bileşen .Net FrameWork içinde yer alan, Hem ToolsComponents tabından hemde ServerServer_Adi şeklinde erişebileceğiniz "Performance Counter". Performance Counter sisteminiz üzerinde çalışan tüm process leri, cpu kullanımını, memory kullanımını, sql server durumu, IIS durumu, services ve administrative tools option larını kontrol edebileceğiniz ve anlık verilerini alabileceğiniz bir bileşen olarak çıkıyor karşımıza. Microsoft Windows Task Manager da görebileceğiniz tüm sistem istatistiklerine bu bileşen sayesinde ulaşabilirsiniz.

Makale

Performance Counter

Bu yazıda konu aldığım bileşen .Net FrameWork içinde yer alan, Hem Tools>Components tabından hemde Server>Server_Adi> şeklinde erişebileceğiniz "Performance Counter". Performance Counter sisteminiz üzerinde çalışan tüm process leri, cpu kullanımını, memory kullanımını, sql server durumu, IIS durumu, services ve administrative tools option larını kontrol edebileceğiniz ve anlık verilerini alabileceğiniz bir bileşen olarak çıkıyor karşımıza. Microsoft Windows Task Manager da görebileceğiniz tüm sistem istatistiklerine bu bileşen sayesinde ulaşabilirsiniz.

     

Bileşeni kullanmak için projenize System.Diagnostics NameSpace ini dahil etmeniz gerekiyor.

Özellikleri

CategoryName
Performans verilerini almak istediğiniz kategori seçimini bu alanda yapıyoruz. Burada kullanabileceğiniz başlıca değerler:
- ASP.Net
- ASP.Net Applications
- Browser
- Cache
- Process
- Processor
- SQL Server
- Server
- Thread
- System
- Telephony
- WMI Objects
-
vs


CounterName
Bir üstteki kategoriden seçtiğiniz item ın alt kategorileri yani kullanabileceğiniz counter tipleri karşınıza çıkacaktır. Örneğin üst menüden Telephonyi seçtiğimizi varsayarsak karşınıza çıkacak kullanılabilir counter listesi şu şekilde olacaktır:

- Active Lines
- Active Telephones
- Client Apps
- Current Incoming Calls
- Current Outgoing Calls
- Incoming Calls/sec
- Lines
- Outgoing Calls/sec
- Telephone Devices


InstanceName
Bu alanda seçtiğimiz kategori ve ona bağlı counter tipden elde etmek istediğimiz veri türünü seçiyoruz. Bazı counter tiplerinde bu alanda herhangi bir veri listelenmeyecektir. Bu kullanılabilecek 2. bir instance ın olmadığı durumlarda karşınıza çıkar.

MachineName
Bu alana counter verisini almak istediğimiz makinenin IP adresi, ismi gibi bilgi girişi yapmalıyız. Herhangi bir veri girmemeniz durumunda default değeri "." dır ve local bilgisayrı hedef almaktadır.

Basit bir örnek yapalım ve bunun doğru çalışıp çalışmadığından emin olmak için örneğimiz Windows Task Manager da Process kolonunda bulunan bazı verileri almak ile alakalı olsun. Tabiki verileri bu alandan almayacağız ancak programın çalışıp çalışmadığını kontrol etmemiz kolaylaşacaktır bu sayede.

İlk işimiz yeni bir windows application projesi yaratmak. Design ekranına 6 Label , 3 PerformanceCounter ve 1 Timer getiriyorum.

Yapacağımız küçük program Windows Task Managerda Process kolunundaki "Total" tabında bulunan verileri gerçek zamanlı olarak alacak ve anlık güncelleyecek.

PerformanceCounter1in Properties tabında ;

CategoryName = Process //Bu sayede Process kategorisi üzerinden seçim yapacağız
CounterName = HandleCount //Handle sayısı
Instance Name = _Total //Toplam sayıyı verecek
MachineName = mania //Server ismi veya IP si

PerformanceCounter2in Properties tabında ;

CategoryName = Process
CounterName = ThreadCount
Instance Name = _Total
MachineName = mania

PerformanceCounter1in Properties tabında ;

CategoryName = System
CounterName = Processes
Instance Name =
MachineName = mania

şeklinde seçimimi yapıyorum.



Şimdi kısa bir kod ile wizardlar yardımıyla aldığımız bu verileri label larımıza basalım ve anlık güncelleyelim.

private void Form1_Load(object sender, System.EventArgs e)
{
   timer1.Start();
}

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
   label4.Text = performanceCounter1.NextValue().ToString();
   label5.Text = performanceCounter2.NextValue().ToString();
   label6.Text = performanceCounter3.NextValue().ToString();
}




Proje dosyalarını indirmek için tıklayınız


Evren AYAN
www.evrenayan.net