Azure Diagnostics in azure inschakelen Cloud ServicesEnabling Azure Diagnostics in Azure Cloud Services

Zie Azure Diagnostics overzicht voor een achtergrond op Azure Diagnostics.See Azure Diagnostics Overview for a background on Azure Diagnostics.

Diagnostische gegevens inschakelen in een worker-rolHow to Enable Diagnostics in a Worker Role

In dit scenario wordt beschreven hoe u een Azure worker-rol implementeert die telemetriegegevens verzendt met behulp van de .NET Event source-klasse.This walkthrough describes how to implement an Azure worker role that emits telemetry data using the .NET EventSource class. Azure Diagnostics wordt gebruikt om de telemetriegegevens te verzamelen en op te slaan in een Azure-opslag account.Azure Diagnostics is used to collect the telemetry data and store it in an Azure storage account. Wanneer u een werknemersrol maakt, schakelt Visual Studio automatisch diagnostische gegevens van 1,0 in als onderdeel van de oplossing in azure Sdk's voor .NET 2,4 en eerdere versies.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. De volgende instructies beschrijven het proces voor het maken van de rol van werk nemers, het uitschakelen van diagnose 1,0 van de oplossing en het implementeren van diagnostische gegevens 1,2 of 1,3 voor uw werknemersrol.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.

VereistenPrerequisites

In dit artikel wordt ervan uitgegaan dat u een Azure-abonnement hebt en Visual Studio gebruikt met de Azure SDK.This article assumes you have an Azure subscription and are using Visual Studio with the Azure SDK. Als u geen Azure-abonnement hebt, kunt u zich aanmelden voor de gratis proef versie.If you do not have an Azure subscription, you can sign up for the Free Trial. Zorg ervoor dat u Azure PowerShell versie 0.8.7 of hoger installeert en configureert.Make sure to Install and configure Azure PowerShell version 0.8.7 or later.

Stap 1: een werk rollen makenStep 1: Create a Worker Role

  1. Start Visual Studio.Launch Visual Studio.
  2. Maak een Azure-Cloud service project op basis van de Cloud sjabloon die gericht is op .NET Framework 4,5.Create an Azure Cloud Service project from the Cloud template that targets .NET Framework 4.5. Geef het project de naam ' WadExample ' en klik op OK.Name the project "WadExample" and click Ok.
  3. Selecteer werk rollen en klik op OK.Select Worker Role and click Ok. Het project wordt gemaakt.The project will be created.
  4. Dubbel klik in Solution Explorerop het eigenschappen bestand WorkerRole1 .In Solution Explorer, double-click the WorkerRole1 properties file.
  5. Schakel op het tabblad configuratie de optie Diagnostische gegevens inschakelen uit om diagnostische gegevens te uitschakelen 1,0 (Azure SDK 2,4 en eerder).In the Configuration tab, un-check Enable Diagnostics to disable Diagnostics 1.0 (Azure SDK 2.4 and earlier).
  6. Bouw uw oplossing om te controleren of er geen fouten zijn.Build your solution to verify that you have no errors.

Stap 2: uw code instrumenterenStep 2: Instrument your code

Vervang de inhoud van WorkerRole.cs door de volgende code.Replace the contents of WorkerRole.cs with the following code. De klasse SampleEventSourceWriter, overgenomen van de klasse Event source, implementeert vier logboek methoden: SendEnums, MessageMethod, SetOther en HighFreq.The class SampleEventSourceWriter, inherited from the EventSource Class, implements four logging methods: SendEnums, MessageMethod, SetOther and HighFreq. De eerste para meter voor de methode etw definieert de id voor de betreffende gebeurtenis.The first parameter to the WriteEvent method defines the ID for the respective event. De methode Run implementeert een oneindige lus die elke 10 seconden een van de logboek registratie methoden aanroept die in de SampleEventSourceWriter -klasse zijn geïmplementeerd.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();
        }
    }
}

Stap 3: uw werk rollen implementerenStep 3: Deploy your Worker Role

Waarschuwing

Wanneer u Diagnostische gegevens inschakelt voor een bestaande rol, worden alle uitbrei dingen die u al hebt ingesteld, uitgeschakeld wanneer het pakket wordt geïmplementeerd.When you enable diagnostics for an existing role, any extensions that you have already set are disabled when the package is deployed. Deze omvatten:These include:

  • Diagnostische gegevens van micro soft Monitoring AgentMicrosoft Monitoring Agent Diagnostics
  • Beveiligings bewaking Microsoft AzureMicrosoft Azure Security Monitoring
  • Microsoft AntimalwareMicrosoft Antimalware
  • Microsoft Monitoring AgentMicrosoft Monitoring Agent
  • Micro soft Service Profiler-agentMicrosoft Service Profiler Agent
  • Windows Azure-domein extensieWindows Azure Domain Extension
  • Extensie voor Windows-Azure DiagnosticsWindows Azure Diagnostics Extension
  • Uitbrei ding voor Windows Azure Extern bureaubladWindows Azure Remote Desktop Extension
  • Windows Azure-logboek verzamelaarWindows Azure Log Collector

