Bandwidth Monitoring in asp.net

前端 未结 3 1276
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-13 14:36

Hi, We are developing a multi-tenant application in Asp.Net with separate Database for each tenant, in which one of the requirement is to monitor the bandwidth usage for eac

相关标签:
3条回答
  • 2021-01-13 15:10

    Ok, here is an idea (that I have not test, leave that to you)

    On global.asax use one of this function (find the one that have a valid final size)

    Application_PostRequestHandlerExecute
    Application_ReleaseRequestState
    

    and get the size that you have send with

    Response.Filter.Length
    

    No need to metion, that you get the filename of the call using the

    HttpContext.Current.Request.Path
    

    This functions called with every single request, so you can get your size and you do the rest.

    Here must note, that you need first to test this idea to see if its work, and maybe improve it, and have in mine that if you have compress the pages on server the length is not the correct and maybe you need to compress it on Global.asax to have the actually lenght.

    Hope this help.

    0 讨论(0)
  • 2021-01-13 15:25

    Well, since the IIS logs already contain the request size and response size, it doesn't seem like too much trouble to develop a small tool to parse them and calculate the total per day/week/month/whatever.

    0 讨论(0)
  • 2021-01-13 15:26

    Trying to segment traffic based on host is difficult in my experience. Instead, if you give each tenant their own IP(s) for the applications you should be able to find programs that will monitor bandwidth based on IP.

    ADDITION Is the structure of IIS that you have one website to rule them all for all tenants and on login the system forks to the proper database? If so, this may create problems with respect to versioning in that all tenant's sites will all have to have exactly the same schema and would all need to be updated simultaneously when you update the application such that a schema change is required.

    Another structure, which sounds like what you may have, is that each tenant has their own website like so:

    tenant1_site/appvirtualdir
    tenant2_site/appvirtualdir
    ...
    

    Where the appvirtualdir points to the same physical path for all tenant's sites. When all clients have the same application version, they are all using literally the same code. If you have this scenario and some sort of authentication, then you will need one IP per tenant anyway because of SSL. SSL will only bind to IP and port unlike non-SSL which will bind to IP, port and host. If that were the case, then monitoring traffic based on IP will still be simpler and more accurate as it could be done at the router or via a network monitor.

    0 讨论(0)
提交回复
热议问题