使用历史数据查找高峰时间

时间:2019-02-20 20:37:01

标签: azure-application-insights kusto appinsights kql

我正在尝试平均找出一天中哪个时段的应用程序中最活跃的用户。数据包括时间戳和ID。我将时间戳转换为“日期”(M / d / yy)列和“小时”(HH:mm)列,以便可以按小时查找平均用户数。

例如,如果在2/17/2019的15:00有6个用户,而在2/18/2019的15:00在5个用户,而在2/19/2019的15:00在4个用户用户,则在15:00的平均用户数为5。我想查询一个表,该表具有从0:00到23:45的每15分钟垃圾箱,以及每个时间的平均用户数。到目前为止,这是我尝试过的方法,但是当我手动计算时,查询不会显示正确的结果:

libmemcached

感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

这可能是由于dcount是实际非重复计数as per this doc的近似值造成的:

语法

summarize dcount(Expr [, Accuracy])

参数

Expr:将用于聚合计算的表达式。

精度(如果指定)控制速度和精度之间的平衡(请参见注释)。

  • 0 =最不准确,最快的计算。错误1.6%
  • 1 =默认值,它在准确性和计算时间之间取得平衡;误差约为0.8%。
  • 2 =准确而缓慢的计算;误差约为0.4%。
  • 3 =额外的精度和缓慢的计算;误差约为0.28%。
  • 4 =超准确,最慢的计算;误差约为0.2%。

您可以尝试使用精度等级4,这应该使事情更接近于手动计算。

或者,您可以尝试利用双倍summarize(甚至更慢,但要尽可能精确):

| summarize by ID, hourNum
| summarize count() by hourNum

然后,您可以在hourNum上加入ID计数和DateCount并进行除法。

总的来说,我建议使用更准确的dcount来简化操作并获得足够的精度。