我仔细查看了Tailspin Surveys sample的Wasabi自动调节块。在Tailspin_TenantCount_Avg_10m
类中实现了TenantCountOperandElement
规则,该规则又提供了用于收集数据的TenantCountDataPointsCollector
类实例。
后者有
public IEnumerable<DataPoint> Collect(DateTimeOffset collectionTime)
实际检索度量标准数据的方法。该方法由Wasabi块调用。
调用该方法的频率是多少?
答案 0 :(得分:2)
编写自定义操作数时,您可以指定调用Collect方法的频率。 Wasabi将检查IDataPointsCollection.SamplingRate为此(由收集器实现)。
这可能是开发人员所拥有的知识(因为他可以更好地了解何时可以收集新数据),但您也可以在XML中明确指定此参数(尽管我不建议在生产)。
您甚至可以根据聚合函数中使用的时间长度来推导此采样率,因此,例如,如果操作数平均处理最后2小时的数据,则每次采样数据可能过于苛刻2分钟。
答案 1 :(得分:0)
Collect 方法的调用期,即当Wasabi将调用 IDataPointsCollector 时,由 SamplingRate 属性控制数据收集器。
当创建 IDataPointsCollector 时,操作数最终会传递此间隔。您在XML中指定的 Operand 元素始终可以应用 timespan 属性。因此,例如,我可以使用像simething这样的更短的时间跨度来定义上面列出的操作数。
<rules ...>
...
<operands>
<tenantCountOperand alias="Tailspin_TenantCount_Avg_2m" timespan="00:2:00"
aggregate="Average" xmlns="http://Tailspin/TenantCount" />
</operands>
</rules>