【问题标题】:Monitoring azure storage bandwidth usage for each of my users监控我的每个用户的 Azure 存储带宽使用情况
【发布时间】:2017-08-22 04:44:15
【问题描述】:

我有一个应用程序,它将向注册用户提供 SAS 令牌,以便直接从 Azure 存储上传和下载。监控每个用户的带宽的最佳方法是什么?

我查看了 Azure 提供的日志,并查看了一些可能的方法是将 SAS 令牌绑定到用户的 ip 地址,然后检查日志中的 <requester-ip-address> 字段。但是,这种方式似乎并不具体,因为多个用户可能具有相同的 IP 地址。

另外,我看到一个 <request-id-header> 字段,根据文档,它是一个唯一标识请求的不透明值。但是,如果用户直接与 azure storage 通信,我看不到任何获取标头值的方法。

谢谢。

【问题讨论】:

    标签: azure azure-storage azure-blob-storage


    【解决方案1】:

    另一种方法可能是:

    • 使用 Copy Blob API:使用用户的用户名创建一个临时文件并生成一个 SAS 令牌供用户下载文件
    • 在 SAS 令牌到期后删除文件
    • 检查存储帐户中的分析日志; blob 是否被访问,是否下载成功,如果没有下载字节数
    • 如果用户下载整个 blob 失败;您将在日志中看到 SASNetworkError
    • 如果发生 SASNetworkError;日志将包含用户下载的数据量 (https://docs.microsoft.com/en-us/rest/api/storageservices/storage-analytics-log-format response-packet-size)。这将告诉您在错误发生前完成的下载百分比。

    【讨论】:

    • 谢谢,我没有这么想过。但是如果文件很大,这是否会导致开销,用户必须等待一段时间才能准备好文件?
    • 如果您在账户内复制,可能会比较快(大部分是瞬时的)。但是,如果数据太大,我不会使用 Copy Blob API,而是按照您最初的计划使用原始文件进行下载。
    • 但是使用原始文件进行下载,我们无法可靠地跟踪用户的带宽?
    【解决方案2】:

    监控每个用户的带宽的最佳方法是什么?

    根据我的经验,我们没有合适的方法来做到这一点。似乎我们无法获得带宽值。如果您担心 azure 存储的限制,我们可以从 azure 官方文档中获取Azure Storage limitation

    每个存储帐户的最大请求速率 Blob:每秒 20,000 个请求2,适用于任何有效大小的 Blob(仅受帐户的入口/出口限制限制)

    单个 blob 的目标吞吐量每秒最多 60 MB,或每秒最多 500 个请求

    更新:

    我们可以根据Azure price calculator采取适当的策略来限制用户的成本。

    General-purpose Storage Accounts 为例,成本取决于存储事务和容量。如果我们想限制用户的成本。在我看来,我们可以限制用户的size*transaction

    • 为 SAS 令牌和用户创建关系

    • 从日志中获取request urirequest-content-length,我们还会统计用户的请求

    • 使用逻辑来控制用户的size*transaction

    关于存储分析日志格式请参考azuredocument

    其他相关链接:

    Understanding Windows Azure Storage Billing – Bandwidth, Transactions, and Capacity

    【讨论】:

    • 感谢您的回复。我更感兴趣的是我的应用程序的每个用户花费了我多少钱。因为 Azure 存储对从其服务器传输出来的数据收费。
    • 如果我们想限制用户的成本,我们可以使用我们的逻辑来控制它。我已经更新了答案。
    • 主要成本将用于带宽,我们正在努力跟踪这一点。 Azure calculator with bandwidth.
    • 当您说为SAS Tokens和用户创建关系时,您的意思是我们将记录存储在数据库中,然后在日志准备好后,我们将扫描日志以查找与SAS 令牌,并提取请求内容长度?
    • 您可以在数据库中记录用户请求内容的值,并从您的界面获取请求内容长度。
    猜你喜欢
    • 2021-08-21
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多