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
- Seit dem 29. Februar 2024 wird der kontinuierliche Export eingestellt.
- Bei der Migration zu einer arbeitsbereichsbasierten Application Insights-Ressource müssen Diagnoseeinstellungen zum Exportieren von Telemetriedaten verwendet werden. Alle arbeitsbereichsbasierten Application Insights-Ressourcen müssen Diagnoseeinstellungen verwenden.
- Der Export von Diagnoseeinstellungen kann die Kosten erhöhen. Weitere Informationen finden Sie unter Auf Diagnoseeinstellungen basierender Export.
Bevor Sie den fortlaufenden Export einrichten, sollten Sie folgende Alternativen zu dieser Vorgehensweise prüfen:
- Mithilfe der Schaltfläche Exportieren oben auf den Registerkarten „Metriken“ oder „Suche“ können Sie Tabellen und Diagramme in ein Excel-Arbeitsblatt übertragen.
- Log Analytics bietet eine leistungsstarke Abfragesprache für Telemetriedaten. Das Exportieren von Ergebnissen ist auch möglich.
- Wenn Sie Ihre Daten in Power BI erkunden möchten, können Sie dies ohne fortlaufenden Export tun, indem Sie zu einer arbeitsbereichsbasierten Ressource migrieren.
- Mit dem REST-API für Datenzugriff können Sie programmgesteuert auf Ihre Telemetriedaten zugreifen.
- Sie können auch auf das Setup für den fortlaufenden Export über PowerShell zugreifen.
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:
- Verwendung von Azure Virtual Network/Azure Storage-Firewalls mit Azure Blob Storage.
- Azure Data Lake Storage Gen2.
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.
Ö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.
Wählen Sie die Telemetriedatentypen aus, die Sie exportieren möchten.
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.
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.
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.
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
- Stream Analytics-Beispiel
- Exportieren nach SQL mit Stream Analytics
- Detaillierte Datenmodellreferenz für Eigenschaftstypen und -werte
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:
- Aktivieren Sie Die Diagnoseeinstellungen für klassische Anwendungseinblicke.
- Konfigurieren Des Datenexports: Wählen Sie "Diagnoseeinstellungen>Hinzufügen einer Diagnoseeinstellung" aus Ihrer Application Insights-Ressource aus.
- Überprüfen, ob der neue Datenexport genauso konfiguriert ist wie der fortlaufende Export
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.