Freigeben über


Application Insights-Telemetriedatenmodell

Application Insights sendet Telemetrie von Ihrer Webanwendung an das Azure-Portal, um Einblicke in die Leistung und Nutzung Ihrer Anwendung und Infrastruktur zu erhalten. Um Ihnen zu helfen, Telemetriedaten besser zu verstehen und zu organisieren, kategorisieren wir sie in verschiedene Typen.

Das Telemetriedatenmodell ist standardisiert, sodass plattform- und sprachunabhängige Überwachungen erstellt werden können. Unser Ziel ist und bleibt ein einfaches und schlankes Modell, das grundlegende Szenarien unterstützt und eine Erweiterung des Schemas für komplexere Anwendungsfälle ermöglicht.

Daten, die von Application Insights gesammelt werden, modellieren dieses typische Anwendungsausführungsmuster.

Diagramm, das das Telemetriedatenmodell

1availabilityResults ist standardmäßig nicht verfügbar und erfordert die Einrichtung von Verfügbarkeitstests.
2customEvents und customMetrics sind nur mit benutzerdefinierter Instrumentierung verfügbar.

Hinweis

Application Insights speichert Protokolle aus älteren Gründen in der traces Tabelle. Die Spannen für verteilte Ablaufverfolgungen werden in den Tabellen requests und dependencies gespeichert. Wir planen, dies in einer zukünftigen Version zu beheben, um Verwirrung zu vermeiden.

Arten von Telemetrie

Die folgenden Arten von Telemetrie werden verwendet, um die Ausführung Ihrer Anwendung zu überwachen. Das JavaScript SDK für Azure Monitor OpenTelemetry Distro und Application Insights sammelt:

Telemetrietyp Tabellenname
(Application Insights)
Tabellenname
(Protokollanalyse)
BESCHREIBUNG
Verfügbarkeit availabilityResults AppAvailabilityResults Überwacht die Verfügbarkeit und Reaktionsfähigkeit Ihrer Anwendung, indem Sie Webanforderungen in regelmäßigen Abständen senden und Sie benachrichtigen, wenn die Anwendung nicht reagiert oder die Reaktionszeit zu langsam ist.
Zeitliche Browsersteuerung browserTimings AppBrowserTimings Misst die Leistung von Webseiten, einschließlich Seitenladezeiten und Netzwerkdauern.
Abhängigkeit dependencies AppDependencies Erfasst Aufrufe von Ihrer Anwendung an einen externen Dienst oder Speicher, z. B. eine REST-API oder SQL-Datenbank, und misst die Dauer und den Erfolg dieser Aufrufe.
Ereignis customEvents AppEvents Wird in der Regel verwendet, um Benutzerinteraktionen und andere wichtige Vorkommen in Ihrer Anwendung zu erfassen, z. B. Schaltflächenklicks oder Bestellabwicklungen, um Nutzungsmuster zu analysieren.
Ausnahme exceptions AppExceptions Erfasst Fehlerinformationen, die für die Problembehandlung und das Verständnis von Fehlern von entscheidender Bedeutung sind.
Metrik performanceCounters

customMetrics
AppPerformanceCounters

AppMetrics
Leistungsindikatoren liefern numerische Daten zu verschiedenen Aspekten der Anwendungs- und Systemleistung, z. B. CPU-Auslastung und Arbeitsspeicherverbrauch.

Darüber hinaus können Sie mit benutzerdefinierten Metriken spezifische Messungen definieren und nachverfolgen, die für Ihre Anwendung eindeutig sind, und bieten Flexibilität zum Überwachen von benutzerdefinierten Leistungsindikatoren.
Seitenansicht pageViews AppPageViews Verfolgt die seiten, die von Benutzern angezeigt werden, und bietet Einblicke in die Benutzernavigation und das Engagement innerhalb Ihrer Anwendung.
Anforderung requests AppRequests Protokolliert Anforderungen, die von Ihrer Anwendung empfangen wurden, und stellt Details wie Vorgangs-ID, Dauer und Erfolgs- oder Fehlerstatus bereit.
Ablaufverfolgung traces AppTraces Protokolliert anwendungsspezifische Ereignisse, z. B. benutzerdefinierte Diagnosemeldungen oder Ablaufverfolgungsanweisungen, die für das Debuggen und Überwachen des Anwendungsverhaltens im Laufe der Zeit nützlich sind.

Von Bedeutung

Sie können Anwendungstelemetrie sowohl von Application Insights als auch log Analytics (empfohlen) abfragen, die Tabellen- und Feldnamen sind jedoch unterschiedlich. Diese Unterscheidung behält die Abwärtskompatibilität bei, um beispielsweise sicherzustellen, dass Kundendashboards mit benutzerdefinierten Abfragen, die erstellt wurden, bevor die Log Analytics-Benennungskonvention weiterhin ordnungsgemäß funktioniert.

Um Feldnamen im Azure-Portal zu vergleichen, öffnen Sie Application Insights>Logs, führen Sie eine Abfrage aus, und kopieren Sie das Id eines Telemetrieelements (z. B. 1234a5b6c7de8f90). Öffnen Sie dann eine neue Registerkarte in Ihrem Browser, wechseln Sie zu Protokollanalyseprotokollen>, wechseln Sie zum KQL-Modus, und führen Sie die Abfrage aus:

AppDependencies // Notice that table names are also different.
| where Id == "1234a5b6c7de8f90"

Erweitern Sie beide Telemetrieelemente, indem Sie das Chevron links neben jeder Zeile auswählen, um alle ihre Eigenschaften anzuzeigen.

Jedes Telemetrieelement kann Kontextinformationen wie die Anwendungsversion oder die Benutzersitzungs-ID enthalten. Der Kontext besteht aus einer Reihe stark typierter Felder, die unterschiedliche Analyseszenarien ermöglichen.

Wenn die Anwendungsversion z. B. ordnungsgemäß initialisiert wird, kann Application Insights neue Muster im Anwendungsverhalten erkennen, die mit der erneuten Bereitstellung korreliert sind. Ebenso können Sie die Sitzungs-ID verwenden, um die Auswirkungen von Ausfällen oder Problemen auf Benutzer zu bewerten. Durch die Berechnung der Anzahl eindeutiger Sitzungs-IDs, die mit fehlgeschlagenen Abhängigkeiten, Fehlerablaufverfolgungen oder kritischen Ausnahmen verknüpft sind, erhalten Sie ein klareres Bild der Auswirkungen des Benutzers.

Das Telemetriemodell von Application Insights unterstützt auch die Korrelation von Telemetrieelementen zu den Vorgängen, denen sie angehören. Wenn beispielsweise eine Anforderung einen SQL-Datenbankaufruf auslöst, können sowohl die Anforderung als auch der Abhängigkeitsaufruf Diagnosedaten enthalten und über einen freigegebenen Korrelationskontext verknüpft werden, sodass Sie den vollständigen Ablauf des Vorgangs nachverfolgen können.

In diesem Artikel werden die für jeden Telemetrietyp spezifischen Felder behandelt. Um die vollständige Liste der verfügbaren Felder (einschließlich Kontextfelder) für jeden Telemetrietyp anzuzeigen, folgen Sie dem Link unter jeder relevanten Tabelle.

Verfügbarkeits-Telemetrie

Die Verfügbarkeits-Telemetrie umfasst eine synthetische Überwachung, bei der Tests Benutzerinteraktionen simulieren, um sicherzustellen, dass die Anwendung verfügbar und reaktionsfähig ist. Es wird empfohlen, Standardverfügbarkeitstests einzurichten, um die Verfügbarkeit Ihrer Anwendung von verschiedenen Punkten auf der ganzen Welt zu überwachen und Ihre eigenen Testinformationen an Application Insights zu senden.

Verfügbarkeitsspezifische Felder:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
BESCHREIBUNG
id Id Der eindeutige Bezeichner eines Verfügbarkeitstestergebnisses, der für die Korrelation zwischen einzelnen Testausführungen verwendet wird, die dazu beitragen können, bestimmte Fehler oder Muster im Laufe der Zeit nachzuverfolgen. Weitere Informationen finden Sie unter Telemetriekorrelation in Application Insights.
name Name Der Name eines Verfügbarkeitstests. Sie wird beim Erstellen des Tests definiert (z. B. "Homepage-Pingtest").
___location Location Der geografische Standort oder die Rechenzentrumsregion, aus der ein Verfügbarkeitstest durchgeführt wurde (z. B. West-USA, Nordeuropa). Es hilft, regionale Ausfälle oder Latenzprobleme zu identifizieren.
success Success Dieses Feld gibt an, ob ein Verfügbarkeitstest erfolgreich war oder nicht. Es handelt sich um einen booleschen Wert, bei dem true der Test erfolgreich war und false bedeutet, dass er fehlgeschlagen ist.
message Message Eine beschreibende Nachricht mit Details zum Ergebnis des Tests. Sie enthält häufig Ausnahmedetails oder Fehlerantworten.
duration Duration Der Zeitraum, in dem der Verfügbarkeitstest ausgeführt wurde. Sie hilft dabei, die Leistung zu messen und Antwortzeitprobleme zu identifizieren. Die Dauer wird in der Regel in Millisekunden gemessen.

Eine Liste aller verfügbaren Felder finden Sie unter "AppAvailabilityResults".

Telemetrie der Browseranzeigedauer

Browser machen Messungen für Seitenladeaktionen mit der Leistungs-API verfügbar. Application Insights vereinfacht diese Messungen, indem verwandte Anzeigedauern in Standardbrowsermetriken konsolidiert werden.

Felder, die speziell für das Browser-Timing sind:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
BESCHREIBUNG
networkDuration NetworkDurationMs Der Client greift auf DNS zu, um den Hostnamen der Website aufzulösen, und DNS antwortet mit der IP-Adresse.

Der Client führt zuerst TCP- und anschließend TLS-Handshakes mit dem Webserver durch.
sendDuration SendDurationMs Der Client sendet Anforderungsnutzlast, wartet, bis der Server die Anforderung ausführt, und empfängt das erste Antwortpaket.
receiveDuration ReceiveDurationMs Der Client empfängt den Rest der Antwortnutzlastbytes vom Webserver.
processingDuration ProcessingDurationMs Der Client verfügt jetzt über das vollständige Antwortdatenpaket und muss die Inhalte im Browser darstellen und das DOM laden.
totalDuration TotalDurationMs Die Summe aller Browseranzeigedauern.

Eine Liste aller verfügbaren Felder finden Sie unter "AppBrowserTimings".

Abhängigkeits-Telemetrie

Ein Telemetrieelement für Abhängigkeiten stellt eine Interaktion der überwachten Komponente mit einer Remotekomponente wie SQL oder einem HTTP-Endpunkt dar.

Abhängigkeitsspezifische Felder:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
BESCHREIBUNG
id Id Der eindeutige Bezeichner einer Abhängigkeitsaufrufinstanz, die für die Korrelation mit dem Anforderungs-Telemetrieelement verwendet wird, das diesem Abhängigkeitsaufruf entspricht. Weitere Informationen finden Sie unter Telemetriekorrelation in Application Insights.
target Target Der Zielstandort eines Aufrufs einer Abhängigkeit. Beispiele sind Servername und Hostadresse. Weitere Informationen finden Sie unter Telemetriekorrelation in Application Insights.
type DependencyType Der Name des Abhängigkeitstyps. Es hat einen niedrigen Kardinalitätswert für die logische Gruppierung von Abhängigkeiten und die Interpretation von anderen Feldern wie commandName und resultCode. Beispiele sind die SQL, Azure-Tabelle und HTTP.
name Name Der Name des Befehls, der mit diesem Abhängigkeitsaufruf initiiert wurde. Es hat einen niedrigen Kardinalitätswert. Beispiele sind der Name einer gespeicherten Prozedur und eine URL-Pfadvorlage.
data Data Der Befehl, der von diesem Abhängigkeitsaufruf initiiert wird. Beispiele sind eine SQL-Anweisung und HTTP-URL mit allen Abfrageparametern.
success Success Dieses Feld gibt an, ob ein Anruf erfolgreich war oder nicht. Es handelt sich um einen booleschen Wert, bei dem true der Aufruf erfolgreich war und false bedeutet, dass er fehlgeschlagen ist.
resultCode ResultCode Der Ergebniscode eines Abhängigkeitsaufrufs. Beispiele sind SQL-Fehlercode und HTTP-Statuscode.
duration DurationMs Die Dauer der Anforderung hat das Format DD.HH:MM:SS.MMMMMM. Muss weniger als 1000 Tage sein.

Eine Liste aller verfügbaren Felder finden Sie unter "AppDependencies".

Ereignistelemetrie

Sie können Ereignistelemetrieelemente erstellen, um ein Ereignis darzustellen, das in Ihrer Anwendung aufgetreten ist. In der Regel handelt es sich um eine Benutzerinteraktion wie ein Klicken auf eine Schaltfläche oder den Auftragsabschluss einer Bestellung. Es kann sich auch um ein Ereignis im Lebenszyklus einer Anwendung handeln, wie z.B. eine Initialisierung oder ein Konfigurationsupdate.

Weitere Informationen zum Erstellen von benutzerdefinierter Ereignistelemetrie finden Sie unter Hinzufügen und Ändern von Azure Monitor OpenTelemetry für .NET-, Java-, Node.js- und Python-Anwendungen.

Ereignisspezifische Felder:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
BESCHREIBUNG
name Name Um die ordnungsgemäße Gruppierung und nützliche Metriken zuzulassen, beschränken Sie Ihre Anwendung so, dass sie einige separate Ereignisnamen generiert. Verwenden Sie z. B. nicht für jede generierte Instanz eines Ereignisses einen separaten Namen.

Eine Liste aller verfügbaren Felder finden Sie unter AppEvents.

Ausnahme-Telemetrie

Ein Ausnahme-Telemetrieelement stellt eine behandelte oder unbehandelte Ausnahme dar, die während der Ausführung der überwachten Anwendung aufgetreten ist.

Ausnahmespezifische Felder:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
BESCHREIBUNG
problemId ProblemId Gibt an, wo die Ausnahme im Code ausgelöst wurde. Sie wird für die Gruppierung von Ausnahmen verwendet. Normalerweise ist sie eine Kombination aus einem Ausnahmetyp und einer Funktion aus der Aufrufliste.
type ExceptionType Die spezifische Ausnahmeart, die aufgetreten ist. Dies schließt in der Regel den Namespace- und Klassennamen ein, wie etwa System.NullReferenceException oder System.InvalidOperationException.
assembly Assembly Die Assembly, in der die Ausnahme ausgelöst wurde. Dies ist nützlich, um die Komponente der Anwendung zu anheften, die für die Ausnahme verantwortlich ist.
method Method Der Methodenname in der Assembly, in der die Ausnahme ausgelöst wurde. Dies enthält kontextbezogene Informationen dazu, wo im Code der Fehler aufgetreten ist.
outerType OuterType Der Typ der äußeren (umschließenden) Ausnahme, wenn die aktuelle Ausnahme in einer anderen Ausnahme geschachtelt ist. Dies ist nützlich, um den Kontext zu verstehen, in dem die innere Ausnahme aufgetreten ist, und kann bei der Nachverfolgung der Abfolge von Fehlern helfen.
outerMessage OuterMessage Diese Meldung enthält eine lesbare Erklärung der äußeren Ausnahme und kann hilfreich sein, um das umfassendere Problem zu verstehen.
outerAssembly OuterAssembly Die Assembly, in der die äußere Ausnahme ihren Ursprung hat.
outerMethod OuterMethod Die Methode der äußeren Ausnahme. Dies enthält detaillierte Informationen zum Fehlerpunkt innerhalb der äußeren Ausnahme.
severityLevel SeverityLevel Der Schweregrad der Ablaufverfolgung kann einen der folgenden Werte aufweisen: Verbose, Information, Warning, Error oder Critical.
details Details Enthält Ausnahmeinformationen wie die Ausnahmemeldung und den Aufrufstapel.

