Question

Salut, Nous développons une application multi-locataire Asp.Net avec base de données distincte pour chaque locataire, dans lequel l'une des exigences est de surveiller l'utilisation de la bande passante pour chaque locataire,

J'ai essayé de chercher, mais pas trouvé beaucoup d'aide sur le sujet, nous voulons dire avec précision combien de bande passante est utilisée pour chaque locataire alors que chaque locataire peut avoir son propre domaine de premier niveau ou un sous-domaine ou une combinaison des deux .

quelles sont les options disponibles, celles que je peux penser peut être

  1. IIS Log suivi on entend une application séparée qui calcule la largeur de bande pour chaque locataire.
  2. Se connecter chaque demande et réponse à un locataire dans l'application, puis calculer l'utilisation totale de la bande passante sur cette base.
  3. Utiliser des composants tiers partie si disponible

Alors, que pensez-vous sera la meilleure approche, même s'il y a une autre façon de le faire.

Était-ce utile?

La solution

Ok, est une idée ici (que je ne l'ai pas tester, laisser cela à vous)

global.asax utiliser une de cette fonction (trouver celui qui ont une taille finale valide)

Application_PostRequestHandlerExecute
Application_ReleaseRequestState

et obtenir la taille que vous avez envoyer avec

Response.Filter.Length

Pas besoin de Métion, que vous obtenez le nom de l'appel à l'aide du

HttpContext.Current.Request.Path

Cette fonction appelle à toutes les demandes, afin que vous puissiez obtenir votre taille et vous faire le reste.

Ici doit noter que vous devez d'abord tester cette idée pour voir si son travail, et peut-être améliorer, et ont dans le mien que si vous avez compresser les pages sur le serveur de la longueur n'est pas correct et peut-être que vous devez compresser le Global.asax d'avoir la longueur réellement.

Espérons que cela aide.

Autres conseils

Eh bien, puisque les journaux IIS contiennent déjà la taille de la demande et la taille de réponse, il ne semble pas trop de difficultés à développer un petit outil pour les analyser et calculer le total par jour / semaine / mois / whatever.

Essayer de segmenter le trafic basé sur l'hôte est difficile dans mon expérience. Au lieu de cela, si vous donnez à chaque locataire (s) IP pour les applications que vous devriez être en mesure de trouver des programmes qui surveilleront la bande passante basée sur IP.

AJOUT La structure de IIS que vous avez un site Web pour les gouverner tous pour tous les locataires et à la connexion des fourches du système à la base de données appropriée? Si oui, cela peut créer des problèmes en ce qui concerne versioning dans ce que tous les sites de locataires devront tous avoir exactement le même schéma et il faudrait tous être mis à jour simultanément lorsque vous mettez à jour l'application de telle sorte qu'un changement de schéma est nécessaire.

Une autre structure, qui ressemble à ce que vous pourriez avoir, est que chaque locataire a son propre site comme ceci:

tenant1_site/appvirtualdir
tenant2_site/appvirtualdir
...

Lorsque les points de appvirtualdir au même chemin physique pour tous les sites de locataires. Lorsque tous les clients ont la même version de l'application, ils utilisent tous littéralement le même code. Si vous avez ce scénario et une sorte d'authentification, alors vous aurez besoin d'un IP par locataire de toute façon à cause de SSL. SSL ne se lie à IP et le port à la différence non-SSL qui se liera à IP, le port et l'hôte. Si tel était le cas, la surveillance du trafic alors sur IP sera toujours plus simple et plus précis que cela pourrait se faire au niveau du routeur ou via un moniteur de réseau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top