Domanda

Ciao, stiamo sviluppando un'applicazione multi-tenant in Asp.Net con database separato per ogni inquilino, in cui uno dei requisiti è quello di monitorare l'utilizzo della larghezza di banda per ogni inquilino,

Ho provato a cercare ma non trovato molto aiuto sul tema, vogliamo monitorare esattamente quanta banda viene utilizzata per ogni inquilino mentre ogni inquilino può avere un proprio dominio di primo livello o un sottodominio o una combinazione di entrambi .

Quindi quali sono le opzioni disponibili, quelle che mi viene in mente può essere

  1. IIS Log sorveglianza si intende un programma separato che calcola la larghezza di banda per ogni inquilino.
  2. Accedere ogni richiesta e risposta per un inquilino dall'interno dell'applicazione e quindi calcolare l'utilizzo totale della larghezza di banda in base a questo.
  3. uso di alcune terze parti componenti se disponibili

Allora, cosa ne pensi sarà l'approccio migliore, anche se non v'è altro modo per fare questo.

È stato utile?

Soluzione

Ok, qui è un'idea (che non ho prova, lasciare che a voi)

Il global.asax utilizzare uno di questa funzione (trovare quella che hanno una dimensione finale valida)

Application_PostRequestHandlerExecute
Application_ReleaseRequestState

e ottenere la dimensione che avete inviare con

Response.Filter.Length

Non c'è bisogno di metion, che si ottiene il nome del file della chiamata utilizzando il

HttpContext.Current.Request.Path

Questa funzioni chiamate con ogni singola richiesta, in modo da poter ottenere la misura e fare il resto.

Qui deve notare, che è necessario prima di testare questa idea per vedere se il suo lavoro, e magari migliorarlo, e hanno in miniera che se si dispone di comprimere le pagine sul server di lunghezza non è il corretto e forse è necessario comprimerla in Global.asax per avere la realtà lunghezza.

Spero che questo aiuto.

Altri suggerimenti

Bene, dal momento che i registri di IIS contengono già la dimensione richiesta e dimensioni della risposta, non sembra troppo disturbo per sviluppare un piccolo strumento per analizzare loro e calcolare il totale per giorno / settimana / mese / qualunque cosa.

Il tentativo di segmentare il traffico in base a host è difficile della mia esperienza. Invece, se si dà ogni inquilino il proprio IP (s) per le applicazioni che si dovrebbe essere in grado di trovare i programmi che controllerà la larghezza di banda in base a IP.

OLTRE è la struttura di IIS che avete un sito web per domarli tutti per tutti gli inquilini e le forche login di sistema al database corretto? Se è così, questo può creare problemi per quanto riguarda il controllo delle versioni in che tutti i cantieri della inquilino saranno tutti devono avere esattamente lo stesso schema e sarebbero tutti essere necessario aggiornare simultaneamente quando si aggiorna l'applicazione in modo tale che è necessaria una modifica dello schema.

Un'altra struttura, che suona come quello che si può avere, è che ogni inquilino ha il proprio sito web in questo modo:

tenant1_site/appvirtualdir
tenant2_site/appvirtualdir
...

Dove i punti appvirtualdir allo stesso percorso fisico per tutti i siti di inquilino. Quando tutti i clienti hanno la stessa versione dell'applicazione, sono tutti usano letteralmente lo stesso codice. Se si dispone di questo scenario e una sorta di autenticazione, allora si avrà bisogno di un IP per inquilino in ogni caso a causa di SSL. SSL si legherà solo per IP e la porta a differenza non SSL che si legano a IP, la porta e l'host. Se così fosse, allora il traffico di monitoraggio basato su IP sarà ancora più semplice e preciso come potrebbe essere fatto al router o tramite un monitor di rete.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top