Azure Diagnostics engedélyezése az Azure Cloud Services-ben (klasszikus)
Fontos
Cloud Services (klasszikus) mostantól elavult az új ügyfelek számára, és 2024. augusztus 31-én megszűnik minden ügyfél számára. Az új üzemelő példányoknak az új Azure Resource Manager-alapú Azure Cloud Services (kiterjesztett támogatás) üzemi modellt kell használniuk.
A Azure Diagnostics hátteréről Azure Diagnostics Áttekintés című témakörben olvashat.
Diagnosztika engedélyezése feldolgozói szerepkörben
Ez az útmutató bemutatja, hogyan implementálhat egy Olyan Azure-feldolgozói szerepkört, amely telemetriai adatokat bocsát ki a .NET EventSource osztály használatával. Azure Diagnostics a telemetriai adatok gyűjtésére és azure-tárfiókban való tárolására szolgál. Feldolgozói szerepkör létrehozásakor a Visual Studio automatikusan engedélyezi a Diagnostics 1.0-t a megoldás részeként a .NET 2.4-hez és korábbi verziókhoz készült Azure SDK-kban. Az alábbi utasítások ismertetik a feldolgozói szerepkör létrehozásának folyamatát, a Diagnostics 1.0 letiltását a megoldásból, valamint a Diagnostics 1.2 vagy 1.3 üzembe helyezését a feldolgozói szerepkörben.
Előfeltételek
Ez a cikk feltételezi, hogy Rendelkezik Azure-előfizetéssel, és a Visual Studiót használja az Azure SDK-val. Ha nem rendelkezik Azure-előfizetéssel, regisztrálhat az ingyenes próbaverzióra. Mindenképpen telepítse és konfigurálja Azure PowerShell 0.8.7-es vagy újabb verzióját.
1. lépés: Feldolgozói szerepkör létrehozása
- Indítsa el a Visual Studiót.
- Hozzon létre egy Azure Cloud Service-projektet a Cloud sablonból, amely .NET-keretrendszer 4.5-ös verziót célozza. Adja a projektnek a "WadExample" nevet, majd kattintson az OK gombra.
- Válassza a Feldolgozói szerepkör lehetőséget , majd kattintson az OK gombra. A projekt létrejön.
- A Megoldáskezelő kattintson duplán a WorkerRole1 tulajdonságfájlra.
- A Konfiguráció lapon törölje a Diagnosztika engedélyezése jelölőnégyzet jelölését a Diagnostics 1.0 (Azure SDK 2.4 és korábbi verziók) letiltásához.
- Hozza létre a megoldást annak ellenőrzéséhez, hogy nincsenek-e hibák.
2. lépés: Kód alakítása
Cserélje le a WorkerRole.cs fájl tartalmát a következő kódra. Az EventSource osztálytól örökölt SampleEventSourceWriter osztály négy naplózási módszert valósít meg: SendEnums, MessageMethod, SetOther és HighFreq. A WriteEvent metódus első paramétere határozza meg a megfelelő esemény azonosítóját. A Run metódus egy végtelen hurkot implementál, amely 10 másodpercenként meghívja a SampleEventSourceWriter osztályban implementált összes naplózási metódust.
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. lépés: A feldolgozói szerepkör üzembe helyezése
Figyelmeztetés
Ha egy meglévő szerepkörhöz engedélyezi a diagnosztikát, a már beállított bővítmények le lesznek tiltva a csomag telepítésekor. Ezek a következők:
- A Microsoft Monitoring Agent diagnosztikái
- Microsoft Azure Security Monitoring
- Microsoft Antimalware
- Microsoft Monitoring Agent
- Microsoft Service Profiler Agent
- Windows Azure-tartománybővítmény
- Windows Azure Diagnostics bővítmény
- Windows Azure Távoli asztali bővítmény
- Windows Azure Log Collector
A bővítményeket alaphelyzetbe állíthatja a Azure Portal vagy a PowerShell használatával a frissített szerepkör üzembe helyezése után.
- Helyezze üzembe a feldolgozói szerepkört az Azure-ban a Visual Studióban a WadExample projekt kiválasztásával a Megoldáskezelő majd a Közzététel lehetőséget a Build menüben.
- Válassza ki az előfizetését.
- A Microsoft Azure Közzétételi beállítások párbeszédpanelen válassza az Új létrehozása... lehetőséget.
- A Felhőszolgáltatás és tárfiók létrehozása párbeszédpanelen adjon meg egy nevet (például "WadExample"), és válasszon ki egy régiót vagy affinitáscsoportot.
- Állítsa a Környezet beállítást Átmeneti értékre.
- Módosítsa a többi beállítást a megfelelő módon, és kattintson a Közzététel gombra.
- Az üzembe helyezés befejezése után ellenőrizze a Azure Portal, hogy a felhőszolgáltatás Fut állapotban van-e.
4. lépés: A Diagnosztikai konfigurációs fájl létrehozása és a bővítmény telepítése
Töltse le a nyilvános konfigurációs fájl sémadefinícióját a következő PowerShell-parancs végrehajtásával:
(Get-AzureServiceAvailableExtension -ExtensionName 'PaaSDiagnostics' -ProviderNamespace 'Microsoft.Azure.Diagnostics').PublicConfigurationSchema | Out-File -Encoding utf8 -FilePath 'WadConfig.xsd'
Adjon hozzá egy XML-fájlt a WorkerRole1 projekthez. Ehhez kattintson a jobb gombbal a WorkerRole1 projektre, és válassza az Add ->New Item... ->Visual C# items -Data ->>XML File lehetőséget. Adja a fájlnak a "WadExample.xml" nevet.
Társítsa a WadConfig.xsd fájlt a konfigurációs fájlhoz. Győződjön meg arról, hogy a WadExample.xml szerkesztőablak az aktív ablak. Nyomja le az F4 billentyűt a Tulajdonságok ablak megnyitásához. Kattintson a Schemas (Sémák) tulajdonságra a Properties (Tulajdonságok ) ablakban. Kattintson a ... elemre a Séma tulajdonságban. Kattintson a Hozzáadás... gombra, keresse meg azt a helyet, ahová az XSD-fájlt mentette, és válassza ki a WadConfig.xsd fájlt. Kattintson az OK gombra.
Cserélje le a WadExample.xml konfigurációs fájl tartalmát a következő XML-fájlra, és mentse a fájlt. Ez a konfigurációs fájl néhány gyűjtendő teljesítményszámlálót határoz meg: egyet a CPU-használathoz, egyet pedig a memóriahasználathoz. Ezután a konfiguráció meghatározza a SampleEventSourceWriter osztály metódusainak megfelelő négy eseményt.
<?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. lépés: Diagnosztika telepítése a feldolgozói szerepkörre
A webes vagy feldolgozói szerepkör diagnosztikájának kezelésére szolgáló PowerShell-parancsmagok a következők: Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension és Remove-AzureServiceDiagnosticsExtension.
- Nyissa meg Azure PowerShell.
- Futtassa a szkriptet a Diagnostics feldolgozói szerepkörre való telepítéséhez (cserélje le a StorageAccountKey elemet a wadexample tárfiók tárfiókjának kulcsára, és config_path a WadExample.xml fájl elérési útjára):
$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. lépés: A telemetriai adatok megtekintése
A Visual Studio Server Explorerben lépjen a wadexample tárfiókhoz. Miután a felhőszolgáltatás körülbelül öt (5) perc alatt futott, a WADEnumsTable, a WADHighFreqTable, a WADMessageTable, a WADPerformanceCountersTable és a WADSetOtherTable tábláknak kell megjelennie. Kattintson duplán az egyik táblára az összegyűjtött telemetriai adatok megtekintéséhez.
Konfigurációs fájlséma
A Diagnosztikai konfigurációs fájl olyan értékeket határoz meg, amelyek a diagnosztikai ügynök indításakor a diagnosztikai konfigurációs beállítások inicializálására szolgálnak. Az érvényes értékekért és példákért tekintse meg a legújabb sémareferenciát .
Hibaelhárítás
Ha problémába ütközik, a gyakori problémák megoldásához tekintse meg a hibaelhárítási Azure Diagnostics című témakört.
Következő lépések
A gyűjtött adatok módosításához, a problémák elhárításához vagy a diagnosztika általános megismeréséhez tekintse meg a kapcsolódó Azure-beli virtuálisgép-diagnosztikai cikkek listáját.