Az Azure Diagnostics engedélyezése az Azure Cloud Servicesben (klasszikus)
Fontos
A 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 Azure Cloud Services új Azure Resource Manager-alapú üzemi modelljét (kiterjesztett támogatás) kell használniuk.
Az Azure Diagnostics hátteréről az Azure Diagnostics áttekintésében olvashat.
Diagnosztikák 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. Az Azure Diagnostics a telemetriai adatok gyűjtésére és egy Azure Storage-fió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 Software Development Kitsben (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. Győződjön meg arról, hogy telepíti és konfigurálja az 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 felhősablonból, amely a 4.5-ös .NET-keretrendszer célozza meg. Nevezze el a "WadExample" projektet, és válassza az Ok gombot.
- Válassza a Feldolgozói szerepkör lehetőséget , és válassza az OK gombot. A projekt létrejön.
- A Megoldáskezelő kattintson duplán a WorkerRole1 tulajdonságfájlra.
- A Konfiguráció lapon törölje a jelet a Diagnosztika engedélyezése 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ére, hogy nincsenek-e hibák.
2. lépés: A kód hangszerelése
Cserélje le a WorkerRole.cs 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 az adott esemény azonosítóját. A Futtatás metódus egy végtelen ciklust 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ör diagnosztikát engedélyez, a csomag üzembe helyezésekor a már beállított bővítmények le lesznek tiltva. Ezek közé tartoznak:
- Microsoft Monitoring Agent Diagnostics
- Microsoft Azure Security Monitoring
- Microsoft Antimalware
- Microsoft Monitoring Agent
- Microsoft Service Profiler-ügynök
- Windows Azure Domain Extension
- Windows Azure Diagnostics-bővítmény
- Windows Azure Távoli asztali bővítmény
- Windows Azure Log Collector
A frissített szerepkör üzembe helyezése után alaphelyzetbe állíthatja a bővítményeket az Azure Portalon vagy a PowerShellben.
- 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 Build menü közzétételi menüjében.
- Válassza ki az előfizetését.
- A Microsoft Azure Közzétételi beállításai 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ási csoportot.
- Állítsa a környezetet előkészítésre.
- Szükség szerint módosítsa a többi beállítást, és válassza a Közzététel lehetőséget.
- Az üzembe helyezés befejezése után ellenőrizze az Azure Portalon, 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'
Vegyen fel egy XML-fájlt a WorkerRole1 projektbe. Ehhez kattintson a jobb gombbal a WorkerRole1 projektre, és válassza az Add ->New Item... -Visual C# items -Data -XML File (Új elem hozzáadása... ->Visual C# items ->Data ->XML File) lehetőséget. A fájl neve legyen
WadExample.xml
.A WadConfig.xsd társítása a konfigurációs fájllal. Győződjön meg arról, hogy a WadExample.xml szerkesztőablak az aktív ablak. A Tulajdonságok ablak megnyitásához nyomja le az F4 billentyűt. Válassza ki a Séma tulajdonságot a Tulajdonságok ablakban. Válassza ki a ... lehetőséget a Séma tulajdonságban. Válassza a Hozzáadás... gombot, és 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 processzorkihasználtsághoz, 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: A diagnosztika telepítése a feldolgozói szerepkörre
A diagnosztikák webes vagy feldolgozói szerepkörön való kezelésére szolgáló PowerShell-parancsmagok a következők: Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension és Remove-AzureServiceDiagnosticsExtension.
- Nyissa meg az Azure PowerShellt.
- Futtassa a szkriptet a Diagnostics feldolgozói szerepkörre való telepítéséhez (cserélje le a StorageAccountKey-t 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 keresse meg a wadexample tárfiókot. Miután a felhőszolgáltatás körülbelül öt (5) percet futott, látnia kell a WADEnumsTable, a WADHighFreqTable, a WADMessageTable, a WADPerformanceCountersTable és a WADSetOtherTable táblákat. 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. Tekintse meg a legújabb sémahivatkozást érvényes értékekhez és példákhoz.
Hibaelhárítás
Ha problémába ütközik, tekintse meg az Azure Diagnostics hibaelhárításával kapcsolatos gyakori problémákat.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: