Azure Diagnostics engedélyezése az Azure Cloud Services (klasszikus)Enabling Azure Diagnostics in Azure Cloud Services (classic)

Fontos

Az azure Cloud Services (bővített támogatás) az Azure Cloud Services termék új, Azure Resource Manager alapú üzembe helyezési modellje.Azure Cloud Services (extended support) is a new Azure Resource Manager based deployment model for the Azure Cloud Services product.Ezzel a módosítással az Azure Service Manager-alapú üzemi modellben futó Azure Cloud Services Cloud Services (klasszikus) néven lett átnevezve, és az összes új központi telepítésnek Cloud Services (kiterjesztett támogatás)kell használnia. With this change, Azure Cloud Services running on the Azure Service Manager based deployment model have been renamed as Cloud Services (classic) and all new deployments should use Cloud Services (extended support).

A Azure Diagnostics hátterének Azure Diagnostics áttekintését lásd:.See Azure Diagnostics Overview for a background on Azure Diagnostics.

Diagnosztika engedélyezése feldolgozói szerepkörbenHow to Enable Diagnostics in a Worker Role

Ez az útmutató azt ismerteti, hogyan valósítható meg egy olyan Azure feldolgozói szerepkör, amely telemetria-információkat bocsát ki a .NET EventSource osztály használatával.This walkthrough describes how to implement an Azure worker role that emits telemetry data using the .NET EventSource class. Azure Diagnostics a telemetria adatok gyűjtésére és egy Azure Storage-fiókba való tárolására szolgál.Azure Diagnostics is used to collect the telemetry data and store it in an Azure storage account. Feldolgozói szerepkör létrehozásakor a Visual Studio automatikusan engedélyezi a diagnosztika 1,0-es verzióját a .NET 2,4-es és korábbi verziójú Azure SDK-k megoldásának részeként.When creating a worker role, Visual Studio automatically enables Diagnostics 1.0 as part of the solution in Azure SDKs for .NET 2.4 and earlier. Az alábbi utasítások a feldolgozói szerepkör létrehozási folyamatát, a diagnosztika 1,0 a megoldásból való letiltását, valamint a diagnosztikai 1,2 vagy 1,3 üzembe helyezését ismertetik a feldolgozói szerepkörben.The following instructions describe the process for creating the worker role, disabling Diagnostics 1.0 from the solution, and deploying Diagnostics 1.2 or 1.3 to your worker role.

ElőfeltételekPrerequisites

Ez a cikk feltételezi, hogy rendelkezik Azure-előfizetéssel, és a Visual studiót használja az Azure SDK-val.This article assumes you have an Azure subscription and are using Visual Studio with the Azure SDK. Ha nem rendelkezik Azure-előfizetéssel, regisztrálhat az ingyenes próbaverzióra.If you do not have an Azure subscription, you can sign up for the Free Trial. Győződjön meg arról, hogy a Azure PowerShell 0.8.7 vagy újabb verziót telepíti és konfigurálja.Make sure to Install and configure Azure PowerShell version 0.8.7 or later.

1. lépés: feldolgozói szerepkör létrehozásaStep 1: Create a Worker Role

  1. Indítsa el a Visual studiót.Launch Visual Studio.
  2. Hozzon létre egy Azure Cloud Service -projektet a .NET-keretrendszer 4,5-es verzióit tároló felhőalapú sablonból.Create an Azure Cloud Service project from the Cloud template that targets .NET Framework 4.5. Nevezze el a "WadExample" projektet, és kattintson az OK gombra.Name the project "WadExample" and click Ok.
  3. Válassza a feldolgozó szerepkör lehetőséget, majd kattintson az OK gombra.Select Worker Role and click Ok. Ekkor létrejön a projekt.The project will be created.
  4. A megoldáskezelő kattintson duplán a WorkerRole1 tulajdonságok fájlra.In Solution Explorer, double-click the WorkerRole1 properties file.
  5. A konfiguráció lapon szüntesse meg a diagnosztika engedélyezését a diagnosztika 1,0 (Azure SDK 2,4 és korábbi verziók) letiltásához.In the Configuration tab, un-check Enable Diagnostics to disable Diagnostics 1.0 (Azure SDK 2.4 and earlier).
  6. Hozza létre a megoldását annak ellenőrzéséhez, hogy nincsenek-e hibák.Build your solution to verify that you have no errors.

2. lépés: a kód eszközeStep 2: Instrument your code

Cserélje le a WorkerRole. cs fájl tartalmát a következő kódra.Replace the contents of WorkerRole.cs with the following code. A 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.The class SampleEventSourceWriter, inherited from the EventSource Class, implements four logging methods: SendEnums, MessageMethod, SetOther and HighFreq. A writeevent metódusnak metódus első paramétere a megfelelő esemény azonosítóját határozza meg.The first parameter to the WriteEvent method defines the ID for the respective event. A Run metódus egy végtelen hurkot valósít meg, amely minden egyes, a SampleEventSourceWriter osztályban implementált naplózási módszert meghívja 10 másodpercenként.The Run method implements an infinite loop that calls each of the logging methods implemented in the SampleEventSourceWriter class every 10 seconds.

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éseStep 3: Deploy your Worker Role

Figyelmeztetés

Ha egy meglévő szerepkörhöz engedélyezi a diagnosztikát, a már beállított kiterjesztések le lesznek tiltva a csomag telepítésekor.When you enable diagnostics for an existing role, any extensions that you have already set are disabled when the package is deployed. Ezek a következők:These include:

  • Microsoft monitoring Agent diagnosztikaMicrosoft Monitoring Agent Diagnostics
  • Microsoft Azure biztonsági monitorozásMicrosoft Azure Security Monitoring
  • Microsoft AntimalwareMicrosoft Antimalware
  • Microsoft Monitoring AgentMicrosoft Monitoring Agent
  • Microsoft Service Profiler-ügynökMicrosoft Service Profiler Agent
  • Windows Azure tartományi bővítményWindows Azure Domain Extension
  • Windows Azure Diagnostics bővítményWindows Azure Diagnostics Extension
  • Windows Azure Távoli asztal bővítményWindows Azure Remote Desktop Extension
  • Windows Azure log CollectorWindows Azure Log Collector

A bővítmények a frissített szerepkör üzembe helyezése után a Azure Portal vagy a PowerShell segítségével állíthatók alaphelyzetbe.You can reset your extensions via the Azure portal or PowerShell after you deploy the updated role.

  1. Telepítse a feldolgozói szerepkört az Azure-ba a Visual studióból, és válassza ki a WadExample projektet a megoldáskezelő majd tegye közzé a Build menüből.Deploy your worker role to Azure from within Visual Studio by selecting the WadExample project in the Solution Explorer then Publish from the Build menu.
  2. Válassza ki az előfizetését.Choose your subscription.
  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.In the Microsoft Azure Publish Settings dialog, select Create New….
  4. A felhőalapú szolgáltatás és a Storage-fió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.In the Create Cloud Service and Storage Account dialog, enter a Name (for example, "WadExample") and select a region or affinity group.
  5. Állítsa be a környezetet átmeneti állapotba.Set the Environment to Staging.
  6. Módosítsa a megfelelő beállításokat , és kattintson a Közzététel gombra.Modify any other Settings as appropriate and click Publish.
  7. Az üzembe helyezés befejezése után ellenőrizze a Azure Portal, hogy a felhőalapú szolgáltatás fut -e.After deployment has completed, verify in the Azure portal that your cloud service is in a Running state.

