Windows Azure एप्लिकेशन में प्रदर्शन काउंटर का उपयोग करना

छवि

सिस्टम अड़चनों और ट्यून सिस्टम और एप्लिकेशन प्रदर्शन की पहचान करने में मदद करने के लिए डेटा एकत्र करने के लिए प्रदर्शन काउंटरों का उपयोग विंडोज एज़्योर एप्लिकेशन में किया जा सकता है। Windows Azure, Windows Server 2008, IIS और ASP.NET के लिए कई प्रदर्शन काउंटर उपलब्ध कराता है। प्रदर्शन काउंटरों की एक सूची के लिए जिसे आप विंडोज एज़्योर अनुप्रयोगों के लिए उपयोग कर सकते हैं, "विंडोज एज़्योर एप्लिकेशन में प्रदर्शन काउंटर बनाने और उपयोग करने का तरीका समझें"।

इस कार्य को कार्यान्वित करने के लिए, इन चरणों का पालन करें:


चरण 1. प्रदर्शन काउंटर से डेटा एकत्र करना


प्रदर्शन काउंटर से डेटा के संग्रह को कॉन्फ़िगर करने के लिए, Windows Azure एप्लिकेशन GetDefaultInitialConfiguration पद्धति का उपयोग करता है, PerformanceCounterConfiguration के उदाहरण के साथ एक प्रदर्शनकाउंटर डेटा स्रोत जोड़ता है, और फिर संशोधित कॉन्फ़िगरेशन के साथ प्रारंभ विधि को कॉल करता है। प्रदर्शन काउंटर से डेटा एकत्र करने के लिए, इन चरणों का पालन करें:

भूमिका के लिए स्रोत फ़ाइल खोलें।

नोट। आमतौर पर, निम्न चरण भूमिका की OnStart पद्धति में कोड जोड़ते हैं।

डायग्नोस्टिक मॉनिटर कॉन्फ़िगरेशन का एक उदाहरण प्राप्त करें। निम्न कोड उदाहरण दिखाता है कि डिफ़ॉल्ट नैदानिक ​​मॉनिटर कॉन्फ़िगरेशन ऑब्जेक्ट कैसे प्राप्त करें।

var config = DiagnosticMonitor.GetDefaultInitialConfiguration(); 

मॉनिटर किए गए प्रदर्शन काउंटर निर्दिष्ट करें। निम्न उदाहरण एक प्रदर्शन काउंटर दिखाता है जो नैदानिक ​​मॉनिटर कॉन्फ़िगरेशन में जोड़ा जाता है।

 config.PerformanceCounters.DataSources.Add( new PerformanceCounterConfiguration()) { CounterSpecifier = @"\Processor(_Total)\% Processor Time", SampleRate = TimeSpan.FromSeconds(5) }); 

पुन: कॉन्फ़िगर किए गए के साथ नैदानिक ​​मॉनिटर चलाएँ। निम्न कोड उदाहरण दिखाता है कि मॉनिटर कैसे शुरू करें।

 DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config); 

नोट। यह कोड उदाहरण कनेक्शन स्ट्रिंग के उपयोग को दर्शाता है। कनेक्शन स्ट्रिंग्स के बारे में अधिक जानकारी के लिए, "कनेक्शन स्ट्रिंग्स को कॉन्फ़िगर करना" देखें।

प्रोजेक्ट को सहेजें और बनाएँ, और फिर एप्लिकेशन को परिनियोजित करें।

इन चरणों को पूरा करने के बाद, Windows Azure Diagnostic Monitor प्रदर्शन काउंटरों से डेटा एकत्र करना शुरू करेगा।

चरण 2. कस्टम प्रदर्शन काउंटर बनाना (वैकल्पिक)