Eine Liste aller verfügbaren Felder finden Sie unter "AppExceptions".

Metrik-Telemetrie

Application Insights unterstützt zwei Arten von Metrik-Telemetrie:

  • Eine einzelne Maßeinheit hat einen Namen und einen Wert.
  • Eine voraggregierte Metrik nimmt mehrere Messungen in einem 1-Minuten-Aggregationszeitraum an.

Leistungsindikatoren

Leistungsindikatoren sind immer einzelne Messmetriken mit einer name und einer value, kommen jedoch mit den zusätzlichen Feldern category, , counterund für Windows-Anwendungen auch instance.

Leistungszählerspezifische Felder:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
BESCHREIBUNG
name Name Der Name der Metrik, die im Application Insights-Portal angezeigt werden soll.
value Value Der einzelne Wert für die Messung. Es ist die Summe der einzelnen Messungen für die Aggregation.
category Category Stellt eine Gruppe verwandter Leistungszähler dar (z. B. Process).
counter Counter Gibt die bestimmte Leistungsmetrik IO Data Bytes/sec an, die in einer Kategorie gemessen wird (z. B.).
instance Instance Identifiziert ein bestimmtes Vorkommen eines Zählers innerhalb einer Kategorie (z. B ??APP_WIN32_PROC??. ).

Eine Liste aller verfügbaren Felder finden Sie unter AppPerformanceCounters.

Weitere Informationen zu Metriken finden Sie unter Metriken in Application Insights. Weitere Informationen zur Metrik-REST-API finden Sie unter Metriken – Abrufen.

System- und Prozesszählermetriken

.NET-Name BESCHREIBUNG
\Processor(_Total)\% Processor Time Computer-CPU insgesamt.
\Memory\Available Bytes Zeigt die Menge des physischen Speichers in Byte an, der für auf dem Computer ausgeführte Prozesse zur Verfügung steht. Diese wird durch Addieren der Menge des Speicherplatzes in den genullten, freien und Standbyspeicherlisten berechnet. Freier Arbeitsspeicher ist einsatzbereit. Der Nullspeicher besteht aus Speicherseiten, die mit Nullen gefüllt sind, um zu verhindern, dass spätere Prozesse Daten sehen können, die von einem früheren Prozess verwendet wurden. Der Standbyspeicher ist der Speicher, der auf dem Weg zum Laufwerk aus dem Arbeitsspeicher (dem physischen Speicher) eines Prozesses entfernt wurde, aber immer noch abrufbar ist. Weitere Informationen finden Sie unter Speicherobjekt.
\Process(??APP_WIN32_PROC??)\% Processor Time CPU des Prozesses, der die Anwendung hostet.
\Process(??APP_WIN32_PROC??)\Private Bytes Vom Prozess, der die Anwendung hostet, belegter Arbeitsspeicher.
\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec Rate der E/A-Vorgänge, die von dem Prozess, der die Anwendung hostet, durchgeführt werden.
\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec Rate der von einer Anwendung verarbeiteten Anfragen.
\.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown / sec Häufigkeit der von einer Anwendung ausgelösten Ausnahmen.
\ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time Durchschnittliche Ausführungszeit der Anforderung.
\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue Anzahl der Anforderungen, die in einer Warteschlange auf die Verarbeitung warten.

Benutzerdefinierte Eigenschaften

Die Metrik mit der benutzerdefinierten Eigenschaft CustomPerfCounter, die auf true eingestellt ist, zeigt an, dass die Statistik den Windows-Leistungszähler darstellt. Diese Metriken werden in der performanceCounters-Tabelle platziert, nicht in customMetrics. Der Name dieser Metrik wird außerdem analysiert, um Kategorie-, Zähler- und Instanznamen zu extrahieren.

Benutzerdefinierte Metriken

Benutzerdefinierte Metriken sind Leistungsindikatoren oder geschäftsspezifische Metriken, die Sie definieren und sammeln, um Erkenntnisse zu gewinnen, die nicht von Standardmetriken abgedeckt werden. Weitere Informationen zu benutzerdefinierten Metriken finden Sie unter "Benutzerdefinierte Metriken" in Azure Monitor (Vorschau).

Benutzerdefinierte metrikspezifische Felder:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
Einzelmessung Voraggregierte Metrik
name Name Dieses Feld ist der Name der Metrik, die Sie im Application Insights-Portal und in der Benutzeroberfläche sehen möchten.
value Value Dieses Feld ist der einzelne Wert für die Messung. Es ist die Summe der einzelnen Messungen für die Aggregation. Für eine voraggregierte Metrik entspricht "Wert " "Summe".
Max Max Bei einer einzelnen Maßmetrik ist "Max " gleich "Value". Dieses Feld ist der Höchstwert der aggregierten Metrik. Darf nicht für eine Messung festgelegt werden.
Min Min Bei einer einzelnen Metrik entspricht Min dem Wert. Dieses Feld ist der Mindestwert der aggregierten Metrik. Darf nicht für eine Messung festgelegt werden.
Sum Sum Bei einer einzelnen Maßmetrik ist "Summe " gleich "Wert". Die Summe aller Werte der aggregierten Metrik. Darf nicht für eine Messung festgelegt werden.
Count Count Bei einer einzelnen Maßmetrik ist Count1. Die Anzahl der Messungen in einem 1-Minuten-Aggregationszeitraum. Darf nicht für eine Messung festgelegt werden.

Eine Liste aller verfügbaren Felder finden Sie unter AppMetrics.

Hinweis

Um den Mittelwert zu berechnen, teilen Sie Summe durch Anzahl.

Telemetrie der Seitenansicht

Die Telemetrie der Seitenansicht wird protokolliert, wenn ein Anwendungsbenutzer eine neue Seite einer überwachten Anwendung öffnet. Das Page ist in diesem Zusammenhang eine logische Einheit, die vom Entwickler als Anwendungsregisterkarte oder Bildschirm definiert wird und nicht unbedingt mit dem Laden oder Aktualisieren einer Browser-Webseite korreliert.

Diese Unterscheidung kann weiter im Zusammenhang mit Single-Page-Anwendungen (SPAs) verstanden werden, bei denen der Wechsel zwischen Seiten nicht an Browser-Seitenaktionen gebunden ist. Das pageViews.duration ist die Zeit, die die Anwendung benötigt, um dem Benutzer die Seite anzuzeigen.

Seitenansichtsspezifische Felder:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
BESCHREIBUNG
name Name Der Name der Seite, die vom Benutzer angezeigt wurde (zum Beispiel "Home" oder "Shopping Cart").
url Url Die vollständige URL der angezeigten Seite. Dieses Feld ist entscheidend für die Analyse des Datenverkehrs und des Benutzerverhaltens in der gesamten Anwendung.
duration DurationMs Die PageView-Dauer stammt aus der Leistungstiming-Schnittstelle des Browsers, PerformanceNavigationTiming.duration.

Wenn PerformanceNavigationTiming verfügbar ist, wird diese Dauer verwendet. Ist dies nicht der Fall, wird die veraltetePerformanceTiming-Schnittstelle verwendet, und das Delta zwischen NavigationStart und LoadEventEnd wird berechnet.

Der Entwickler gibt einen Dauerwert an, wenn benutzerdefinierte PageView-Ereignisse mithilfe des trackPageView-API-Aufrufs protokolliert werden.

Eine Liste aller verfügbaren Felder finden Sie unter AppPageViews.

Hinweis

  • Standardmäßig protokolliert das Application Insights JavaScript SDK einzelne PageView Ereignisse bei jedem Seitenaufruf im Browser, wobei pageViews.duration mit Browser-Timing ausgefüllt wird. Entwickler können die zusätzliche Nachverfolgung von PageView-Ereignissen mithilfe des TrackPageView-API-Aufrufs erweitern.

  • Die Standardaufbewahrung von Protokollen beträgt 30 Tage. Wenn Sie PageView-Statistiken über einen längeren Zeitraum anzeigen möchten, müssen Sie die Einstellung anpassen.

Telemetrie anfordern

Anforderungstelemetrie bezieht sich auf Informationen im Zusammenhang mit eingehenden HTTP-Anfragen an Ihre Anwendung. Diese Art von Telemetrie hilft Ihnen, die Leistung und den Erfolg der webbasierten Dienste Ihrer Anwendung zu überwachen. Ein Anforderungs-Telemetrieelement stellt die logische Ausführungssequenz dar, die von einer externen Anforderung an Ihre Anwendung ausgelöst wird. Jede Anforderungsausführung wird durch eine eindeutige id und url identifiziert, die alle Ausführungsparameter enthalten.

Sie können Anforderungen nach logischen name-Werten gruppieren und die source der jeweiligen Anforderung definieren. Die Codeausführung kann zu success oder fail führen und verfügt über eine bestimmte duration. Sie können erfolgreiche und fehlerhafte Ausführungen weiter gruppieren, indem Sie resultCode verwenden. Die Startzeit für die Anforderungstelemetrie wird auf Umschlagebene definiert. Die Anforderungstelemetrie unterstützt das Standarderweiterbarkeitsmodell mittels benutzerdefinierten properties und measurements.

Anforderungsspezifische Felder:

