Exportieren von Telemetriedaten aus Application Insights

Möchten Sie Ihre Telemetriedaten länger aufbewahren als von der standardmäßigen Beibehaltungsdauer vorgesehen? Oder möchten Sie sie auf eine spezielle Weise verarbeiten? Fortlaufender Export eignet sich perfekt für diesen Zweck. Die Ereignisse, die Sie im Application Insights-Portal sehen, können im JSON-Format in Azure-Speicher exportiert werden. Sie können Ihre Daten anschließend herunterladen und den Code schreiben, den Sie zu ihrer Verarbeitung benötigen.

Wichtig

Bevor Sie den fortlaufenden Export einrichten, sollten Sie folgende Alternativen zu dieser Vorgehensweise prüfen:

Nachdem Ihre Daten vom fortlaufenden Export in den Speicher kopiert wurden (wo sie beliebig lange bleiben können), sind sie für den üblichen Aufbewahrungszeitraum auch noch in Application Insights verfügbar.

Unterstützte Regionen

Der fortlaufende Export wird in den folgenden Regionen unterstützt:

  • Asien, Südosten
  • Kanada, Mitte
  • Indien, Mitte
  • Nordeuropa
  • UK, Süden
  • Australien (Osten)
  • Japan, Osten
  • Korea, Mitte
  • Frankreich, Mitte
  • Asien, Osten
  • USA (Westen)
  • USA (Mitte)
  • USA (Ost) 2
  • USA Süd Mitte
  • USA, Westen 2
  • Südafrika, Norden
  • USA Nord Mitte
  • Brasilien, Süden
  • Schweiz, Norden
  • Australien, Südosten
  • UK, Westen
  • Deutschland, Westen-Mitte
  • Schweiz, Westen
  • Australien, Mitte 2
  • VAE, Mitte
  • Brasilien, Südosten
  • Australien, Mitte
  • Vereinigte Arabische Emirate, Norden
  • Norwegen, Osten
  • Japan, Westen

Hinweis

Der fortlaufende Export funktioniert weiterhin für Anwendungen in den Regionen USA, Osten und Europa, Westen, wenn der Export vor dem 23. Februar 2021 konfiguriert wurde. Für Anwendungen in den Regionen USA, Osten oder Europa, Westen können keine neuen Regeln für den fortlaufenden Export konfiguriert werden, unabhängig davon, wann die Anwendung erstellt wurde.

Fortlaufender Export – erweiterte Speicherkonfiguration

Der fortlaufende Export unterstützt nicht die folgenden Azure Storage-Features oder -Konfigurationen:

Erstellen eines fortlaufenden Exports

Hinweis

Eine Anwendung kann nicht mehr als 3 TB Daten pro Tag exportieren. Wenn mehr als 3 TB pro Tag exportiert werden, wird der Export deaktiviert. Um ohne Beschränkung zu exportieren, verwenden Sie den auf Diagnoseeinstellungen basierenden Export.

  1. Öffnen Sie in der Application Insights-Ressource für Ihre App unter Konfigurieren rechts die Option Fortlaufender Export, und wählen Sie Hinzufügen aus.

  2. Wählen Sie die Telemetriedatentypen aus, die Sie exportieren möchten.

  3. Erstellen oder wählen Sie ein Azure Storage-Konto, in dem Sie die Daten speichern möchten. Weitere Informationen zu Preisoptionen für Speicher finden Sie auf der Seite mit den Preisen.

    Wählen Sie Hinzufügen>Exportziel>Speicherkonto aus. Erstellen Sie anschließend ein neues Speicherkonto oder wählen Sie ein vorhandenes aus.

    Warnung

    Der Speicherort wird standardmäßig auf die gleiche geografische Region festgelegt, in der sich auch Ihre Application Insights-Ressource befindet. Wenn Sie die Daten in einer anderen Region speichern, fallen möglicherweise Übertragungsgebühren an.

  4. Erstellen Sie einen Container im Speicher, oder wählen Sie einen aus.

Hinweis

Nach der Erstellung Ihres Exports werden neu erfasste Daten an Azure Blob Storage übertragen. Beim fortlaufenden Export werden nur neue Telemetriedaten übertragen, die nach der Aktivierung des fortlaufenden Exports erstellt oder erfasst werden. Alle Daten, die vor dem Aktivieren des fortlaufenden Exports vorhanden waren, werden nicht exportiert. Die Möglichkeit, zuvor erstellte Daten mithilfe des fortlaufenden Exports nachträglich zu exportieren wird nicht unterstützt.

Es kann etwa eine Stunde dauern, bis Daten im Speicher angezeigt werden.

Nachdem der erste Export abgeschlossen ist, finden Sie die folgende Struktur in Ihrem Blob Storage-Container. (Diese Struktur variiert je nachdem, welche Daten Sie sammeln.)

Name BESCHREIBUNG
Verfügbarkeit Liefert Berichtdaten zu Verfügbarkeitswebtests.
Event Von TrackEvent()generierte benutzerdefinierte Ereignisse.
Ausnahmen Melden Ausnahmen auf dem Server und im Browser.
Meldungen Gesendet von TrackTrace und über die Protokollierungsadapter.
Metriken Generiert durch Metrik-API-Aufrufe
PerformanceCounters Von Application Insights erfasste Leistungsindikatoren
Anforderungen Gesendet von TrackRequest. Die Standardmodule verwenden Anforderungen, um die auf dem Server gemessene Serverantwortzeit zu melden.

Fortlaufenden Export bearbeiten

Wählen Sie Fortlaufender Export und anschließend das zu bearbeitende Speicherkonto aus.

Beenden des fortlaufenden Exports

Wählen Sie zum Beenden des Exports die Option Deaktivieren aus. Wenn Sie wieder Aktivieren auswählen, wird der Export mit neuen Daten neu gestartet. Sie erhalten nicht die Daten, die im Portal eingegangen sind, während der Export deaktiviert war.

Um den Export dauerhaft zu beenden, löschen Sie ihn. Dabei werden Ihre Daten nicht aus dem Speicher gelöscht.

Wer darf einen Export ergänzen oder ändern?

Zum Ergänzen oder Ändern von Exporten benötigen Sie das Zugriffsrecht „Besitzer“, „Mitwirkender“ oder „Application Insights-Mitwirkender“. Weitere Informationen zu Rollen.

Welche Ereignisse werden abgerufen?

Bei den exportierten Daten handelt es sich um die Telemetrierohdaten, die Sie von Ihrer Anwendung empfangen – ergänzt durch Standortdaten von der Client-IP-Adresse.

Daten, die im Rahmen des Samplings verworfen wurden, werden nicht in die exportierten Daten aufgenommen.

Andere berechnete Metriken sind nicht enthalten. Wir exportieren z. B. nicht die durchschnittliche CPU-Auslastung, doch wir exportieren die rohen Telemetriedaten, anhand derer der Durchschnitt berechnet wird.

Die Daten umfassen außerdem die Ergebnisse von Verfügbarkeitswebtests, die Sie eingerichtet haben.

Hinweis

Wenn Ihre Anwendung große Datenmengen sendet, wird möglicherweise das Stichprobenfeature verwendet und nur ein Teil der generierten Telemetriedaten versendet. Erfahren Sie mehr über das Erstellen von Stichproben.

Untersuchen der Daten

Sie können den Speicher direkt im Portal überprüfen. Wählen Sie im Menü ganz links die Option Home aus. Wählen Sie oben, wo Azure-Dienste steht, Speicherkonten aus. Wählen Sie den Namen des Speicherkontos und auf der Seite Übersicht die OptionDienste->Blobs aus. Wählen Sie abschließend den Containernamen aus.

Um Azure Storage in Visual Studio zu überprüfen, wählen Sie Anzeigen>Cloud-Explorer aus. Wenn dieser Menübefehl nicht verfügbar ist, müssen Sie das Azure SDK installieren. Öffnen Sie das Dialogfeld Neues Projekt, erweitern Sie Visual C#/Cloud, und wählen Sie dann Microsoft Azure SDK für .NET abrufen aus.

Beim Öffnen Ihres Blobspeichers sehen Sie einen Container mit einer Gruppe von Blobdateien. Der URI der einzelnen Dateien wird vom Application Insights-Ressourcennamen, dem zugehörigen Instrumentierungsschlüssel sowie von Typ, Datum und Uhrzeit der Telemetriedaten abgeleitet. Der Ressourcenname enthält nur Kleinbuchstaben, und beim Instrumentierungsschlüssel werden Bindestriche entfernt.

Screenshot der Untersuchung des Blobspeichers mit einem geeigneten Tool.

Hinweis

Am 31. März 2025 wird der Support für die auf Instrumentierungsschlüsseln basierende Erfassung eingestellt. Die Erfassung von Instrumentierungsschlüsseln funktioniert zwar weiterhin, wir stellen jedoch keine Updates und keinen Support mehr für das Feature bereit. Wechseln Sie zu Verbindungszeichenfolgen, damit Sie neue Funktionen nutzen können.

Datum und Uhrzeit werden in UTC angegeben und entsprechen dem Zeitpunkt, an dem die Telemetriedaten im Speicher abgelegt wurden, nicht dem Zeitpunkt ihrer Erzeugung. Aus diesem Grund kann sich dieser, wenn Sie Code zum Herunterladen der Daten schreiben, linear durch die Daten bewegen.

Hier ist die Form des Pfads:

$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"

Hierbei gilt:

  • blobCreationTimeUtc ist die Uhrzeit, zu der das Blob im internen Stagingspeicher erstellt wurde.
  • blobDeliveryTimeUtc ist die Uhrzeit, zu der das Blob in den Zielspeicher für den Export kopiert wird.

Datenformat

Die Daten sind so formatiert, dass:

  • Jedes Blob eine Textdatei ist, die mehrere durch \n getrennte Zeilen enthält. Es enthält die Telemetriedaten, die über einen Zeitraum von etwa einer halben Minute verarbeitet wurden.

  • Jede Zeile einen Telemetriedatenpunkt darstellt, z.B. eine Anforderung oder einen Seitenaufruf.

  • Jede Zeile ist ein unformatiertes JSON-Dokument. Wenn Sie die Zeilen anzeigen möchten, öffnen Sie das Blob in Visual Studio, und wählen Sie Bearbeiten>Erweitert>Formatdatei aus.

    Screenshot der Anzeige der Telemetriedaten mit einem geeigneten Tool

Zeiten werden mithilfe von Teilstrichen dargestellt: 10.000 Teilstriche = 1 ms. Diese Werte zeigen beispielsweise eine Dauer von 1 ms für das Senden einer Anforderung aus dem Browser, von 3 ms für den Empfang und von 1,8 s für die Verarbeitung der Seite im Browser an:

"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}

Eine ausführliche Datenmodellreferenz für die Eigenschaftstypen und -werte finden Sie unter Application Insights-Exportdatenmodell.

Verarbeiten der Daten

Im kleinen Rahmen können Sie Code zum Aufteilen Ihrer Daten schreiben und sie in eine Kalkulationstabelle einlesen. Zum Beispiel:

private IEnumerable<T> DeserializeMany<T>(string folderName)
{
   var files = Directory.EnumerateFiles(folderName, "*.blob", SearchOption.AllDirectories);
   foreach (var file in files)
   {
      using (var fileReader = File.OpenText(file))
      {
         string fileContent = fileReader.ReadToEnd();
         IEnumerable<string> entities = fileContent.Split('\n').Where(s => !string.IsNullOrWhiteSpace(s));
         foreach (var entity in entities)
         {
            yield return JsonConvert.DeserializeObject<T>(entity);
         }
      }
   }
}

Ein umfangreicheres Codebeispiel finden Sie unter Verwenden einer Workerrolle.

Löschen der alten Daten

Sie sind für die Verwaltung Ihrer Speicherkapazität und bei Bedarf für das Löschen der alten Daten verantwortlich.

Erneutes Generieren Ihres Speicherschlüssels

Wenn Sie den Schlüssel zu Ihrem Speicher ändern, funktioniert der fortlaufende Export nicht mehr. In Ihrem Azure-Konto wird eine Benachrichtigung angezeigt.

Wählen Sie die Registerkarte Fortlaufender Export aus, und bearbeiten Sie den Export. Bearbeiten Sie das Exportziel, aber lassen Sie den gleichen Speicher ausgewählt. Wählen Sie zum Fortzufahren OK aus.

Der fortlaufende Export wird neu gestartet.

Export-Beispiele

Exportbeispiele finden Sie unter:

Bei größeren Dimensionen sollten Sie HDInsight -Hadoop-Cluster in der Cloud erwägen. HDInsight bietet verschiedene Technologien für die Verwaltung und Analyse riesiger Datenmengen. Damit können Sie Daten verarbeiten, die aus Application Insights exportiert wurden.

Häufig gestellte Fragen

Dieser Abschnitt enthält Antworten auf häufig gestellte Fragen.

Kann ich einen einmaligen Download eines Diagramms erhalten?

Das können Sie. Wählen Sie im oberen Bereich der Registerkarte die Option Daten exportieren aus.

Ich habe einen Export eingerichtet, aber warum sind keine Daten mehr in meinem Speicher?

Hat Application Insights Telemetriedaten aus Ihrer App empfangen, seit Sie den Export eingerichtet haben? Sie erhalten nur neue Daten.

Ich habe versucht, einen Export einrichten, aber warum wurde mir der Zugriff verweigert?

Wenn das Konto im Besitz Ihrer Organisation ist, müssen Sie der Gruppe „Besitzer“ oder „Mitwirkende“ angehören.

Kann ich Daten direkt in meinen eigenen lokalen Datenspeicher exportieren?

Nein. Unsere Export-Engine funktioniert zurzeit nur mit Azure Storage.

Gibt es Begrenzung der Menge von Daten, die im Speicher abgelegt werden können?

Nein. Wir übertragen Daten immer weiter, bis Sie den Export löschen. Wir hören auf, wenn wir uns den Grenzwerten Ihres Blobspeichers nähern. Dieser Grenzwert liegt jedoch ziemlich hoch. Es liegt an Ihnen, wie viel Speicher Sie belegen.

Wie viele Blobs sollten im Speicher angezeigt werden?

  • Für jeden Datentyp, den Sie zum Exportieren ausgewählt haben, wird jede Minute ein neues Blob erstellt, falls Daten verfügbar sind.
  • Für Anwendungen mit hohem Datenverkehr werden weitere Partitionseinheiten zugeordnet. In diesem Fall erstellt jede Einheit jede Minute ein Blob.

Ich habe den Schlüssel zu meinem Speicher neu generiert oder den Namen des Containers geändert. Warum funktioniert der Export jetzt nicht mehr?

Bearbeiten Sie den Export, und wählen Sie die Registerkarte Exportziel aus. Behalten Sie die vorherige Speicherauswahl bei, und wählen Sie zur Bestätigung OK aus. Der Export wird neu gestartet. Wenn die Änderung in den vergangenen Tagen erfolgt ist, gehen keine Daten verloren.

Kann ich den Export anhalten?

Ja. Wählen Sie Deaktivieren aus.

Codebeispiele

Auf Diagnoseeinstellungen basierender Export

Der Export von Diagnoseeinstellungen wird bevorzugt, da er zusätzliche Funktionen bietet:

  • Azure Storage-Konten mit virtuellen Netzwerken, Firewalls und privaten Verbindungen.
  • Exportieren Sie nach Azure Event Hubs.

Der Export von Diagnoseeinstellungen unterscheidet sich noch weiter vom fortlaufenden Export auf folgende Weise:

  • Aktualisiertes Schema.
  • Telemetriedaten werden sofort bei Eintreffen gesendet anstatt in Batchuploads.

Wichtig

Zusätzliche Kosten können aufgrund eines Anstiegs der Aufrufe an das Ziel entstehen, z. B. an ein Speicherkonto.

So migrieren Sie zum Export von Diagnoseeinstellungen:

  1. Aktivieren Sie Diagnoseeinstellungen für klassische Application Insights.
  2. Konfigurieren Des Datenexports: Wählen Sie Diagnoseeinstellungen>Hinzufügen der Diagnoseeinstellung in Ihrer Application Insights-Ressource aus.
  3. Vergewissern Sie sich, dass Ihr neuer Datenexport mit dem fortlaufenden Export konfiguriert ist.

Achtung

Wenn Sie Diagnoseprotokolle in einem Log Analytics-Arbeitsbereich speichern möchten, gibt es zwei Punkte zu berücksichtigen, um doppelte Daten in Application Insights zu vermeiden:

  • Das Ziel darf nicht derselbe Log Analytics-Arbeitsbereich sein, auf dem Ihre Application Insights-Ressource basiert.
  • Der Application Insights-Benutzer kann nicht Zugriff auf beide Arbeitsbereiche haben. Legen Sie den Log Analytics-Zugriffssteuerungsmodus auf Arbeitsbereichsberechtigungen erforderlich fest. Stellen Sie durch die rollenbasierte Azure-Zugriffssteuerung sicher, dass der Benutzer nur Zugriff auf den Log Analytics-Arbeitsbereich hat, auf dem die Application Insights-Ressource basiert.

Diese Schritte sind erforderlich, da Application Insights auf Telemetriedaten sämtlicher Application Insights-Ressourcen (einschließlich Log Analytics-Arbeitsbereichen) zugreift, um vollständige End-to-End-Transaktionsvorgänge und genaue Anwendungsübersichten bereitzustellen. Da Diagnoseprotokolle dieselben Tabellennamen verwenden, können doppelte Telemetriedaten angezeigt werden, wenn der Benutzer Zugriff auf mehrere Ressourcen hat, die dieselben Daten enthalten.

Application Insights-Exportdatenmodell

In dieser Tabelle sind die Eigenschaften der Telemetriedaten aufgelistet, die von Application Insights SDKs an das Portal gesendet werden. Sie sehen diese Eigenschaften in der Datenausgabe von Fortlaufender Export. Sie werden darüber hinaus in den Eigenschaftsfiltern im Metrik-Explorer und in der Diagnosesuche angezeigt.

Beachten Sie Folgendes:

  • [0] in diesen Tabellen bezeichnet Punkte im Pfad, an denen Sie einen Index einfügen müssen; es handelt sich jedoch nicht immer um 0.
  • Zeitspannen werden als Zehntel einer Mikrosekunde angegeben, also 10000000 == 1 Sekunde.
  • Datums- und Zeitangaben sind als UTC und im ISO-Format angegeben: yyyy-MM-DDThh:mm:ss.sssZ

Beispiel

// A server report about an HTTP request
{
  "request": [
    {
      "urlData": { // derived from 'url'
        "host": "contoso.org",
        "base": "/",
        "hashTag": ""
      },
      "responseCode": 200, // Sent to client
      "success": true, // Default == responseCode<400
      // Request id becomes the operation id of child events
      "id": "fCOhCdCnZ9I=",  
      "name": "GET Home/Index",
      "count": 1, // 100% / sampling rate
      "durationMetric": {
        "value": 1046804.0, // 10000000 == 1 second
        // Currently the following fields are redundant:
        "count": 1.0,
        "min": 1046804.0,
        "max": 1046804.0,
        "stdDev": 0.0,
        "sampledValue": 1046804.0
      },
      "url": "/"
    }
  ],
  "internal": {
    "data": {
      "id": "7f156650-ef4c-11e5-8453-3f984b167d05",
      "documentVersion": "1.61"
    }
  },
  "context": {
    "device": { // client browser
      "type": "PC",
      "screenResolution": { },
      "roleInstance": "WFWEB14B.fabrikam.net"
    },
    "application": { },
    "location": { // derived from client ip
      "continent": "North America",
      "country": "United States",
      // last octagon is anonymized to 0 at portal:
      "clientip": "168.62.177.0",
      "province": "",
      "city": ""
    },
    "data": {
      "isSynthetic": true, // we identified source as a bot
      // percentage of generated data sent to portal:
      "samplingRate": 100.0,
      "eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
    },
    "user": {
      "isAuthenticated": false,
      "anonId": "us-tx-sn1-azr", // bot agent id
      "anonAcquisitionDate": "0001-01-01T00:00:00Z",
      "authAcquisitionDate": "0001-01-01T00:00:00Z",
      "accountAcquisitionDate": "0001-01-01T00:00:00Z"
    },
    "operation": {
      "id": "fCOhCdCnZ9I=",
      "parentId": "fCOhCdCnZ9I=",
      "name": "GET Home/Index"
    },
    "cloud": { },
    "serverDevice": { },
    "custom": { // set by custom fields of track calls
      "dimensions": [ ],
      "metrics": [ ]
    },
    "session": {
      "id": "65504c10-44a6-489e-b9dc-94184eb00d86",
      "isFirst": true
    }
  }
}

Kontext

Alle Telemetriedatentypen umfassen einen Kontextabschnitt. Nicht alle dieser Felder werden mit jedem Datenpunkt übertragen.

`Path` type Notizen
context.custom.dimensions [0] object [ ] Schlüssel-Wert-Paare, die über benutzerdefinierte Eigenschaftenparameter festgelegt werden. Maximale Länge des Schlüssels: 100, maximale Länge des Werts: 1024. Mehr als 100 eindeutige Werte, die Eigenschaft kann durchsucht, aber nicht zur Segmentierung verwendet werden. Maximal 200 Schlüssel pro „ikey“.
context.custom.metrics [0] object [ ] Schlüssel-Wert-Paare, die über benutzerdefinierte Messparameter und über TrackMetrics festgelegt werden. Maximale Länge des Schlüssels: 100, Werte können numerisch sein.
context.data.eventTime Zeichenfolge UTC
context.data.isSynthetic boolean Anforderung scheint von einem Bot oder Webtest zu stammen.
context.data.samplingRate number Prozentsatz der vom SDK generierten Telemetriedaten, die an das Portal gesendet werden. Bereich liegt zwischen 0.0 und 100.0.
context.device Objekt (object) Clientgerät
context.device.browser Zeichenfolge IE, Chrome, ...
context.device.browserVersion Zeichenfolge Chrome 48.0, ...
context.device.deviceModel Zeichenfolge
context.device.deviceName Zeichenfolge
context.device.id Zeichenfolge
context.device.locale Zeichenfolge en-GB, de-DE, ...
context.device.network Zeichenfolge
context.device.oemName Zeichenfolge
context.device.os Zeichenfolge
context.device.osVersion Zeichenfolge Hostbetriebssystem
context.device.roleInstance Zeichenfolge ID des Serverhosts
context.device.roleName Zeichenfolge
context.device.screenResolution Zeichenfolge
context.device.type Zeichenfolge PC, Browser, ...
context.location Objekt (object) Abgeleitet von clientip.
context.location.city Zeichenfolge Abgeleitet von clientip, sofern bekannt.
context.location.clientip Zeichenfolge Letztes Oktagon wird als 0 anonymisiert.
context.location.continent Zeichenfolge
context.location.country Zeichenfolge
context.location.province Zeichenfolge Bundesland oder Kanton
context.operation.id Zeichenfolge Elemente mit derselben operation id werden im Portal als verwandte Elemente angezeigt. Normalerweise request id.
context.operation.name Zeichenfolge URL oder Anforderungsname
context.operation.parentId Zeichenfolge Ermöglicht geschachtelte verwandte Elemente.
context.session.id Zeichenfolge Id einer Gruppe von Vorgängen aus derselben Quelle. Ein Zeitraum von 30 Minuten ohne Vorgang signalisiert das Ende einer Sitzung.
context.session.isFirst boolean
context.user.accountAcquisitionDate Zeichenfolge
context.user.accountId Zeichenfolge
context.user.anonAcquisitionDate Zeichenfolge
context.user.anonId Zeichenfolge
context.user.authAcquisitionDate Zeichenfolge Authentifizierter Benutzer
context.user.authId Zeichenfolge
context.user.isAuthenticated boolean
context.user.storeRegion Zeichenfolge
internal.data.documentVersion Zeichenfolge
internal.data.id Zeichenfolge Unique id, die beim Erfassen eines Elements in Application Insights zugewiesen wird.

Events

Von TrackEvent()generierte benutzerdefinierte Ereignisse.

`Path` type Notizen
event [0] count integer 100/(Stichproben -Prozentsatz). Beispiel: 4 => 25 %.
event [0] name Zeichenfolge Ereignisname. Länge: 250
event [0] url Zeichenfolge
event [0] urlData.base Zeichenfolge
event [0] urlData.host Zeichenfolge

Ausnahmen

Melden Ausnahmen auf dem Server und im Browser.

`Path` type Notizen
basicException [0] assembly Zeichenfolge
basicException [0] count integer 100/(Stichproben -Prozentsatz). Beispiel: 4 => 25 %.
basicException [0] exceptionGroup Zeichenfolge
basicException [0] exceptionType Zeichenfolge
basicException [0] failedUserCodeMethod Zeichenfolge
basicException [0] failedUserCodeAssembly Zeichenfolge
basicException [0] handledAt Zeichenfolge
basicException [0] hasFullStack boolean
basicException [0] id Zeichenfolge
basicException [0] method Zeichenfolge
basicException [0] message Zeichenfolge Ausnahmemeldung. Max. Länge: 10.000
basicException [0] outerExceptionMessage Zeichenfolge
basicException [0] outerExceptionThrownAtAssembly Zeichenfolge
basicException [0] outerExceptionThrownAtMethod Zeichenfolge
basicException [0] outerExceptionType Zeichenfolge
basicException [0] outerId Zeichenfolge
basicException [0] parsedStack [0] assembly Zeichenfolge
basicException [0] parsedStack [0] fileName Zeichenfolge
basicException [0] parsedStack [0] level integer
basicException [0] parsedStack [0] line integer
basicException [0] parsedStack [0] method Zeichenfolge
basicException [0] stack Zeichenfolge Max. Länge: 10.000
basicException [0] typeName Zeichenfolge

Ablaufverfolgungsmeldungen

Gesendet von TrackTrace und über die Protokollierungsadapter.

`Path` type Notizen
message [0] loggerName Zeichenfolge
message [0] parameters Zeichenfolge
message [0] raw Zeichenfolge Die Protokollmeldung, maximale Länge: 10.000.
message [0] severityLevel Zeichenfolge

Remoteabhängigkeit

Gesendet von TrackDependency. Wird zum Berichten von Leistung und Nutzung von Aufrufen von abhängigen Komponenten auf dem Server sowie von AJAX-Aufrufen im Browser verwendet.

`Path` type Notizen
remoteDependency [0] async boolean
remoteDependency [0] baseName Zeichenfolge
remoteDependency [0] commandName Zeichenfolge Beispiel: "home/index"
remoteDependency [0] count integer 100/(Stichproben -Prozentsatz). Beispiel: 4 => 25 %.
remoteDependency [0] dependencyTypeName Zeichenfolge HTTP, SQL, ...
remoteDependency [0] durationMetric.value number Zeit vom Aufruf bis zum Abschließen der Antwort durch die Abhängigkeit.
remoteDependency [0] id Zeichenfolge
remoteDependency [0] name Zeichenfolge URL, Max. Länge: 250
remoteDependency [0] resultCode Zeichenfolge Aus HTTP-Abhängigkeit
remoteDependency [0] success boolean
remoteDependency [0] type Zeichenfolge HTTP, SQL, ...
remoteDependency [0] url Zeichenfolge Max. Länge: 2000
remoteDependency [0] urlData.base Zeichenfolge Max. Länge: 2000
remoteDependency [0] urlData.hashTag Zeichenfolge
remoteDependency [0] urlData.host Zeichenfolge Max. Länge: 200

Requests

Gesendet von TrackRequest. Die Standardmodule verwenden TrackRequest zum Berichten der Serverantwortzeit, gemessen auf dem Server.

`Path` type Notizen
request [0] count integer 100/(Stichproben -Prozentsatz). Beispiel: 4 => 25 %.
request [0] durationMetric.value number Zeit vom Empfang der Anforderung bis zur Antwort. 1e7 == 1s
request [0] id Zeichenfolge Operation id
request [0] name Zeichenfolge GET/POST + URL-Basis. Länge: 250
request [0] responseCode integer HTTP-Antwort, die an den Client gesendet wird.
request [0] success boolean Standard == (responseCode < 400)
request [0] url Zeichenfolge Host nicht eingeschlossen
request [0] urlData.base Zeichenfolge
request [0] urlData.hashTag Zeichenfolge
request [0] urlData.host Zeichenfolge

Leistung der Seitenaufrufe

Gesendet vom Browser. Misst die Zeit zum Verarbeiten einer Seite, von der Initialisierung der Anforderung durch den Benutzer bis zur vollständigen Anzeige (asynchrone AJAX-Aufrufe ausgenommen).

Kontextwerte zeigen Clientbetriebssystem und Browserversion.

`Path` type Notizen
clientPerformance [0] clientProcess.value integer Zeit vom vollständigen Empfang der HTML-Daten bis zur Anzeige der Seite.
clientPerformance [0] name Zeichenfolge
clientPerformance [0] networkConnection.value integer Benötigte Zeit zum Herstellen einer Netzwerkverbindung.
clientPerformance [0] receiveRequest.value integer Zeit vom vollständigen Senden der Anforderung bis zum Empfang der HTML-Daten in der Antwort.
clientPerformance [0] sendRequest.value integer Benötigte Zeit zum Senden der HTTP-Anforderung.
clientPerformance [0] total.value integer Zeit vom Sendebeginn der Anforderung bis zur Anzeige der Seite.
clientPerformance [0] url Zeichenfolge URL dieser Anforderung.
clientPerformance [0] urlData.base Zeichenfolge
clientPerformance [0] urlData.hashTag Zeichenfolge
clientPerformance [0] urlData.host Zeichenfolge
clientPerformance [0] urlData.protocol Zeichenfolge

Seitenaufrufe

Gesendet von trackPageView() oder stopTrackPage

`Path` type Notizen
view [0] count integer 100/(Stichproben -Prozentsatz). Beispiel: 4 => 25 %.
view [0] durationMetric.value integer Wert optional in trackPageView() oder über startTrackPage() - stopTrackPage() festgelegt. Ist nicht dasselbe wie die clientPerformance-Werte.
view [0] name Zeichenfolge Seitentitel, Max. Länge: 250
view [0] url Zeichenfolge
view [0] urlData.base Zeichenfolge
view [0] urlData.hashTag Zeichenfolge
view [0] urlData.host Zeichenfolge

Verfügbarkeit

Liefert Berichtdaten zu Verfügbarkeitswebtests.

`Path` type Notizen
availability [0] availabilityMetric.name Zeichenfolge availability
availability [0] availabilityMetric.value number 1.0 oder 0.0
availability [0] count integer 100/(Stichproben -Prozentsatz). Beispiel: 4 => 25 %.
availability [0] dataSizeMetric.name Zeichenfolge
availability [0] dataSizeMetric.value integer
availability [0] durationMetric.name Zeichenfolge
availability [0] durationMetric.value number Dauer des Tests. 1e7==1s
availability [0] message Zeichenfolge Fehlerdiagnose
availability [0] result Zeichenfolge Erfolgreich/Fehler
availability [0] runLocation Zeichenfolge Geoquelle der HTTP-Anforderung.
availability [0] testName Zeichenfolge
availability [0] testRunId Zeichenfolge
availability [0] testTimestamp Zeichenfolge

Metriken

Generiert von TrackMetric().

Der Metrikwert befindet sich in context.custom.metrics[0].

Beispiel:

{
  "metric": [ ],
  "context": {
  ...
    "custom": {
      "dimensions": [
        { "ProcessId": "4068" }
      ],
      "metrics": [
        {
          "dispatchRate": {
            "value": 0.001295,
            "count": 1.0,
            "min": 0.001295,
            "max": 0.001295,
            "stdDev": 0.0,
            "sampledValue": 0.001295,
            "sum": 0.001295
          }
        }
      ]  
    }
  }
}

Grundlegendes zu Metrikwerten

Informationen zu Metrikwerten werden, sowohl in Metrikberichten als auch an anderer Stelle, mit einer Standardobjektstruktur bereitgestellt. Beispiel:

"durationMetric": {
  "name": "contoso.org",
  "type": "Aggregation",
  "value": 468.71603053650279,
  "count": 1.0,
  "min": 468.71603053650279,
  "max": 468.71603053650279,
  "stdDev": 0.0,
  "sampledValue": 468.71603053650279
}

Derzeit – dies kann sich in Zukunft ändern – sind in allen Werten, die von den SDK-Standardmodulen berichtet werden, count==1 und nur die Felder name und value von Interesse. Dies wäre nur anders, wenn Sie eigene TrackMetric-Aufrufe schreiben, in denen Sie die weiteren Parameter festlegen.

Der Zweck der weiteren Felder besteht darin, Metriken im SDK zu aggregieren, um den Datenverkehr im Portal zu verringern. Sie könnten beispielsweise den Durchschnitt für mehrere aufeinanderfolgende Lesevorgänge ermitteln, bevor jeder Metrikbericht gesendet wird. Anschließend könnten Sie die Mindest-, Maximal- und Standardabweichung und den Aggregatwert (Summe oder Durchschnitt) berechnen und die Anzahl auf die Anzahl von Lesevorgängen festlegen, die der Bericht repräsentiert

In den obigen Tabellen wurden die selten verwendeten Felder „count“, „min“, „max“, „stdDev“ und „sampledValue“ ausgelassen.

Anstelle einer Vorabaggretation von Metriken können Sie die Stichprobenerstellung nutzen, wenn Sie den Umfang der Telemetriedaten verringern möchten.

Zeitspannen

Sofern nicht anders angegeben, wird die Dauer in Zehnteln einer Mikrosekunde angegeben, d. h. 10000000.0 entspricht 1 Sekunde.

Weitere Informationen