Frage

Hallo, Wir entwickeln eine Multi-Tenant-Anwendung in Asp.Net mit separater Datenbank für jeden Mieter, in dem eine der Anforderung ist, die Bandbreitennutzung für jeden Mieter zu überwachen,

Ich habe zu suchen versucht, aber nicht gefunden viel Hilfe zu diesem Thema wollen wir genau überwachen, wie viel Bandbreite für jeden Mieter genutzt werden, während jeder Mieter kann seine eigene Top-Level-Domain oder eine Sub-Domain oder eine Kombination aus beidem haben .

so was sind die verfügbaren Optionen, die, die ich von kann denken kann,

  1. IIS Log Mittel eine separate Anwendung Überwachung, die die Bandbreite für jeden Mieter berechnen wird.
  2. Log Jede Anfrage und Antwort für einen Mieter aus der Anwendung heraus und dann die gesamte Bandbreitennutzung auf dieser Grundlage berechnet werden.
  3. Verwenden Sie einige dritte Teilkomponenten, wenn verfügbar

Also, was glauben Sie, wird der beste Ansatz sein, auch wenn es eine andere Möglichkeit, dies zu tun.

War es hilfreich?

Lösung

Ok, hier ist eine Idee (dass ich nicht testen, lassen das für Sie)

Ein global.asax Verwenden Sie eine dieser Funktion (finden die, die eine gültige Endgröße haben)

Application_PostRequestHandlerExecute
Application_ReleaseRequestState

und die Größe, die Sie mit haben senden

Response.Filter.Length

Keine Notwendigkeit, metion, dass Sie den Dateinamen des Anrufs erhalten mit dem

HttpContext.Current.Request.Path

Dies funktioniert mit jeder einzelnen Anforderung aufgerufen, so dass Sie Ihre Größe erhalten können, und Sie machen den Rest.

Hier muss beachten, dass Sie müssen zuerst diese Idee testen, um zu sehen, ob seine Arbeit, und es vielleicht verbessern, und hat in der meint, dass, wenn Sie die Seiten auf dem Server zu komprimieren haben die Länge ist nicht die richtige und vielleicht müssen Sie komprimieren sie auf Global.asax die tatsächlich Länge haben.

Hope diese Hilfe.

Andere Tipps

Nun, da der IIS-Protokolle bereits die Anforderung Größe und Antwortgröße enthalten, es scheint nicht, wie zu viel Mühe ein kleines Tool zu entwickeln, um sie zu analysieren und die Gesamt pro Tag / Woche / Monat berechnen / was auch immer.

Der Versuch, Verkehr zu segmentieren auf Host-Basis ist schwierig, in meiner Erfahrung. Stattdessen sollten Sie finden können, wenn Sie jeden Mieter ihre eigene IP (n) für die Anwendungen geben Programme, die Bandbreite basierend auf IP überwachen wird.

ADDITION ist die Struktur von IIS, dass Sie eine Website haben sie alle für alle Mieter und anmelden, um die System Gabeln auf die richtige Datenbank zu regieren? Wenn ja, diese Probleme in Bezug schaffen kann, um die Versionierung, dass alle Standorte des Mieters werden alle genau das gleiche Schema haben müssen und würde alle müssen gleichzeitig aktualisiert werden, wenn Sie die Anwendung aktualisieren, so dass eine Schemaänderung erforderlich ist.

Eine andere Struktur, die Geräusche wie das, was Sie haben, ist, dass jeder Mieter ihre eigene Website hat etwa so:

tenant1_site/appvirtualdir
tenant2_site/appvirtualdir
...

Wo die appvirtualdir Punkte auf dem gleichen physischen Pfad für alle Standorte des Mieters. Wenn alle Clients die gleiche Anwendungsversion haben, verwenden sie alle buchstäblich den gleichen Code. Wenn Sie dieses Szenario und eine Art der Authentifizierung haben, dann müssen Sie eine IP pro Mieter ohnehin wegen SSL. SSL wird nur binden an IP und den Port im Gegensatz zu Nicht-SSL, die IP, Port und Host binden. Wenn das der Fall wäre, dann Überwachen des Verkehrs auf IP-Basis wird immer noch einfacher und genauer, wie es auf dem Router oder über ein Netzwerk-Monitor durchgeführt werden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top