Feldname
(Application Insights)
Feldname
(Protokollanalyse)
BESCHREIBUNG
id Id Der eindeutige Bezeichner einer Anforderungsaufrufinstanz, die für die Korrelation zwischen der Anforderung und anderen Telemetrieelementen verwendet wird. Die ID muss global eindeutig sein. Weitere Informationen finden Sie unter Telemetriekorrelation in Application Insights.
source Source „Quelle“ ist die Quelle der Anforderung. Beispiele sind der Instrumentierungsschlüssel des Aufrufers oder die IP-Adresse des Aufrufers. Weitere Informationen finden Sie unter Telemetriekorrelation in Application Insights.
name Name Dieses Feld ist der Name der Anfrage und stellt den Codepfad dar, der zur Bearbeitung der Anfrage verwendet wird. Ein niedriger Kardinalitätswert ermöglicht die bessere Gruppierung von Anforderungen. Für HTTP-Anforderungen stellt er die HTTP-Methode und die URL-Pfadvorlage wie GET /values/{id} ohne den tatsächlichen id-Wert dar.
Das Application Insights-Web-SDK sendet einen Anforderungsnamen unverändert bezüglich der Groß-/Kleinschreibung. Bei der Gruppierung auf der Benutzeroberfläche wird die Groß-/Kleinschreibung beachtet, d. h. GET /Home/Index wird getrennt von GET /home/INDEX gezählt, obwohl sie häufig zur Ausführung des gleichen Controllers und der gleichen Aktion führen. Dies liegt daran, dass bei URLs allgemein die Groß-/Kleinschreibung beachtet wird. Vielleicht möchten Sie sehen, ob alle 404-Fehler bei URLs auftreten, die in Großbuchstaben eingegeben werden. Weitere Informationen über die Anforderungsnamensammlung mit dem ASP.NET-Web-SDK finden Sie in diesem Blogbeitrag.
url Url „URL“ ist die Anforderungs-URL mit allen Abfragezeichenfolgeparametern.
success Success „Erfolg“ gibt an, ob ein Aufruf erfolgreich oder nicht erfolgreich war. Dieses Feld ist erforderlich. Wenn eine Anforderung nicht explizit auf false festgelegt ist, gilt sie als erfolgreich. Wenn eine Ausnahme oder ein zurückgegebener Fehlercode die Operation unterbrochen hat, setzen Sie diesen Wert auf false.

Für Webanwendungen definiert Application Insights eine Anforderung als erfolgreich, wenn der Antwortcode kleiner als 400 oder gleich 401 ist. Es gibt jedoch Fälle, in denen diese Standardzuordnung nicht der Semantik der Anwendung entspricht.

Der Antwortcode 404 kann auf „keine Datensätze“ hindeuten, was Teil eines normalen Flow sein kann. Er kann auch auf einen fehlerhaften Link hindeuten. Für fehlerhaften Links können Sie eine erweiterte Logik implementieren. Durch Analysieren des URL-Referrers können Sie fehlerhafte Links nur dann als Fehler markieren, wenn diese sich auf derselben Website befinden. Oder Sie können sie als Fehler markieren, wenn über die mobile Anwendung des Unternehmens darauf zugegriffen wird. Auf ähnliche Weise deuten 301 und 302 auf einen Fehler hin, wenn der Zugriff über einen Client erfolgt, auf dem die Umleitung nicht unterstützt wird.

Teilweise akzeptierter Inhalt 206 deutet möglicherweise auf einen Fehler einer Gesamtanforderung hin. Ein Application Insights-Endpunkt könnte beispielsweise einen Batch mit Telemetrieelementen als einzelne Anforderung empfangen. Er gibt 206 zurück, wenn einige Elemente in dem Batch nicht erfolgreich verarbeitet wurden. Eine steigende Rate von 206 deutet auf ein Problem hin, das untersucht werden muss. Eine ähnliche Logik gilt für Multistatus 207, wo der Erfolg der schlechteste von verschiedenen Antwortcodes sein könnte.
resultCode ResultCode Der Antwortcode ist das Ergebnis einer Anforderungsausführung. Für HTTP-Anforderungen ist es der HTTP-Statuscode. Dies kann ein HRESULT-Wert oder ein Ausnahmetyp für andere Anforderungstypen sein.
duration DurationMs Die Anforderungsdauer ist als DD.HH:MM:SS.MMMMMM formatiert. Sie muss positiv und weniger als 1000 Tage sein. Dieses Feld ist erforderlich, da die Anforderungstelemetrie den Vorgang mit dem Beginn und dem Ende darstellt.

Eine Liste aller verfügbaren Felder finden Sie unter "AppRequests".

Ablaufverfolgungstelemetrie

Ablaufverfolgungstelemetrie stellt Ablaufverfolgungsanweisungen im Format printf dar, die sich für eine Textsuche eignen. Log4Net, NLog und andere textbasierte Protokolldateieinträge werden in Instanzen dieses Typs übersetzt. Die Ablaufverfolgung weist für die Erweiterbarkeit keine Messungen auf.

Ablaufverfolgungsspezifische Felder:

Feldname
(Anwendungsinformationen)
Feldname
(Protokollanalyse)
BESCHREIBUNG
message Message Ablaufverfolgungsmeldung.
severityLevel SeverityLevel Schweregrad der Ablaufverfolgung.

Eine Liste aller verfügbaren Felder finden Sie unter AppTraces.

Hinweis

Werte für severityLevel sind aufgelistet und plattformspezifisch.

Benutzerdefinierte Eigenschaften und Maße

Benutzerdefinierte Eigenschaften

Name-Wert-Sammlung mit benutzerdefinierten Eigenschaften: Diese Sammlung wird verwendet, um standardmäßige Telemetrie mit den benutzerdefinierten Dimensionen zu erweitern. Ein Beispiel ist der Bereitstellungsslot, der Telemetrie produziert hat, oder eine spezifische Eigenschaft eines Telemetrie-Elements, wie beispielsweise die Bestellnummer.

  • Maximale Schlüssellänge: 150
  • Maximale Wertlänge: 8.192

Benutzerdefinierte Messungen

Sammlung von benutzerdefinierten Messungen: Verwenden Sie diese Sammlung, um benannte Messungen zu melden, die dem Telemetrieelement zugeordnet sind. Typische Anwendungsfälle:

  • Die Größe der Nutzdaten der Abhängigkeitstelemetrie.
  • Anzahl von Warteschlangenelementen, die von der Anforderungstelemetrie verarbeitet wurden.
  • Die Zeit, die ein Kunde benötigt hat, um den Assistentenschritt zum Abschließen der Ereignistelemetrie zu beenden.

Benutzerdefinierte Messungen können in der Anwendungsanalyse abgefragt werden:

customEvents
| where customMeasurements != ""
| summarize avg(todouble(customMeasurements["Completion Time"]) * itemCount)

Hinweis

  • Benutzerdefinierte Messungen werden dem Telemetrieelement zugeordnet, zu dem sie gehören. Sie unterliegen dem Sampling mit dem Telemetrieelement, das diese Messungen enthält. Wenn Sie eine Messung verfolgen möchten, die einen von anderen Telemetriearten unabhängigen Wert hat, verwenden Sie die metrische Telemetrie.
  • Verwenden Sie keine Zeichenfolgenwerte für benutzerdefinierte Messungen. Es werden nur numerische Werte unterstützt.

Maximale Schlüssellänge: 150

Kontext

Jedes Telemetrieelement kann über ein stark typisiertes Kontextfeld verfügen. Jedes Feld ermöglicht ein bestimmtes Überwachungsszenario. Verwenden Sie die Sammlung benutzerdefinierter Eigenschaften zum Speichern benutzerdefinierter oder anwendungsspezifischer Kontextinformationen.

Feldname
(Anwendungs-Einblicke)
Feldname
(Protokollanalyse)
BESCHREIBUNG
account_ID user_AccountId Die Konto-ID ist in mehrinstanzenfähigen Anwendungen die Mandantenkonto-ID oder der Mandantenkontoname, unter der/dem der Benutzer agiert. Sie wird für eine genauere Benutzersegmentierung verwendet, wenn Benutzer-ID und authentifizierte Benutzer-ID nicht ausreichend sind. Beispiele können die Abonnement-ID für das Azure-Portal oder der Blogname für eine Blogplattform sein.
application_Version AppVersion Informationen in den Anwendungskontextfeldern beziehen sich immer auf die Anwendung, die die Telemetriedaten sendet. Die Anwendungsversion wird verwendet, um Trendänderungen im Anwendungsverhalten und die Korrelation mit den Bereitstellungen zu analysieren.
appId ResourceGUID Ein eindeutiger Bezeichner für Ihre Application Insights-Ressource, um Telemetrie von verschiedenen Anwendungen zu unterscheiden.
appName Nicht verfügbar In Application Insights appName ist dasselbe wie _ResourceId.
client_Browser ClientBrowser Der Name des webbrowsers, der vom Client verwendet wird.
client_City ClientCity Die Stadt, in der sich der Client befand, als die Telemetrie erfasst wurde (basierend auf der IP-Geolocation).
client_CountryOrRegion ClientCountryOrRegion Das Land oder die Region, in dem sich der Client befand, als die Telemetrie erfasst wurde (basierend auf der IP-Geolocation).
client_IP ClientIP Die IP-Adresse des Clientgeräts. IPv4 und IPv6 werden unterstützt. Wenn Telemetriedaten von einem Dienst gesendet werden, bezieht sich der Standortkontext auf den Benutzer, der den Vorgang im Dienst initiiert hat. Application Insights extrahiert die Geo-Standortinformationen aus der Client-IP und schneidet sie dann ab. Die Client-IP-Adresse selbst kann daher nicht als personenbezogene Benutzerinformation verwendet werden.
client_OS ClientOS Gibt das Betriebssystem des Clients an, das die Telemetrie generiert hat.
client_StateorProvince ClientStateOrProvince Der Staat oder die Provinz, in dem sich der Client befand, als die Telemetrie erfasst wurde (basierend auf der IP-Geolocation).
client_Type ClientType Beschreibt den Typ des Clientgeräts, das die Telemetrie gesendet hat (z. B. Browser oder PC.)
cloud_RoleInstance AppRoleInstance Der Name der Instanz, in der die Anwendung ausgeführt wird. Dies ist z. B. der Computername für die lokale Umgebung oder der Instanzname für Azure.
cloud_RoleName AppRoleName Der Name der Rolle, von der die Anwendung Teil ist. Er wird direkt dem Rollennamen in Azure zugeordnet. Er kann auch zur Unterscheidung von Microservices verwendet werden, die Teil einer einzelnen Anwendung sind.
iKey IKey Ein älteren eindeutiger Bezeichner, der zum Zuordnen von Telemetriedaten zu einer bestimmten Application Insights-Ressource verwendet wird.
itemId Nicht verfügbar Ein eindeutiger Bezeichner für ein bestimmtes Telemetrieelement.
itemCount ItemCount Die Anzahl der Vorkommen oder Zählungen, die einem einzelnen Telemetrieereignis zugeordnet sind.
operation_Id OperationId Der eindeutige Bezeichner des Stammvorgangs. Mit diesem Bezeichner können Telemetriedaten für mehrere Komponenten gruppiert werden. Weitere Informationen finden Sie unter Telemetriekorrelation. Eine Anforderung oder eine Seitenansicht erstellt die Vorgangs-ID. Alle anderen Telemetriedaten legen dieses Feld auf den Wert für die enthaltende Anforderung oder Seitenansicht fest.
operation_Name OperationName Der Name (Gruppe) des Vorgangs. Der Name des Vorgangs wird entweder durch eine Anfrage oder eine Seitenansicht erstellt. Alle anderen Telemetrieelemente legen dieses Feld auf den Wert für die enthaltende Anforderung oder Seitenansicht fest. Der Vorgangsname wird zum Suchen aller Telemetrieelemente für eine Gruppe von Vorgängen verwendet (z. B. GET Home/Index). Diese Kontexteigenschaft wird verwendet, um Fragen wie „Welche typischen Ausnahmen werden auf dieser Seite ausgelöst?“ zu beantworten.
operation_ParentId ParentId Der eindeutige Bezeichner des direkt übergeordneten Elements des Telemetrieelements. Weitere Informationen finden Sie unter Telemetriekorrelation.
operation_SyntheticSource SyntheticSource Der Name der synthetischen Quelle. Einige Telemetriedaten aus der Anwendung stellen möglicherweise synthetischen Datenverkehr dar. Dabei kann es sich um den Webcrawler, der die Website indiziert, Tests zur Websiteverfügbarkeit oder Protokolle von Diagnosebibliotheken wie dem Application Insights SDK handeln.
sdkVersion SDKVersion Die Version des Application Insights SDK, das Telemetriedaten sendet. Weitere Informationen finden Sie unter SDK-Version.
session_Id SessionId Die Sitzungs-ID ist die Instanz der Interaktion des Benutzers mit der App. Informationen in den Sitzungskontextfeldern beziehen sich immer auf den Benutzer. Wenn Telemetriedaten von einem Dienst gesendet werden, bezieht sich der Sitzungskontext auf den Benutzer, der den Vorgang im Dienst initiiert hat.
user_AuthenticatedId UserAuthenticatedId Eine authentifizierte Benutzer-ID ist das Gegenteil einer anonymen Benutzer-ID. Dieses Feld stellt den Benutzer mit einem freundlichen Namen dar. Diese ID wird nur mit AuthenticatedUserIdTelemetryInitializer im ASP.NET Framework SDK standardmäßig erfasst.

