从表存储中删除旧的Windows Azure诊断数据(性能计数器等)

汤姆·帕祖里克

我在Azure上运行了多个Windows VM,这些Windows VM配置为收集性能计数器和事件日志。

所有这些都在Azure Portal内VM资源的“诊断设置...”中进行配置。有一个Windows Azure Diagnostics代理,可在VM上收集此数据并将其存储到存储帐户中(在Table Storage中)。

所有这些收集的数据(性能指标,指标,日志等)都没有任何保留策略,并且似乎没有任何设置方法因此,它只会永久存储在存储帐户的表存储中。

这就是我的问题所在-这些表中现在有太多数据(在我的情况下为几个TB),并且为了保持它而花费了很多钱。而且它只会随着时间的推移而不断增加。

相关的存储帐户表如下所示:

  • WADMetrics* (Windows Azure诊断指标表)
  • WADPerformanceCountersTable (Windows Azure诊断性能计数器表)
  • WASWindowsEventLogsTable (Windows Azure诊断Windows事件日志表)

有什么方法可以删除这些表中的旧数据,从而不会破坏任何数据吗?甚至更好的是,是否有某种方法可以配置保留策略或对其进行设置,以使其不会永远累积下去?

停止捐款

有什么方法可以删除这些表中的旧数据,从而不会破坏任何数据吗?

您将需要手动执行此操作。它的工作方式是,您将首先查询需要删除的数据,然后在获取数据后将其删除。PartitionKey存储在这些表中的实体的属性实际上表示日期/时间值(以零表示的滴答声,使其等于长度的字符串),因此您需要采用from和to日期/时间值,将它们转换为滴答声,它是一个19字符长的字符串(通过添加适当数量的零)并查询数据。在客户端获得数据后,您将把删除请求发送回表存储。

为了加快整个过程,您可以做一些事情:

  • 查询数据时,请使用查询投影仅返回PartitionKeyRowKey属性,因为仅需要删除这两个属性即可。
  • 对于删除,您可以使用实体批处理事务。这样可以大大加快删除操作的速度。
  • 为了更快地删除,您可以在与存储帐户相同的区域中启动虚拟机。这样,您就无需为数据出口费用付费。

不久前,我写了一篇博客文章,可能对您有所帮助:https : //gauravmantri.com/2012/02/17/effective-way-of-fetching-diagnostics-data-from-windows-azure-diagnostics-table- hint-use-partitionkey /

甚至更好的是,是否有某种方法可以配置保留策略或对其进行设置,以使其不会永远累积下去?

不幸的是,至少到目前为止还没有。有保留设置,但仅适用于斑点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章