Aktivera Azure-diagnostik i Azure Cloud ServicesEnabling Azure Diagnostics in Azure Cloud Services

Se Azure-diagnostik översikt för en bakgrund på Azure-diagnostik.See Azure Diagnostics Overview for a background on Azure Diagnostics.

Så här aktiverar du diagnostik i en arbets rollHow to Enable Diagnostics in a Worker Role

Den här genom gången beskriver hur du implementerar en Azure Worker-roll som utvärderar telemetridata med hjälp av .NET EventSource-klassen.This walkthrough describes how to implement an Azure worker role that emits telemetry data using the .NET EventSource class. Azure-diagnostik används för att samla in telemetri data och lagra dem i ett Azure Storage-konto.Azure Diagnostics is used to collect the telemetry data and store it in an Azure storage account. När du skapar en arbets roll aktiverar Visual Studio automatiskt diagnostik 1,0 som en del av lösningen i Azure SDK: er för .NET 2,4 och tidigare.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. Följande anvisningar beskriver processen för att skapa arbets rollen, inaktivera diagnostik 1,0 från lösningen och distribuera diagnostik 1,2 eller 1,3 till din arbets roll.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.

FörutsättningarPrerequisites

Den här artikeln förutsätter att du har en Azure-prenumeration och använder Visual Studio med Azure SDK.This article assumes you have an Azure subscription and are using Visual Studio with the Azure SDK. Om du inte har någon Azure-prenumeration kan du registrera dig för den kostnads fria utvärderings versionen.If you do not have an Azure subscription, you can sign up for the Free Trial. Se till att Installera och konfigurera Azure PowerShell version 0.8.7 eller senare.Make sure to Install and configure Azure PowerShell version 0.8.7 or later.

Steg 1: Skapa en arbets rollStep 1: Create a Worker Role

  1. Starta Visual Studio.Launch Visual Studio.
  2. Skapa ett Azure Cloud Service- projekt från den moln mal len som är mål .NET Framework 4,5.Create an Azure Cloud Service project from the Cloud template that targets .NET Framework 4.5. Ge projektet namnet "WadExample" och klicka på OK.Name the project "WadExample" and click Ok.
  3. Välj arbets roll och klicka på OK.Select Worker Role and click Ok. Projektet kommer att skapas.The project will be created.
  4. I Solution Explorerdubbelklickar du på egenskaps filen WorkerRole1 .In Solution Explorer, double-click the WorkerRole1 properties file.
  5. Avmarkera Aktivera diagnostik på fliken konfiguration för att inaktivera diagnostik 1,0 (Azure SDK 2,4 och tidigare).In the Configuration tab, un-check Enable Diagnostics to disable Diagnostics 1.0 (Azure SDK 2.4 and earlier).
  6. Bygg din lösning för att kontrol lera att du inte har några fel.Build your solution to verify that you have no errors.

Steg 2: Instrumentera din kodStep 2: Instrument your code

Ersätt innehållet i WorkerRole.cs med följande kod.Replace the contents of WorkerRole.cs with the following code. Klassen SampleEventSourceWriter, som ärvts från EventSource-klassen, implementerar fyra loggnings metoder: SendEnums, MessageMethod, SetOther och HighFreq.The class SampleEventSourceWriter, inherited from the EventSource Class, implements four logging methods: SendEnums, MessageMethod, SetOther and HighFreq. Den första parametern till WriteEvent -metoden definierar ID: t för respektive händelse.The first parameter to the WriteEvent method defines the ID for the respective event. Metoden Run implementerar en oändlig loop som anropar var och en av de loggnings metoder som implementeras i SampleEventSourceWriter -klassen var 10: e sekund.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();
        }
    }
}

Steg 3: Distribuera din arbets rollStep 3: Deploy your Worker Role

Varning

När du aktiverar diagnostik för en befintlig roll inaktive ras alla tillägg som du redan har angett när paketet distribueras.When you enable diagnostics for an existing role, any extensions that you have already set are disabled when the package is deployed. Exempel på dessa är:These include:

  • Diagnostik för Microsoft Monitoring AgentMicrosoft Monitoring Agent Diagnostics
  • Microsoft Azure säkerhets övervakningMicrosoft Azure Security Monitoring
  • Microsoft AntimalwareMicrosoft Antimalware
  • Microsoft Monitoring AgentMicrosoft Monitoring Agent
  • Microsoft Service Profiler-agentMicrosoft Service Profiler Agent
  • Windows Azure-domännätverkWindows Azure Domain Extension
  • Windows Azure-diagnostik-tilläggWindows Azure Diagnostics Extension
  • Windows Azure fjärr skrivbords tilläggWindows Azure Remote Desktop Extension
  • Windows Azure logg insamlareWindows Azure Log Collector

