Azure Cloud Services'da Azure Tanılama etkinleştirme (klasik)
Önemli
Cloud Services (klasik), 1 Eylül 2024 itibarıyla tüm müşteriler için kullanım dışı bırakılmıştır. Mevcut tüm çalışan dağıtımlar Microsoft tarafından durdurulacak ve kapatılacak ve Veriler Ekim 2024'den itibaren kalıcı olarak kaybolacaktır. Yeni dağıtımlarda yeni Azure Resource Manager tabanlı dağıtım modeli Azure Cloud Services (genişletilmiş destek) kullanılmalıdır.
Azure Tanılama arka planı için bkz. Azure Tanılama Genel Bakış.
Çalışan Rolünde Tanılamayı Etkinleştirme
Bu kılavuzda.NET EventSource sınıfını kullanarak telemetri verilerini yayan bir Azure çalışan rolünün nasıl uygulandığı açıklanmaktadır. Azure Tanılama, telemetri verilerini toplamak ve bir Azure depolama hesabında depolamak için kullanılır. Bir çalışan rolü oluşturduğunuzda Visual Studio, .NET 2.4 ve önceki sürümleri için Azure Yazılım Geliştirme Setleri'ndeki (SDK) çözümün bir parçası olarak Tanılama 1.0'ı otomatik olarak etkinleştirir. Aşağıdaki yönergelerde çalışan rolünü oluşturma, çözümden Tanılama 1.0'ı devre dışı bırakma ve Çalışan rolünüz için Tanılama 1.2 veya 1.3 dağıtma işlemi açıklanmaktadır.
Önkoşullar
Bu makalede bir Azure aboneliğiniz olduğu ve Azure SDK ile Visual Studio kullandığınız varsayılır. Azure aboneliğiniz yoksa Ücretsiz Deneme sürümüne kaydolabilirsiniz. Azure PowerShell sürüm 0.8.7 veya üzerini yüklediğinizden ve yapılandırdığından emin olun.
1. Adım: Çalışan Rolü Oluşturma
- Visual Studio’yu başlatın.
- Bulut şablonundan .NET Framework 4.5'i hedefleyen bir Azure Cloud Service projesi oluşturun. Projeyi "WadExample" olarak adlandırın ve Tamam'ı seçin.
- Çalışan Rolü'ne ve ardından Tamam'a tıklayın. Proje oluşturuldu.
- Çözüm Gezgini'da WorkerRole1 özellikler dosyasına çift tıklayın.
- Yapılandırma sekmesinde Tanılama 1.0'ı (Azure SDK 2.4 ve öncesi) devre dışı bırakmak için Tanılamayı Etkinleştir'in işaretini kaldırın.
- Hata olmadığını doğrulamak için çözümünüzü oluşturun.
2. Adım: Kodunuzu izleme
WorkerRole.cs içeriğini aşağıdaki kodla değiştirin. EventSource Sınıfından devralınan SampleEventSourceWriter sınıfı dört günlük yöntemi uygular: SendEnums, MessageMethod, SetOther ve HighFreq. WriteEvent yönteminin ilk parametresi, ilgili olayın kimliğini tanımlar. Run yöntemi, SampleEventSourceWriter sınıfında 10 saniyede bir uygulanan günlük yöntemlerinin her birini çağıran sonsuz bir döngü uygular.
using Microsoft.WindowsAzure.ServiceRuntime;
using System;
using System.Diagnostics;
using System.Diagnostics.Tracing;
using System.Net;
using System.Threading;
namespace WorkerRole1
{
sealed class SampleEventSourceWriter : EventSource
{
public static SampleEventSourceWriter Log = new SampleEventSourceWriter();
public void SendEnums(MyColor color, MyFlags flags) { if (IsEnabled()) WriteEvent(1, (int)color, (int)flags); }// Cast enums to int for efficient logging.
public void MessageMethod(string Message) { if (IsEnabled()) WriteEvent(2, Message); }
public void SetOther(bool flag, int myInt) { if (IsEnabled()) WriteEvent(3, flag, myInt); }
public void HighFreq(int value) { if (IsEnabled()) WriteEvent(4, value); }
}
enum MyColor
{
Red,
Blue,
Green
}
[Flags]
enum MyFlags
{
Flag1 = 1,
Flag2 = 2,
Flag3 = 4
}
public class WorkerRole : RoleEntryPoint
{
public override void Run()
{
// This is a sample worker implementation. Replace with your logic.
Trace.TraceInformation("WorkerRole1 entry point called");
int value = 0;
while (true)
{
Thread.Sleep(10000);
Trace.TraceInformation("Working");
// Emit several events every time we go through the loop
for (int i = 0; i < 6; i++)
{
SampleEventSourceWriter.Log.SendEnums(MyColor.Blue, MyFlags.Flag2 | MyFlags.Flag3);
}
for (int i = 0; i < 3; i++)
{
SampleEventSourceWriter.Log.MessageMethod("This is a message.");
SampleEventSourceWriter.Log.SetOther(true, 123456789);
}
if (value == int.MaxValue) value = 0;
SampleEventSourceWriter.Log.HighFreq(value++);
}
}
public override bool OnStart()
{
// Set the maximum number of concurrent connections
ServicePointManager.DefaultConnectionLimit = 12;
// For information on handling configuration changes
// see the MSDN topic at https://go.microsoft.com/fwlink/?LinkId=166357.
return base.OnStart();
}
}
}
3. Adım: Çalışan Rolünüzü Dağıtma
Uyarı
Mevcut bir rol için tanılamayı etkinleştirdiğinizde, paket dağıtıldığında önceden ayarlamış olduğunuz tüm uzantılar devre dışı bırakılır. Bu modüller şunlardır:
- Microsoft Monitoring Agent Tanılama
- Microsoft Azure Güvenlik İzleme
- Microsoft Kötü Amaçlı Yazılımdan Koruma
- Microsoft Monitoring Agent
- Microsoft Hizmet Profili Oluşturucu Aracısı
- Windows Azure Etki Alanı Uzantısı
- Windows Azure Tanılama Uzantısı
- Windows Azure Uzak Masaüstü Uzantısı
- Windows Azure Günlük Toplayıcısı
Güncelleştirilmiş rolü dağıttığınızda Azure portalı veya PowerShell aracılığıyla uzantılarınızı sıfırlayabilirsiniz.
- Çözüm Gezgini WadExample projesini ve ardından Oluştur menüsünden Yayımla'yı seçerek çalışan rolünüzü Visual Studio'dan Azure'a dağıtın.
- Aboneliğinizi seçin.
- Microsoft Azure Yayımlama Ayarları iletişim kutusunda Yeni Oluştur... öğesini seçin.
- Bulut Hizmeti ve Depolama Hesabı Oluştur iletişim kutusunda, bir Ad (örneğin, "WadExample") girin ve bir bölge veya benek grubu seçin.
- Ortamı Hazırlama olarak ayarlayın.
- Diğer ayarları uygun şekilde değiştirin ve Yayımla'yı seçin.
- Dağıtım tamamlandıktan sonra Azure portalında bulut hizmetinizin Çalışıyor durumda olduğunu doğrulayın.
4. Adım: Tanılama yapılandırma dosyanızı oluşturma ve uzantıyı yükleme
Aşağıdaki PowerShell komutunu yürüterek genel yapılandırma dosyası şema tanımını indirin:
(Get-AzureServiceAvailableExtension -ExtensionName 'PaaSDiagnostics' -ProviderNamespace 'Microsoft.Azure.Diagnostics').PublicConfigurationSchema | Out-File -Encoding utf8 -FilePath 'WadConfig.xsd'
WorkerRole1 projesine sağ tıklayıp Ekle -Yeni Öğe... ->Visual C# öğeleri ->>Data ->XML Dosyası'nı seçerek WorkerRole1 projenize bir XML dosyası ekleyin. Dosyayı
WadExample.xml
olarak adlandırın.WadConfig.xsd dosyasını yapılandırma dosyasıyla ilişkilendirin. WadExample.xml düzenleyici penceresinin etkin pencere olduğundan emin olun. Özellikler penceresini açmak için F4 tuşuna basın. Özellikler penceresinde Schemas özelliğini seçin. Schemas özelliğinde ... öğesini seçin. Ekle... düğmesini seçin ve .xsd dosyasını kaydettiğiniz konuma gidin ve WadConfig.xsd dosyasını seçin. Tamam'ı seçin.
WadExample.xml yapılandırma dosyasının içeriğini aşağıdaki XML ile değiştirin ve dosyayı kaydedin. Bu yapılandırma dosyası, biri CPU kullanımı ve diğeri bellek kullanımı için olmak üzere toplayacak birkaç performans sayacı tanımlar. Ardından yapılandırma, SampleEventSourceWriter sınıfındaki yöntemlere karşılık gelen dört olayı tanımlar.
<?xml version="1.0" encoding="utf-8"?>
<PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<WadCfg>
<DiagnosticMonitorConfiguration overallQuotaInMB="25000">
<PerformanceCounters scheduledTransferPeriod="PT1M">
<PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1M" unit="percent" />
<PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT1M" unit="bytes"/>
</PerformanceCounters>
<EtwProviders>
<EtwEventSourceProviderConfiguration provider="SampleEventSourceWriter" scheduledTransferPeriod="PT5M">
<Event id="1" eventDestination="EnumsTable"/>
<Event id="2" eventDestination="MessageTable"/>
<Event id="3" eventDestination="SetOtherTable"/>
<Event id="4" eventDestination="HighFreqTable"/>
<DefaultEvents eventDestination="DefaultTable" />
</EtwEventSourceProviderConfiguration>
</EtwProviders>
</DiagnosticMonitorConfiguration>
</WadCfg>
</PublicConfig>
5. Adım: Çalışan Rolünüzde Tanılamayı Yükleme
Bir web veya çalışan rolünde Tanılamayı yönetmek için PowerShell cmdlet'leri şunlardır: Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension ve Remove-AzureServiceDiagnosticsExtension.
- Azure PowerShell'i açın.
- Çalışan rolünüzde Tanılama'yı yüklemek için betiği yürütebilirsiniz (StorageAccountKey değerini wadexample depolama hesabınızın depolama hesabı anahtarıyla değiştirin ve WadExample.xml dosyasının yolunu config_path):
$storage_name = "wadexample"
$key = "<StorageAccountKey>"
$config_path="c:\users\<user>\documents\visual studio 2013\Projects\WadExample\WorkerRole1\WadExample.xml"
$service_name="wadexample"
$storageContext = New-AzureStorageContext -StorageAccountName $storage_name -StorageAccountKey $key
Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext -DiagnosticsConfigurationPath $config_path -ServiceName $service_name -Slot Staging -Role WorkerRole1
6. Adım: Telemetri verilerinize bakın
Visual Studio Server Gezgini'nde wadexample depolama hesabına gidin. Bulut hizmeti yaklaşık beş (5) dakika çalıştırıldıktan sonra WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable ve WADSetOtherTable tablolarını görmeniz gerekir. Toplanan telemetri verilerini görüntülemek için tablolardan birine çift tıklayın.
Yapılandırma Dosyası Şeması
Tanılama yapılandırma dosyası, tanılama aracısı başlatıldığında tanılama yapılandırma ayarlarını başlatmak için kullanılan değerleri tanımlar. Geçerli değerler ve örnekler için en son şema başvurusuna bakın.
Sorun giderme
Sorun yaşıyorsanız yaygın sorunlarla ilgili yardım için bkz. sorun giderme Azure Tanılama.