2017-05-02 5 views
1

Wir haben eine Back-End-API mit ASP.Net Core mit zwei Frontends: Eine SPA-Website (Vuejs) und eine progressive Webseite (für mobile Benutzer). Die Frontends sind im Grunde nur Client-Code und alle Dienste sind auf verschiedenen Domänen. Wir verwenden keine Cookies, da die Authentifizierung Bearer Tokens verwendet.Application Insights-Strategien für Web-API, die mehrere Clients bedienen

Wir mit Praktische Anwendung habe für die Überwachung zu spielen, aber als die Dokumentation für unsere Situationen nicht sehr aussagekräftig ist, würde Ich mag einige weitere Eingänge für bekommen, was ist die beste Strategie und Möglichkeiten für:

  • Tracking Benutzer und Messwerte ohne Cookies von zB Klicken Sie in den Anwendungen auf den Serveraufruf, Entity Framework/SQL-Abfrage (ich sehe, dass dies derzeit nicht unterstützt wird, How to enable dependency tracking with Application Insights in an Asp.Net Core project), Verarbeitung von Daten und Präsentation des Ergebnisses auf dem Client.
  • Trennen von Anrufen von mobilen und Standard-Web auf einfache Weise in Application Insights Abfragen. Jede Möglichkeit, dies in den Standarddiagrammen zu zeigen, die am Anfang erscheinen, wäre von Vorteil.
  • Stellen Sie sicher, dass unsere Strategie auch in Situationen passt, in denen andere externe Clients auf die API zugreifen und wir diese einfach identifizieren können und sehen, wie viel Auslastung sie für das System erzeugen.
  • Tun alle oben genannten mit der geringsten Menge an Code.

Antwort

2

Dies könnte mehrere unabhängige Fragen wert sein, wenn Sie Besonderheiten auf einer von ihnen wollen. (und im Allgemeinen ist Ihre letzte Kugel immer impliziert, nicht wahr? :))

Was haben Sie bisher versucht? die meisten "besten Weg für Sie" Arten von Dingen werden jedoch Meinungen sein.

Für allgemeine Antworten:

  • re: Verfolgen von Benutzern ...

Wenn Sie bereits für andere Zwecke Benutzerinfo/Auth tun, würden Sie setzen nur die verschiedenen context.user.* Felder mit den Informationen, die Sie zum Telemetriekontext der eingehenden Anfrage haben. Alle anderen Telemetriedaten, die unter Verwendung desselben Telemetriekontexts auftreten, würden dann alle Benutzerinformationen enthalten, die Sie bereits haben.

  • re: Trennen Anrufe von mobilen und Standard ...

, wenn Sie bereits diese als verschiedene Dienste/Domains zu tun, und Sie sind bereits die gleiche Instrumentierung Schlüssel für beide Orte verwenden, dann Die Domain/Host-Informationen von Seitenaufrufen oder Anfragen sind bereits vorhanden. Sie können diese im Portal filtern/gruppieren oder benutzerdefinierte Abfragen im Analyseportal erstellen, um diese zu analysieren. Wenn Sie wissen, welche Site unabhängig vom Host ist, können Sie dies als benutzerdefinierte Eigenschaften im Telemetriekontext hinzufügen. Sie können dies auch tun, um den Umgang mit Host-Informationen zu vermeiden.

  • re: externe Anrufer über eine api

ähnlich, wenn Sie bereits eine api und mit Auth auszusetzen, sollten Sie (idealerweise) bereits wissen, wer die eingehenden Anrufer sind, und Sie können festlegen diese Info auch in benutzerdefinierten Eigenschaften.

Im Allgemeinen sind, custom properties10 (String: String Schlüssel Wert Paare) und benutzerdefinierte Metriken (String: Doppelschlüssel Wert Paare) sind Ihre Freunde. Sie können sie für Kontexte festlegen, sodass alle in diesem Kontext generierten Ereignisse die gleichen Eigenschaften erben. Sie können sie explizit für einzelne TrackEvent (oder eine der anderen Track*-Aufrufe) festlegen, um bestimmte Eigenschaften/Metriken mit einem einzelnen Ereignis zu senden.

können Sie auch telemetry initializers verwenden, um jede Telemetrie zu erweitern oder Filter, die automatisch (wie Anforderungen oder Abhängigkeiten auf der Serverseite oder Seitenaufrufe und Ajax Abhängigkeiten Client-Seite) generiert wird wird

Verwandte Themen