我们正在使用Azure存储帐户存储一些文件,这些文件应由我们的应用程序根据用户需求下载。
即使不应该执行写操作(至少我没有想到),但在结算期的几天内,我们仍超出了所包含的写操作(请参见图片)。
关于价格,它仍在限制范围内,但我仍然想知道这是否正常以及如何分析此事。除了我们正在使用的存储
但是它们都不应该引起那么多写操作。我已经检查了我们函数的日志,最近没有一个访问队列或Blob的函数处于活动状态。有些功能会不时地运行,但每隔几分钟只能运行一次,而这些功能根本无法访问存储。
我不知道这是否相关,但是在我们的Blob存储中有一种定期进入(请参见下图)。周期约为1小时,但每5分钟有100 kB的基线。
进一步分析存储帐户的指标,我发现Blob每小时有1.90k个事务,而队列有1.3k每小时的事务流,这在我看来是非常特殊的。 (请注意,该图的分辨率为1小时,而前者的分辨率为5分钟)
我还能做些其他什么来分析写操作的来源吗?这有点令我困扰,因为它似乎不应该像那样。
答案 0 :(得分:2)
我遇到了完全相同的问题;在启用Storage Analytics并检查$logs
容器之后,我发现许多日志条目指示在对我的Azure Functions的每个请求中,这些写操作针对以下容器对象进行:
在我的Azure Functions代码中,我没有明确地这样写任何容器或文件,但是我配置了以下两个应用程序设置:
所以我在Azure的支持报价中填写了以下问题:
我分别从Azure支持团队获得了以下答案:
azure-webjobs-hosts
文件夹与功能应用程序相关联,并且在创建功能应用程序的同时默认创建。功能应用程序运行时,会将这些日志记录在使用AzureWebJobsStorage
配置的存储帐户中。AzureWebJobsStorage
。 Azure函数运行库将此存储帐户连接字符串用于除HTTP触发函数以外的所有函数。删除此应用程序设置将导致您的功能应用程序无法启动。顺便说一句,您可以删除AzureWebJobsDashboard
,它将停止Monitor而不是上面的操作。答案 1 :(得分:1)
查找有关存储使用情况的最佳位置是利用Storage Analytics
,尤其是Storage Analytics Logging
。
在同一存储帐户中有一个名为$logs
的特殊Blob容器,其中将包含有关对该存储帐户执行的每个操作的详细信息。您可以查看该Blob容器中的Blob并找到信息。
如果您的存储帐户中没有看到此Blob容器,则需要在存储帐户中启用存储分析。但是考虑到您可以看到指标数据,我想它已经启用。
关于这些写操作的来源,您是否为“功能和应用服务”启用了诊断功能?这些将诊断日志写入Blob存储。另外,存储分析也正在写入同一帐户,这也将导致这些写入操作。
答案 2 :(得分:0)
就我而言,我有一个Azure App Insight,它在功能和应用程序服务的每分钟存储量上进行了1万笔交易,甚至认为其中只有很少的https请求。我不确定是什么触发了它们,但是一旦删除了应用洞察力,一切都会变得正常。