Povolení Azure Diagnostics v Azure Cloud Services (Classic)
Důležité
Cloud Services (classic) je teď pro nové zákazníky zastaralý a bude vyřazen 31. srpna 2024 pro všechny zákazníky. Nová nasazení by měla používat nový model nasazení Azure Resource Manager založený na Azure Cloud Services (rozšířená podpora).
Základní informace o Azure Diagnostics najdete v přehledu Azure Diagnostics.
Povolení diagnostiky v roli pracovního procesu
Tento názorný postup popisuje, jak implementovat roli pracovního procesu Azure, která generuje telemetrická data pomocí třídy .NET EventSource. Azure Diagnostics slouží ke shromažďování telemetrických dat a jejich ukládání do účtu úložiště Azure. Při vytváření role pracovního procesu Visual Studio automaticky povolí diagnostiku 1.0 jako součást řešení v sadách Azure SDK pro .NET 2.4 a starší. Následující pokyny popisují proces vytvoření role pracovního procesu, zakázání diagnostiky 1.0 z řešení a nasazení diagnostiky 1.2 nebo 1.3 do role pracovního procesu.
Požadavky
Tento článek předpokládá, že máte předplatné Azure a používáte Sadu Visual Studio se sadou Azure SDK. Pokud nemáte předplatné Azure, můžete si zaregistrovat bezplatnou zkušební verzi. Nezapomeňte nainstalovat a nakonfigurovat Azure PowerShell verze 0.8.7 nebo novější.
Krok 1: Vytvoření role pracovního procesu
- Spusťte Visual Studio.
- Vytvořte projekt cloudové služby Azure ze šablony Cloud , která cílí na .NET Framework 4.5. Pojmenujte projekt WadExample a klikněte na OK.
- Vyberte Role pracovního procesu a klikněte na OK. Projekt se vytvoří.
- V Průzkumník řešení poklikejte na soubor vlastností WorkerRole1.
- Na kartě Konfigurace zrušte zaškrtnutí políčka Povolit diagnostiku a zakažte Tak diagnostiku 1.0 (Azure SDK 2.4 a starší).
- Sestavte řešení a ověřte, že nedošlo k žádným chybám.
Krok 2: Instrumentace kódu
Nahraďte obsah souboru WorkerRole.cs následujícím kódem. Třída SampleEventSourceWriter, zděděná z Třídy EventSource, implementuje čtyři metody protokolování: SendEnums, MessageMethod, SetOther a HighFreq. První parametr Metody WriteEvent definuje ID příslušné události. Run Metoda implementuje nekonečnou smyčku, která volá každou z metod protokolování implementovaných v SampleEventSourceWriter třídy každých 10 sekund.
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();
}
}
}
Krok 3: Nasazení role pracovního procesu
Upozornění
Když povolíte diagnostiku pro existující roli, všechna rozšíření, která jste už nastavili, se při nasazení balíčku deaktivují. Tady jsou některé z nich:
- Diagnostika agenta Microsoft Monitoring Agent
- Microsoft Azure Security Monitoring
- Antimalware od Microsoftu
- Microsoft Monitoring Agent
- Microsoft Service Profiler Agent
- Rozšíření domény Windows Azure
- Rozšíření Windows Azure Diagnostics
- Rozšíření Windows Azure Remote Desktop
- Kolektor protokolů Windows Azure
Po nasazení aktualizované role můžete rozšíření resetovat prostřednictvím Azure Portal nebo PowerShellu.
- Nasaďte roli pracovního procesu do Azure ze sady Visual Studio tak, že v Průzkumník řešení v nabídce Sestavení vyberete projekt WadExample a pak vyberete Publikovat.
- Zvolte vaše předplatné.
- V dialogovém okně Nastavení publikování Microsoft Azure vyberte Vytvořit nový....
- V dialogovém okně Vytvořit cloudovou službu a účet úložiště zadejte Název (například WadExample) a vyberte oblast nebo skupinu vztahů.
- Nastavte Prostředí na Pracovní.
- Podle potřeby upravte všechna ostatní nastavení a klikněte na Publikovat.
- Po dokončení nasazení ověřte v Azure Portal, že je vaše cloudová služba ve spuštěném stavu.
Krok 4: Vytvoření konfiguračního souboru diagnostiky a instalace rozšíření
Stáhněte definici schématu veřejného konfiguračního souboru spuštěním následujícího příkazu PowerShellu:
(Get-AzureServiceAvailableExtension -ExtensionName 'PaaSDiagnostics' -ProviderNamespace 'Microsoft.Azure.Diagnostics').PublicConfigurationSchema | Out-File -Encoding utf8 -FilePath 'WadConfig.xsd'
Do projektu WorkerRole1 přidejte soubor XML tak, že kliknete pravým tlačítkem na projekt WorkerRole1 a vyberete Přidat ->Nová položka... ->Visual C# položky ->Data ->XML Soubor. Pojmenujte soubor "WadExample.xml".
Přidružte Soubor WadConfig.xsd ke konfiguračnímu souboru. Ujistěte se, že je okno editoru WadExample.xml aktivní. Stisknutím klávesy F4 otevřete okno Vlastnosti . V okně Vlastnosti klikněte na vlastnost Schémata. Klikněte na ... ve vlastnosti Schémata . Klikněte na tlačítko Přidat... a přejděte do umístění, kam jste uložili soubor XSD, a vyberte soubor WadConfig.xsd. Klikněte na OK.
Nahraďte obsah konfiguračního souboru WadExample.xml následujícím kódem XML a soubor uložte. Tento konfigurační soubor definuje několik čítačů výkonu, které se mají shromažďovat: jeden pro využití procesoru a jeden pro využití paměti. Pak konfigurace definuje čtyři události odpovídající metody v SampleEventSourceWriter třídy.
<?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>
Krok 5: Instalace diagnostiky do role pracovního procesu
Rutiny PowerShellu pro správu diagnostiky na webu nebo roli pracovního procesu jsou: Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension a Remove-AzureServiceDiagnosticsExtension.
- Otevřete Azure PowerShell.
- Spuštěním skriptu nainstalujte diagnostiku do role pracovního procesu (nahraďte StorageAccountKey klíčem účtu úložiště pro váš účet úložiště wadexample a config_path cestou k souboruWadExample.xml ):
$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
Krok 6: Zobrazení telemetrických dat
V Průzkumníku serveru sady Visual Studio přejděte k účtu úložiště wadexample. Po spuštění cloudové služby asi pět (5) minut byste měli vidět tabulky WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable a WADSetOtherTable. Poklikáním na některou z tabulek zobrazíte shromážděnou telemetrii.
Schéma konfiguračního souboru
Konfigurační soubor diagnostiky definuje hodnoty, které se použijí k inicializaci nastavení konfigurace diagnostiky při spuštění agenta diagnostiky. Platné hodnoty a příklady najdete v nejnovějších referenčních informacích ke schématu .
Řešení potíží
Pokud máte potíže, podívejte se na článek Řešení potíží s Azure Diagnostics, kde najdete pomoc s běžnými problémy.
Další kroky
Projděte si seznam souvisejících článků o diagnostice virtuálních počítačů Azure , kde můžete změnit data, která shromažďujete, řešit problémy nebo získat obecné informace o diagnostice.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro