2016-06-02 8 views
1

Konfiguration: Ich habe eine Metrik, die die Anforderungsdauer meldet, und ich habe zwei benutzerdefinierte Ereignisse eingerichtet, um die Startzeit und Endzeit anzuzeigen, und jedes Ereignis wird mit relevanten Informationen für die anfordern.Verknüpfen einer Application Insight - Metrik mit einer Vorgangs - ID

Problem: Ich habe eine Metrik, die lange Anfragedauern meldet. Die Liste der Einsichten ist jedoch nicht dazu geeignet, die Metrik mit den Ereignissen und Abhängigkeiten für die Operation zu korrelieren.

Ich möchte entweder die Dauer zwischen den beiden Ereignissen finden, um festzustellen, welche Operationen lange dauern, oder eine Operations-ID einer Metrik zuweisen, die es mir erlauben würde, die Liste der Einsichten auf solche mit hoher Dauer zu filtern.

Antwort

0

Ich kann zwei Ansätze vorschlagen.
Vorgehensweise # 1:
Öffnen Sie die Suche im Azure-Portal und filtern Sie die Anfragen nach Leistungsbucket. Sie können dann auf jedes Suchergebnis klicken, um die korrelierten Ereignisse anzuzeigen. Wenn vordefinierte Eimer für Sie nicht arbeiten können Sie Ihre eigenen mit Telemetrie initializer in SDK (bitte lassen Sie uns wissen, wenn vordefinierte Eimer nicht funktionieren) zuweisen

enter image description here

Ansatz # 2
Verwendung Analytics Join Abfrage um Telemetrie Elemente mit ausgewählten Operation ID zu finden, zum Beispiel:

requests 
| where duration > 5000 
| project operation_Name , operation_Id, duration 
| join (traces | project operation_Id, message) on operation_Id 
| project operation_Name , message 
| limit 10 
+0

Sorry, kleine Details, die beide dieser Ansätze erschwert. Meine Anwendung verwendet die OAuth-Pipeline und daher korrelieren die gemeldeten Anforderungsinformationen nicht mit den Anfragen, an denen ich interessiert bin. Aus diesem Grund habe ich ungerade Metriken/Ereignisse, die Informationen melden, die normalerweise über automatische Einblicke gesammelt werden. –

+0

Anstatt benutzerdefinierte Metriken zu verwenden, verwende ich TrackRequest manuell, um die Dauer der Anfrage zu protokollieren. Solange die Operations-ID der gesamten Telemetrie innerhalb der Anfrage zugewiesen ist, können Sie die oben genannten Vorgehensweisen verwenden. Wird es für dich funktionieren? –

+0

Nachdem ich alle Filter für diese Anforderung eingerichtet und ein Diagramm erstellt habe, konnte ich erfolgreich lange Anfragen identifizieren, die mit operation_id identifiziert wurden, und sie dann mit der anderen Telemetrie für diese Operation korrelieren. Vielen Dank! –