Verwenden der Konfigurationsdatei für die Azure-Diagnose

Letzte Aktualisierung: November 2015

Sie sammeln Diagnosedaten, indem Sie das Diagnosemodul in das Dienstmodell importieren und dann die Datenquellen konfigurieren, aus denen Diagnosedaten gesammelt werden. Zur Sammlung von Diagnosedaten müssen Datenquellen zur Konfiguration des Diagnosemonitors hinzugefügt werden. Sie können den Diagnosemonitor zwar programmgesteuert konfigurieren (gilt für Azure SDK 2.4 und niedriger), aber mit dem Windows Azure SDK haben Sie auch die Möglichkeit, die Diagnose stattdessen mit einer XML-Konfigurationsdatei ("diagnostics.wadcfg") zu konfigurieren. Diese Methode hat viele Vorteile gegenüber dem Schreiben von Code:

  1. Die Diagnose beginnt, bevor die OnStart-Methode ausgeführt wird, sodass Fehler in den Startaufgaben abgefangen und protokolliert werden können.

  2. Alle Änderungen, die an der Konfiguration zur Laufzeit vorgenommen werden, bleiben nach einem Neustart bestehen.

  3. Bei Änderungen an der Diagnosekonfiguration ist es nicht notwendig, den Code neu zu erstellen.

  4. Sie können den Diagnosemonitor mit einer bestimmten Konfiguration automatisch starten, ohne dass zusätzlicher Code erforderlich ist (der ggf. eine Ausnahme verursacht, die den Start der Rolle verhindert).

Das Standardverhalten der Diagnose sieht vor, dass Infrastruktur- und Ablaufverfolgungsprotokolle gesammelt und keine Daten an den Speicher übertragen werden. Wenn neben den Standarddaten weitere Daten gesammelt werden sollen, müssen Sie den Diagnosemonitor entsprechend konfigurieren.

In diesem Thema wird das Erstellen der XML-Konfigurationsdatei "diagnostics.wadcfg" behandelt. Weitere Informationen zum Gesamtprozess der Konfiguration von Diagnosedatenquellen in der Anwendung, Beibehaltung von Diagnosedaten im Speicher und Anzeige dieser Daten im Speicher finden Sie unter Aktivieren der Diagnose in Windows Azure.

In der folgenden Liste sind die Speicherorte der Diagnosekonfigurationsdatei für die verschiedenen Rollentypen aufgeführt:

  • Für Workerrollen befindet sich die Konfigurationsdatei im Stammverzeichnis der Rolle.

  • Für Webrollen befindet sich die Konfigurationsdatei im Verzeichnis "bin" unter dem Stammverzeichnis der Rolle.

Wenn die Konfigurationsdatei beim Import des Diagnosemoduls in einem dieser Speicherorte vorhanden ist, werden die Einstellungen im Diagnosemonitor mithilfe der Konfigurationsdatei anstelle der Standardeinstellungen konfiguriert.

Die Konfigurationsdatei "diagnostics.wadcfg" ist ein XML-Dokument, das dem Schema unter %ProgramFiles%\Microsoft SDKs\Windows Azure\<SDK>\<VersionNumber>\schemas\DiagnosticsConfig201010.xsd entspricht, wobei <SDK> das verwendete Entwickler-SDK und <VersionNumber> die Version ist. Weitere Informationen zum Schema für diese XML-Datei finden Sie unter Azure-Diagnosekonfigurationsschema.

Das folgende Beispiel zeigt ein Beispiel für die Konfigurationsdatei "diagnostics.wadcfg". In dieser Konfigurationsdatei werden alle Arten von Diagnoseinformationen gesammelt. Stellen Sie sicher, dass Sie die Datenquellen entfernen, die nicht in der Anwendung erfasst werden sollen.