Verwenden Sie das Application Insights SDK, um die authentifizierte Benutzer-ID mit einem Wert zu initialisieren, der den Benutzer dauerhaft über Browser und Geräte hinweg identifiziert. Auf diese Weise werden alle Telemetrieelemente dieser eindeutigen ID zugeordnet. Diese ID ermöglicht die Abfrage aller für einen bestimmten Benutzer gesammelten Telemetriedaten (entsprechend der Konfiguration der Stichprobenerstellung und der Filterung von Telemetriedaten).

Benutzer-IDs können mit Sitzungs-IDs abgeglichen werden, um eindeutige Telemetriedimensionen bereitzustellen und Benutzeraktivitäten über eine Sitzungsdauer einzurichten.
user_Id UserId Die anonyme Benutzer-ID stellt den Benutzer der Anwendung dar. Wenn Telemetriedaten von einem Dienst gesendet werden, bezieht sich der Benutzerkontext auf den Benutzer, der den Vorgang im Dienst initiiert hat.

Die Stichprobenentnahme ist eine der Methoden zum Minimieren der Menge der gesammelten Telemetriedaten. Ein Stichprobenalgorithmus versucht, entweder alle korrelierten Telemetriedaten einzuschließen oder auszuschließen. Eine anonyme Benutzer-ID wird für die Erzeugung von Stichprobenwerten verwendet, daher sollte eine anonyme Benutzer-ID ein ausreichend zufälliger Wert sein.

Die Anzahl der anonymen Benutzer-IDs entspricht nicht der Anzahl der eindeutigen Anwendungsbenutzer. Die Anzahl der anonymen Benutzer-IDs ist in der Regel höher, da jedes Mal, wenn der Benutzer Ihre App auf einem anderen Gerät oder in einem anderen Browser öffnet oder die Browsercookies bereinigt, eine neue eindeutige anonyme Benutzer-ID zugeordnet wird. Diese Berechnung kann dazu führen, dass dieselben physischen Benutzer mehrfach gezählt werden.

Benutzer-IDs können mit Sitzungs-IDs abgeglichen werden, um eindeutige Telemetriedimensionen bereitzustellen und Benutzeraktivitäten über eine Sitzungsdauer einzurichten.

Die Verwendung einer anonymen Benutzer-ID zum Speichern eines Benutzernamens stellt eine unsachgemäße Verwendung des Felds dar. Verwenden Sie eine authentifizierte Benutzer-ID.
_ResourceId _ResourceId Die vollständige Azure-Ressourcen-ID der Application Insights-Komponente, die das Abonnement, die Ressourcengruppe und den Ressourcennamen enthält.

Nächste Schritte