4. lépés: a diagnosztika konfigurációs fájljának létrehozása és a bővítmény telepítéseStep 4: Create your Diagnostics configuration file and install the extension

  1. Töltse le a nyilvános konfigurációs fájl sémájának definícióját a következő PowerShell-parancs végrehajtásával:Download the public configuration file schema definition by executing the following PowerShell command:

    (Get-AzureServiceAvailableExtension -ExtensionName 'PaaSDiagnostics' -ProviderNamespace 'Microsoft.Azure.Diagnostics').PublicConfigurationSchema | Out-File -Encoding utf8 -FilePath 'WadConfig.xsd'
    
  2. Vegyen fel egy XML-fájlt a WorkerRole1 -projektbe úgy, hogy a jobb gombbal a WorkerRole1 projektre kattint, és kiválasztja az -> új elem hozzáadása lehetőséget.Add an XML file to your WorkerRole1 project by right-clicking on the WorkerRole1 project and select Add -> New Item… -> Visual C# elemek -> Adatkezelés -> XML-fájl. -> Visual C# items -> Data -> XML File. Nevezze el a következő fájlt: "WadExample.xml".Name the file "WadExample.xml".

    CloudServices_diag_add_xml

  3. Társítsa a WadConfig. XSD fájlt a konfigurációs fájllal.Associate the WadConfig.xsd with the configuration file. Győződjön meg arról, hogy az WadExample.xml szerkesztő ablak az aktív ablak.Make sure the WadExample.xml editor window is the active window. Nyomja le az F4 billentyűt a Tulajdonságok ablak megnyitásához.Press F4 to open the Properties window. Kattintson a sémák tulajdonságra a Tulajdonságok ablakban.Click the Schemas property in the Properties window. Kattintson a . ..Click the a sémák tulajdonságban.in the Schemas property. Kattintson a Hozzáadás...Click the Add… gombra, és navigáljon arra a helyre, ahová az XSD-fájlt mentette, majd válassza ki a WadConfig. XSD fájlt.button and navigate to the location where you saved the XSD file and select the file WadConfig.xsd. Kattintson az OK gombra.Click OK.

  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.Replace the contents of the WadExample.xml configuration file with the following XML and save the file. Ez a konfigurációs fájl egy pár teljesítményszámlálókat határoz meg a gyűjtéshez: egyet a CPU-használathoz, egyet pedig a memória kihasználtságához.This configuration file defines a couple performance counters to collect: one for CPU utilization and one for memory utilization. Ezután a konfiguráció a SampleEventSourceWriter osztályban található metódusoknak megfelelő négy eseményt határozza meg.Then the configuration defines the four events corresponding to the methods in the SampleEventSourceWriter class.

<?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örreStep 5: Install Diagnostics on your Worker Role

A webes vagy feldolgozói szerepkör diagnosztika szolgáltatásának kezelésére szolgáló PowerShell-parancsmagok a következők: set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension és Remove-AzureServiceDiagnosticsExtension.The PowerShell cmdlets for managing Diagnostics on a web or worker role are: Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension, and Remove-AzureServiceDiagnosticsExtension.

  1. Nyissa meg Azure PowerShell.Open Azure PowerShell.
  2. Futtassa a parancsfájlt a diagnosztika telepítéséhez a feldolgozói szerepkörön (cserélje le a StorageAccountKey -t a wadexample Storage-fiókja kulcsára, és config_path a WadExample.xml -fájl elérési útját):Execute the script to install Diagnostics on your worker role (replace StorageAccountKey with the storage account key for your wadexample storage account and config_path with the path to the WadExample.xml file):
$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: Tekintse meg a telemetria adataitStep 6: Look at your telemetry data

A Visual Studio Server Explorerben navigáljon a wadexample Storage-fiókhoz.In the Visual Studio Server Explorer, navigate to the wadexample storage account. Miután a Cloud Service öt (5) percet futott, látnia kell a WADEnumsTable, a WADHighFreqTable, a WADMessageTable, a WADPerformanceCountersTable és a WADSetOtherTable táblákat.After the cloud service has been running about five (5) minutes, you should see the tables WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable and WADSetOtherTable. Kattintson duplán az egyik táblázatra a gyűjtött telemetria megtekintéséhez.Double-click one of the tables to view the telemetry that has been collected.

CloudServices_diag_tables

Konfigurációs fájl sémájaConfiguration File Schema

A diagnosztikai konfigurációs fájl határozza meg azokat az értékeket, amelyeket a rendszer a diagnosztika ügynök indításakor a diagnosztikai konfigurációs beállítások inicializálásához használ.The Diagnostics configuration file defines values that are used to initialize diagnostic configuration settings when the diagnostics agent starts. Tekintse meg az érvényes értékeket és példákat a legújabb séma-referenciával .See the latest schema reference for valid values and examples.

HibaelhárításTroubleshooting

Ha problémája van, tekintse meg a gyakori problémákkal kapcsolatos segítségért Azure Diagnostics hibaelhárítással foglalkozó témakört.If you have trouble, see Troubleshooting Azure Diagnostics for help with common problems.

Következő lépésekNext Steps

Tekintse meg a kapcsolódó Azure virtuális gépek diagnosztikai cikkeinek listáját a gyűjtött adatok módosításához, a problémák elhárításához, illetve a diagnosztika általános megismeréséhez.See a list of related Azure virtual-machine diagnostic articles to change the data you are collecting, troubleshoot problems or learn more about diagnostics in general.