Du kan återställa dina tillägg via Azure Portal eller PowerShell när du har distribuerat den uppdaterade rollen.You can reset your extensions via the Azure portal or PowerShell after you deploy the updated role.

  1. Distribuera din arbets roll till Azure inifrån Visual Studio genom att välja WadExample -projektet i Solution Explorer sedan publicera från menyn build .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älj din prenumeration.Choose your subscription.
  3. I dialog rutan Microsoft Azure publicerings inställningar väljer du Skapa ny. .In the Microsoft Azure Publish Settings dialog, select Create New….
  4. I dialog rutan skapa moln tjänst och lagrings konto anger du ett namn (till exempel "WadExample") och väljer en region eller tillhörighets grupp.In the Create Cloud Service and Storage Account dialog, enter a Name (for example, "WadExample") and select a region or affinity group.
  5. Konfigurera miljön för mellanlagring.Set the Environment to Staging.
  6. Ändra eventuella andra Inställningar efter behov och klicka på publicera.Modify any other Settings as appropriate and click Publish.
  7. När distributionen har slutförts kontrollerar du i Azure Portal att moln tjänsten är i ett Kör tillstånd.After deployment has completed, verify in the Azure portal that your cloud service is in a Running state.

Steg 4: Skapa en konfigurations fil för diagnostik och installera tilläggetStep 4: Create your Diagnostics configuration file and install the extension

  1. Hämta schema definitionen för den offentliga konfigurations filen genom att köra följande PowerShell-kommando: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. Lägg till en XML-fil till ditt WorkerRole1 -projekt genom att högerklicka på projektet WorkerRole1 och välja Lägg till -> nytt objekt...Add an XML file to your WorkerRole1 project by right-clicking on the WorkerRole1 project and select Add -> New Item… -> C# XML-filmed visuella -> objektdata -> . -> Visual C# items -> Data -> XML File. Ge filen namnet "WadExample. xml".Name the file "WadExample.xml".

    CloudServices_diag_add_xml

  3. Associera WadConfig. xsd med konfigurations filen.Associate the WadConfig.xsd with the configuration file. Kontrol lera att fönstret WadExample. XML-redigeraren är det aktiva fönstret.Make sure the WadExample.xml editor window is the active window. Tryck på F4 för att öppna fönstret Egenskaper .Press F4 to open the Properties window. Klicka på schema -egenskapen i fönstret Egenskaper .Click the Schemas property in the Properties window. Klicka på ...Click the i egenskapen schemas .in the Schemas property. Klicka på Lägg …Click the Add… för att gå till den plats där du sparade XSD-filen och välja filen WadConfig. xsd.button and navigate to the location where you saved the XSD file and select the file WadConfig.xsd. Klicka på OK.Click OK.

  4. Ersätt innehållet i konfigurations filen WadExample. xml med följande XML och spara filen.Replace the contents of the WadExample.xml configuration file with the following XML and save the file. Den här konfigurations filen definierar ett par prestanda räknare som ska samlas in: en för processor användning och en för minnes användning.This configuration file defines a couple performance counters to collect: one for CPU utilization and one for memory utilization. Sedan definierar konfigurationen de fyra händelser som motsvarar metoderna i SampleEventSourceWriter-klassen.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>

Steg 5: Installera diagnostik på din arbets rollStep 5: Install Diagnostics on your Worker Role

PowerShell-cmdletar för att hantera diagnostik på en webb-eller arbets roll är: Set-AzureServiceDiagnosticsExtension, get-AzureServiceDiagnosticsExtension och Remove-AzureServiceDiagnosticsExtension.The PowerShell cmdlets for managing Diagnostics on a web or worker role are: Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension, and Remove-AzureServiceDiagnosticsExtension.

  1. Öppna Azure PowerShell.Open Azure PowerShell.
  2. Kör skriptet för att installera diagnostik i arbets rollen (Ersätt StorageAccountKey med lagrings konto nyckeln för ditt wadexample-lagrings konto och config_path med sökvägen till wadexample. XML -filen):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

Steg 6: Titta på dina telemetridataStep 6: Look at your telemetry data

I Visual Studio- Server Explorernavigerar du till lagrings kontot för wadexample.In the Visual Studio Server Explorer, navigate to the wadexample storage account. När moln tjänsten har körts ungefär fem (5) minuter bör tabellerna WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable och WADSetOtherTablevisas.After the cloud service has been running about five (5) minutes, you should see the tables WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable and WADSetOtherTable. Dubbelklicka på en av tabellerna om du vill visa Telemetrin som har samlats in.Double-click one of the tables to view the telemetry that has been collected.

CloudServices_diag_tables

Konfigurations filens schemaConfiguration File Schema

Konfigurations filen för diagnostik definierar värden som används för att initiera konfigurations inställningar för diagnostik när diagnostik-agenten startar.The Diagnostics configuration file defines values that are used to initialize diagnostic configuration settings when the diagnostics agent starts. Se den senaste schema referensen för giltiga värden och exempel.See the latest schema reference for valid values and examples.

FelsökningTroubleshooting

Om du har problem kan du läsa fel sökning Azure-diagnostik för att få hjälp med vanliga problem.If you have trouble, see Troubleshooting Azure Diagnostics for help with common problems.

Nästa stegNext Steps

Se en lista över relaterade Azure Virtual-Machine-diagnostiska artiklar för att ändra de data som du samlar in, felsöka problem eller Lär dig mer om diagnostik i allmänhet.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.