如何在应用程序洞察分析中求和最大值

how to sum max values in application insights analytics

我们将通过应用程序洞察力从我们的应用程序收集使用指标(意味着通过 customEvents 的 customMeasurements)。如果我们的 (windows) 服务启动,然后通过计时器每天收集数据。

我知道应用洞察不适用于 "on premises" 软件,但我们还是这样做了 ;-)

所以我们从客户端安装的所有服务中获取数据。每个客户都有一个唯一的 ID (GUID),它允许我们按客户分组。 (仅供参考,我们不知道该 guid 背后是哪个客户,它只是客户 "grouping" 的一个值)

事件看起来像这样:

  1. 我现在想按 customerId 分组,
  2. 获取特定指标值的最大值
  3. 并为所有客户创建总和。

我已经得到 1 和 2,但不知道如何求和最大值...

演示我正在尝试做什么 我在 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

感谢任何提示

我找到了解决方案:

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    

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

无论如何,如果您有更好的解决方案,请告诉我...