<?xml version="1.0" encoding="utf-8" ?>
<DiagnosticMonitorConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"
      configurationChangePollInterval="PT1M"
      overallQuotaInMB="4096">

  <DiagnosticInfrastructureLogs bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M" />

  <Logs bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M" />

  <Directories bufferQuotaInMB="0"
     scheduledTransferPeriod="PT30M">  
    <!-- FailedRequestLogs and IISLogs are only relevant to Web roles -->
    <CrashDumps container="wad-crash-dumps" directoryQuotaInMB="0" />
    <FailedRequestLogs container="wad-frq" directoryQuotaInMB="0" />
    <IISLogs container="wad-iis" directoryQuotaInMB="0" />
    <DataSources>
      <DirectoryConfiguration container="diagnostics-custom-logs" directoryQuotaInMB="1024">
        <LocalResource name="MyCustomLogs" relativePath="."/>
      </DirectoryConfiguration>     
    </DataSources>
  </Directories>

  <PerformanceCounters bufferQuotaInMB="0" scheduledTransferPeriod="PT30M">
    <PerformanceCounterConfiguration counterSpecifier="\Memory\Available Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT30S" />
    <!-- These three elements are only relevant to Web roles -->
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\% Processor Time" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\Private Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\Thread Count" sampleRate="PT30S" />
    <!-- These three elements are only relevant to Worker roles -->
    <!-- <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\% Processor Time" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\Private Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\Thread Count" sampleRate="PT30S" /> -->
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Interop(_Global_)\# of marshalling" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Loading(_Global_)\% Time Loading" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR LocksAndThreads(_Global_)\Contention Rate / sec" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Memory(_Global_)\# Bytes in all Heaps" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Networking(_Global_)\Connections Established" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Remoting(_Global_)\Remote Calls/sec" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Jit(_Global_)\% Time in Jit" sampleRate="PT30S" />
  </PerformanceCounters>

  <WindowsEventLog bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M">
    <DataSource name="Application!*" />
    <DataSource name="System!*" />
  </WindowsEventLog>

</DiagnosticMonitorConfiguration>

Im Folgenden finden Sie eine Übersicht über die XML-Elemente, die zum Konfigurieren der Diagnosedatenquellen verwendet werden:

  • DiagnosticMonitorConfiguration – Enthält die Definitionen für die Gruppe der festen Standarddatenpuffer für Protokollierungs- und Diagnoseinformationen. Weitere Informationen finden Sie unter DiagnosticMonitorConfiguration.

  • DiagnosticInfrastructureLogs – Enthält die Definitionen für die Größe des Datenpuffers und die Ebene und Häufigkeit der Datenübertragung für Diagnoseinfrastrukturprotokolle. Weitere Informationen finden Sie unter DiagnosticInfrastructureLogs.

  • Protokolle – Enthält die Definitionen für die Größe des Datenpuffers und die Ebene und Häufigkeit der Datenübertragung für die grundlegenden Windows Azure-Protokolle. Weitere Informationen finden Sie unter Logs.

  • Verzeichnisse – Enthält die Definitionen für den Pfad, die Größe des Datenpuffers und die Ebene und Häufigkeit der Datenübertragung für die von Ihnen definierten dateibasierten Protokolle. Dieses Element enthält Definitionen für sowohl die speziellen Verzeichnisse ("CrashDumps", "FailedRequestLogs" und "IISLogs") als auch für die von Ihnen erstellten Verzeichnisse ("DataSources"). Weitere Informationen finden Sie unter Directories.

  • PerformanceCounters – Enthält die Definitionen für die Leistungsindikatorkonfiguration, die Größe des Datenpuffers und die Ebene und Häufigkeit der Übertragung von Leistungsindikatordaten. Weitere Informationen finden Sie unter PerformanceCounters.

    noteHinweis
    Wenn Sie zur Installation eines benutzerdefinierten Leistungsindikators eine Startaufgabe verwenden, können Sie die Leistungsindikatordefinition nicht in die Konfigurationsdatei einfügen, da der Diagnosemonitor versucht, den Leistungsindikator zu verwenden, bevor Sie ihn erstellen.

  • WindowsEventLog – Enthält die Definitionen für das Protokoll, die Größe des Datenpuffers und die Ebene und Häufigkeit der Datenübertragung für die grundlegenden Azure-Protokolle. Weitere Informationen finden Sie unter WindowsEventLog.

Anzeigen: