1

我仔细查看了用于 Wasabi 自动缩放块的Tailspin 调查样本。Tailspin_TenantCount_Avg_10m在类中实现了一个规则,该规则TenantCountOperandElement又提供了一个TenantCountDataPointsCollector用于收集数据的类实例。

后者有

public IEnumerable<DataPoint> Collect(DateTimeOffset collectionTime)

实际检索度量数据的方法。该方法由 Wasabi 块调用。

该方法多久调用一次?

4

2 回答 2

2

在编写自定义操作数时,您是指定您希望调用 Collect 方法的频率的人。Wasabi 将为此检查 IDataPointsCollection.SamplingRate 属性(由您的收集器实现)。

这可能是开发人员将拥有的知识(因为他更清楚何时可以收集新数据),但您也可以让这个参数在 XML 中明确指定(尽管我不建议在生产中使用它)。

您甚至可以根据聚合函数中使用的时间跨度得出此采样率,例如,如果操作数对最后 2 小时的数据进行平均,则每 2 分钟对数据进行一次采样可能有点过大。

于 2012-02-21T02:24:01.787 回答
0

Collect方法的调用周期,即 Wasabi 调用IDataPointsCollector的时间,由数据收集器上的SamplingRate属性控制。

操作数在创建IDataPointsCollector时最终会通过此间隔。您在 XML 中指定的Operand元素始终可以应用时间跨度属性。因此,例如,我可以使用类似的方法以更短的时间跨度定义您上面列出的操作数。

<rules ...>
  ...
  <operands>
    <tenantCountOperand alias="Tailspin_TenantCount_Avg_2m" timespan="00:2:00" 
       aggregate="Average" xmlns="http://Tailspin/TenantCount" />
  </operands>
</rules>
于 2012-01-29T00:24:59.117 回答