如何在应用程序洞察分析中汇总最大值

时间:2017-10-06 14:24:21

标签: azure-application-insights ms-app-analytics

我们将通过应用程序洞察从我们的应用程序收集使用指标(通过customEvents表示customMeasurements)。如果我们的(窗口)服务启动,则收集数据,然后通过计时器在每日基础上收集数据。

我知道应用见解不适用于"在场所"软件,但我们无论如何都要这样做; - )

因此,我们从客户端安装的所有服务中获取数据。每个客户端都有一个唯一ID(GUID),允许我们按客户分组。 (我们不知道哪个客户支持这个指南,它只是"分组"客户的价值)

事件如下所示:

enter image description here

  1. 我现在想按customerId分组,
  2. 获取特定metricValue的最大值
  3. 并为所有客户创建总和。
  4. 我已经获得了1和2,但不知道如何总结最大值......

    enter image description here

    演示我尝试做什么我在SQL中添加了一个示例:

    CREATE TABLE [dbo].[metricData]
    (
        [RecId] [int] IDENTITY(1,1) NOT NULL,
        [customerId] [int], 
       [metricValue1] [int],
       [metricValue2] [int]
    )
    
    
    INSERT INTO [dbo].[metricData]     VALUES ( 1234, 1,1)
    INSERT INTO [dbo].[metricData]     VALUES ( 1234, 1,2)
    INSERT INTO [dbo].[metricData]     VALUES ( 1234, 1,1)
    INSERT INTO [dbo].[metricData]     VALUES ( 2345, 6,4)
    INSERT INTO [dbo].[metricData]     VALUES ( 2345, 8,7)
    INSERT INTO [dbo].[metricData]     VALUES ( 3456, 1,1)
    INSERT INTO [dbo].[metricData]     VALUES ( 3456, 1,2)
    INSERT INTO [dbo].[metricData]     VALUES ( 3456, 1,1)
    INSERT INTO [dbo].[metricData]     VALUES ( 4576, 20,30)
    
    
    select sum(maxVal1),sum(maxVal2) from
    (
      select max(metricValue1) as maxVal1, max(metricValue2) as maxVal2 from metricData
      group by customerId
    ) t
    

    基本上也像这里一样问,但对于应用见解:-) SQL: SUM the MAX values of results returned

    感谢任何提示

1 个答案:

答案 0 :(得分:2)

我得到了一个解决方案:

customEvents
|where name == "usageMetrics" 
|extend cn = tostring(customDimensions.["CustomerId"])
|summarize maxValTotal=  max(toint(customMeasurements.['metric_Total'])), maxValFree=  max(toint(customMeasurements.['metric_Free']))  by cn
|summarize dcount(cn),sum(maxValTotal), sum(maxValFree)
|render barchart  kind=unstacked    

希望这有助于其他人,因为这种查询语言不那么直观......

无论如何,请告诉我你是否有更好的解决方案来解决这个问题...