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

  1. Indítsa el a Visual Studiót.
  2. 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.
  3. Válassza a Feldolgozói szerepkör lehetőséget , majd kattintson az OK gombra. A projekt létrejön.
  4. A Megoldáskezelő kattintson duplán a WorkerRole1 tulajdonságfájlra.
  5. 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.
  6. 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.

  1. 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.
  2. Válassza ki az előfizetését.
  3. A Microsoft Azure Közzétételi beállítások párbeszédpanelen válassza az Új létrehozása... lehetőséget.
  4. 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.
  5. Állítsa a Környezet beállítást Átmeneti értékre.
  6. Módosítsa a többi beállítást a megfelelő módon, és kattintson a Közzététel gombra.
  7. 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

  1. 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'
    
  2. 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.

    CloudServices_diag_add_xml

  3. 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.

  4. 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.

  1. Nyissa meg Azure PowerShell.
  2. 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.

CloudServices_diag_tables

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.