Nadat u de bijgewerkte rol hebt geïmplementeerd, kunt u de uitbrei dingen opnieuw instellen via de Azure Portal of Power shell.You can reset your extensions via the Azure portal or PowerShell after you deploy the updated role.

  1. Implementeer uw werknemersrol in azure vanuit Visual Studio door het project WadExample te selecteren in de Solution Explorer klik vervolgens op publiceren in het menu 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. Kies uw abonnement.Choose your subscription.
  3. Selecteer in het dialoog venster Microsoft Azure publicatie-instellingen de optie nieuwe maken....In the Microsoft Azure Publish Settings dialog, select Create New….
  4. Voer in het dialoog venster Cloud service en opslag account maken een naam in (bijvoorbeeld ' WadExample ') en selecteer een regio of affiniteits groep.In the Create Cloud Service and Storage Account dialog, enter a Name (for example, "WadExample") and select a region or affinity group.
  5. Stel de omgeving in op staging.Set the Environment to Staging.
  6. Wijzig indien nodig de andere instellingen en klik op publiceren.Modify any other Settings as appropriate and click Publish.
  7. Nadat de implementatie is voltooid, controleert u in het Azure Portal dat de Cloud service wordt uitgevoerd .After deployment has completed, verify in the Azure portal that your cloud service is in a Running state.

Stap 4: het diagnostische configuratie bestand maken en de uitbrei ding installerenStep 4: Create your Diagnostics configuration file and install the extension

  1. Down load de schema definitie van het open bare configuratie bestand door de volgende Power shell-opdracht uit te voeren: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. Voeg een XML-bestand toe aan uw WorkerRole1 -project door met de rechter muisknop op het WorkerRole1 -project te klikken en nieuw item toevoegente selecteren -> ...Add an XML file to your WorkerRole1 project by right-clicking on the WorkerRole1 project and select Add -> New Item… -> Visual C#-items -> Gegevens -> XML-bestand. -> Visual C# items -> Data -> XML File. Geef het bestand de naam WadExample.xml.Name the file "WadExample.xml".

    CloudServices_diag_add_xml

  3. Koppel de WadConfig. XSD aan het configuratie bestand.Associate the WadConfig.xsd with the configuration file. Zorg ervoor dat het venster WadExample.xml editor het actieve venster is.Make sure the WadExample.xml editor window is the active window. Druk op F4 om het venster Eigenschappen te openen.Press F4 to open the Properties window. Klik op de eigenschap schemas in het venster Eigenschappen .Click the Schemas property in the Properties window. Klik op de .. .Click the in de eigenschap schemas .in the Schemas property. Klik op de knop Toevoegen...Click the Add… en navigeert u naar de locatie waar u het XSD-bestand hebt opgeslagen en selecteert u het bestand WadConfig. XSD.button and navigate to the location where you saved the XSD file and select the file WadConfig.xsd. Klik op OK.Click OK.

  4. Vervang de inhoud van het WadExample.xml configuratie bestand door de volgende XML en sla het bestand op.Replace the contents of the WadExample.xml configuration file with the following XML and save the file. Dit configuratie bestand definieert een aantal prestatie meter items die moeten worden verzameld: één voor CPU-gebruik en één voor geheugen gebruik.This configuration file defines a couple performance counters to collect: one for CPU utilization and one for memory utilization. Vervolgens definieert de configuratie de vier gebeurtenissen die overeenkomen met de methoden in de SampleEventSourceWriter-klasse.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>

Stap 5: diagnostische gegevens installeren voor uw WerknemersrolStep 5: Install Diagnostics on your Worker Role

De Power shell-cmdlets voor het beheren van diagnostische gegevens voor een web-of worker-rol zijn: set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension en Remove-AzureServiceDiagnosticsExtension.The PowerShell cmdlets for managing Diagnostics on a web or worker role are: Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension, and Remove-AzureServiceDiagnosticsExtension.

  1. Open Azure PowerShell.Open Azure PowerShell.
  2. Voer het script uit om diagnostische gegevens te installeren voor uw werknemersrol (Vervang StorageAccountKey door de sleutel van het opslag account voor uw wadexample-opslag account en config_path met het pad naar het WadExample.xml bestand):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

Stap 6: uw telemetrie-gegevens bekijkenStep 6: Look at your telemetry data

Ga in Visual Studio Server Explorernaar het opslag account wadexample.In the Visual Studio Server Explorer, navigate to the wadexample storage account. Nadat de Cloud service ongeveer vijf (5) minuten is uitgevoerd, ziet u de tabellen WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable en WADSetOtherTable.After the cloud service has been running about five (5) minutes, you should see the tables WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable and WADSetOtherTable. Dubbel klik op een van de tabellen om de telemetrie weer te geven die is verzameld.Double-click one of the tables to view the telemetry that has been collected.

CloudServices_diag_tables

Schema van configuratie bestandConfiguration File Schema

Het configuratie bestand voor diagnostische gegevens definieert waarden die worden gebruikt voor het initialiseren van diagnostische configuratie-instellingen wanneer de diagnostische agent wordt gestart.The Diagnostics configuration file defines values that are used to initialize diagnostic configuration settings when the diagnostics agent starts. Zie de meest recente schema referentie voor geldige waarden en voor beelden.See the latest schema reference for valid values and examples.

Problemen oplossenTroubleshooting

Zie probleem oplossing Azure Diagnostics voor hulp bij veelvoorkomende problemen als u problemen ondervindt.If you have trouble, see Troubleshooting Azure Diagnostics for help with common problems.

Volgende stappenNext Steps

Bekijk een lijst met verwante artikelen over diagnostische gegevens van virtuele machines van Azure voor het wijzigen van de door u verzamelde informatie, het oplossen van problemen of meer informatie over diagnostiek in het algemeen.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.