नए कस्टम प्रदर्शन काउंटर को एप्लिकेशन से डायग्नोस्टिक मॉनिटर कॉन्फ़िगरेशन में जोड़ा जा सकता है। ऐसा करने के लिए, प्रत्येक श्रेणी के लिए PerformanceCounterConfiguration इंस्टेंस बनाने के लिए कस्टम श्रेणी और काउंटर नामों का उपयोग करें और उन्हें DiagnosticMonitorConfiguration में PerformanceCounters डेटा स्रोत संग्रह में जोड़ें। कस्टम प्रदर्शन काउंटर बनाने के लिए, इन चरणों का पालन करें:

एप्लिकेशन के लिए सेवा परिभाषा फ़ाइल (CSDEF) खोलें।

उच्च विशेषाधिकार के साथ निष्पादन की अनुमति देने के लिए WebRole या WorkerRole तत्व में एक रनटाइम तत्व जोड़ें।

 <Runtime executionContext="elevated" /> 

फ़ाइल सहेजें। भूमिका के लिए स्रोत फ़ाइल खोलें। यदि अगला स्टेटमेंट स्टेटमेंट गुम है, तो उसे जोड़ें।

 using System.Diagnostics; 

अपनी भूमिका के OnStart पद्धति में एक कस्टम प्रदर्शन काउंटर श्रेणी बनाएँ। निम्नलिखित उदाहरण से पता चलता है कि दो काउंटरों (यदि एक लापता है) के साथ एक कस्टम श्रेणी कैसे बनाई जाए।

 if (!PerformanceCounterCategory.Exists("MyCustomCounterCategory")) { CounterCreationDataCollection counterCollection = new CounterCreationDataCollection(); // add a counter tracking user button1 clicks CounterCreationData operationTotal1 = new CounterCreationData(); operationTotal1.CounterName = "MyButton1Counter"; operationTotal1.CounterHelp = "My Custom Counter for Button1"; operationTotal1.CounterType = PerformanceCounterType.NumberOfItems32; counterCollection.Add(operationTotal1); // add a counter tracking user button2 clicks CounterCreationData operationTotal2 = new CounterCreationData(); operationTotal2.CounterName = "MyButton2Counter"; operationTotal2.CounterHelp = "My Custom Counter for Button2"; operationTotal2.CounterType = PerformanceCounterType.NumberOfItems32; counterCollection.Add(operationTotal2); PerformanceCounterCategory.Create( "MyCustomCounterCategory", "My Custom Counter Category", PerformanceCounterCategoryType.SingleInstance, counterCollection); Trace.WriteLine("Custom counter category created."); } else{ Trace.WriteLine("Custom counter category already exists."); } 

डायग्नोस्टिक मॉनीटर कॉन्फ़िगरेशन के लिए नए कस्टम प्रदर्शन काउंटरों को जोड़ें और आधार कॉल करने से पहले ऑनस्टार्ट विधि में डायग्नोस्टिक मॉनिटर चलाएं

 DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration(); config.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(2D); config.PerformanceCounters.BufferQuotaInMB = 512; TimeSpan perfSampleRate = TimeSpan.FromSeconds(30D); // Add configuration settings for custom performance counters. config.PerformanceCounters.DataSources.Add( new PerformanceCounterConfiguration() { CounterSpecifier = @"\MyCustomCounterCategory\MyButton1Counter", SampleRate = perfSampleRate }); config.PerformanceCounters.DataSources.Add( new PerformanceCounterConfiguration() { CounterSpecifier = @"\MyCustomCounterCategory\MyButton2Counter", SampleRate = perfSampleRate }); // Apply the updated configuration to the diagnostic monitor. DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config); 

एप्लिकेशन में काउंटरों को अपडेट करें। निम्न उदाहरण दिखाता है कि Button1_Click घटनाओं में कस्टम प्रदर्शन काउंटर को कैसे अपडेट किया जाए।

 protected void Button1_Click(object sender, EventArgs e) { button1Counter = new PerformanceCounter( "MyCustomCounterCategory", "MyButton1Counter", string.Empty, false); button1Counter.Increment(); this.Button1.Text = "Button 1 count: " + button1Counter.RawValue.ToString(); } 

प्रोजेक्ट को सहेजें और बनाएँ, और फिर एप्लिकेशन को परिनियोजित करें।

इन चरणों को पूरा करने के बाद, विंडोज एज़्योर डायग्नोस्टिक्स मॉनिटर कस्टम प्रदर्शन काउंटरों से डेटा एकत्र करना शुरू कर देगा।

चरण 3. प्रदर्शन काउंटर से डेटा का अनुरोध करें


Windows Azure संग्रहण में प्रदर्शन काउंटर डेटा एकत्र करने और स्थानांतरित करने के लिए Windows Azure डायग्नोस्टिक मॉनिटर कॉन्फ़िगर करने के बाद, आप रिपोर्ट बनाने के लिए इस डेटा का उपयोग कर सकते हैं। Windows Azure एप्लिकेशन में प्रदर्शन काउंटर से डेटा Windows Azure स्टोरेज में WADPerformanceCountersTable में CloudTableQuery क्वेरी के परिणामों को सूचीबद्ध करके स्थानांतरित किया जाता है। प्रदर्शन काउंटर से डेटा का अनुरोध करने के लिए, इन चरणों का पालन करें:

कोड वाली भूमिका के लिए स्रोत फ़ाइल खोलें। यदि निम्नलिखित स्टेटमेंट्स अनुपलब्ध हैं, तो उन्हें जोड़ें।

 using System.Linq; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.StorageClient; 

प्रदर्शन काउंटर तालिकाओं को क्वेरी करने के लिए एक टेबल स्कीमा व्यू क्लास बनाएं।

 public class PerformanceCountersEntity : TableServiceEntity { public long EventTickCount { get; set; } public string DeploymentId { get; set; } public string Role { get; set; } public string RoleInstance { get; set; } public string CounterName { get; set; } public string CounterValue { get; set; } } 

तालिका सेवाओं के संदर्भ का एक उदाहरण प्राप्त करें। निम्न कोड उदाहरण दर्शाता है कि डिफ़ॉल्ट नैदानिक ​​मॉनिटर टेबल सेवाओं के संदर्भ को कैसे प्राप्त करें।

 CloudStorageAccount storageAccount = CloudStorageAccount.Parse( "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"); CloudTableClient cloudTableClient = storageAccount.CreateCloudTableClient(); TableServiceContext serviceContext = cloudTableClient.GetDataServiceContext(); 

दी गई तालिका प्रविष्टियों को निर्दिष्ट करने के लिए एक क्वेरी बनाएँ। निम्न उदाहरण दिखाता है कि वर्तमान भूमिका उदाहरण के लिए अंतिम पांच मिनट में CPU उपयोग रिकॉर्ड कैसे लौटाएं।

 IQueryable<PerformanceCountersEntity> performanceCountersTable = serviceContext.CreateQuery<PerformanceCountersEntity>( "WADPerformanceCountersTable"); var selection = from row in performanceCountersTable where row.EventTickCount > DateTime.UtcNow.AddMinutes(-5.0).Ticks && row.CounterName.Equals(@"\Processor(_Total)\% Processor Time") select row; CloudTableQuery<PerformanceCountersEntity> query = selection.AsTableServiceQuery<PerformanceCountersEntity>(); // Use the Execute command explicitly on the TableServiceQuery to // take advantage of continuation tokens automatically and get all the data. IEnumerable<PerformanceCountersEntity> result = query.Execute(); 

नोट। क्वेरी सिंटैक्स के बारे में अधिक जानकारी के लिए, LINQ: .NET भाषा-एकीकृत क्वेरी देखें

आवेदन प्रदर्शन पर विश्लेषण और रिपोर्ट करने के लिए डेटा का उपयोग करें।

 List<PerformanceCountersEntity> list = result.ToList(); // Display list members here. 

प्रोजेक्ट को सहेजें और बनाएं, और फिर एप्लिकेशन को परिनियोजित करें।

इन चरणों को पूरा करने के बाद, प्रदर्शन काउंटर से डेटा रिपोर्टिंग के लिए उपलब्ध होगा।

अतिरिक्त संसाधन


Source: https://habr.com/ru/post/In150014/


All Articles