سؤال

أحاول التقاط الأداء التالي على Webrole Azure:

private string[] perfCounters = { @"\Processor(_Total)\% Processor Time", 
                                @"\ASP.NET Applications(__Total__)\Requests/Sec", 
                                @"\Memory\Available Bytes", 
                                @"\ASP.NET\Request Execution Time", 
                                @"\ASP.NET\Requests Queued"};

لدي في webrole.cs الكود التالي لتمكين التقاط عدادات perf هذه:

    DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();

    int loggingInterval = Int32.Parse(RoleEnvironment.GetConfigurationSettingValue("loggingInterval"));
    config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(loggingInterval);

    foreach (String s in perCounters)
    {
      PerformanceCounterConfiguration procTimeConfig = new PerformanceCounterConfiguration();
      procTimeConfig.CounterSpecifier = s;
      procTimeConfig.SampleRate = System.TimeSpan.FromMinutes(1.0);
      config.PerformanceCounters.DataSources.Add(procTimeConfig);
    }
    config.PerformanceCounters.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1.0);
    DiagnosticMonitor.Start("DiagnosticsConnectionString", config);

كما ترى ، أقوم بتعيين فترة Xfer المجدولة لعدادات Perf إلى 1 دقيقة.

الآن ، أنا قادر على الحصول على هذه العدادات في جدول Wadperformancecounters على نسيج Dev الخاص بي ، لكنني غير قادر على الحصول عليها على سحابة Azure؟ هل يمكن لأي شخص أن يشير إلى ماذا يمكنني أن أفعل خطأ هنا؟

كابيل

هل كانت مفيدة؟

المحلول

من المفترض أن المشكلة لم تكن في الأماكن التي كنت أنظر إليها. كان الإصلاح لهذا الأمر بسيطًا جدًا ، لقد قمت بحذف النشر الموجود مسبقًا وتحميل ملف CSPKG الخاص بي كنشر جديد. يبدو أنه يتم التقاط عدادات perf استنادًا إلى ملف XML تحت Blob WAD-Control-Container. يتم إنشاء ملف XML هذا لكل نشر. أدركت أن ملف XML لم يتم تحديثه في حالتي ، وعندما حذفت النشر وأنشأت نشرًا جديدًا ، كان يأخذ القيمة الجديدة.

شكرا كابيل

نصائح أخرى

يتم تحديث أي تغييرات على إعدادات التشخيص فقط عند إجراء نشر كامل وليس عند التحديث. من أجل تنفيذ النشر الكامل ، انتقل إلى ملف تعريف النشر والإعدادات والإعدادات المتقدمة ، وإلغاء تحديد خانة الاختيار لتحديث النشر. عندما تنشر هذا ، سيكون هذا نشرًا كاملاً.

أيضًا ، من الممكن تحديث إعداداتك دون إجراء نشر. في Explorer Explorer ، انتقل إلى Windows Azure => Cloud Services => => Production => دور العامل الخاص بك والنقر بزر الماوس الأيمن على ذلك ، انقر فوق تحديث إعدادات التشخيص. سيؤدي ذلك إلى جلب إعدادات التشخيص الحالية التي تم نشرها بالفعل ، ويمكنك تحديثها هنا دون إجراء أي نشر. بالطبع إذا كنت ترغب في التحقق من أن الكود الخاص بك هو في الواقع وضعه بالطريقة الصحيحة ، فستحتاج إلى القيام بنشر كامل كما هو مذكور أعلاه والذي سيمارس الكود الخاص بك ثم التحقق.

http://msdn.microsoft.com/library/azure/dn186185.aspx

نظرًا لأنك تحصل على عدادات في نسيج Dev ولكن ليس في Azure Fabric ، اسمحوا لي أن أسأل ما هو واضح: هل قمت بتغيير إعداد DiagnosticsConnectionString للإشارة إلى سلسلة اتصال تخزين Azure؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top