如何在应用程序洞察分析中求和最大值
how to sum max values in application insights analytics
我们将通过应用程序洞察力从我们的应用程序收集使用指标(意味着通过 customEvents 的 customMeasurements)。如果我们的 (windows) 服务启动,然后通过计时器每天收集数据。
我知道应用洞察不适用于 "on premises" 软件,但我们还是这样做了 ;-)
所以我们从客户端安装的所有服务中获取数据。每个客户都有一个唯一的 ID (GUID),它允许我们按客户分组。 (仅供参考,我们不知道该 guid 背后是哪个客户,它只是客户 "grouping" 的一个值)
事件看起来像这样:
- 我现在想按 customerId 分组,
- 获取特定指标值的最大值
- 并为所有客户创建总和。
我已经得到 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
希望这对其他人有帮助,因为这种查询语言不是那么直观...
无论如何,如果您有更好的解决方案,请告诉我...
我们将通过应用程序洞察力从我们的应用程序收集使用指标(意味着通过 customEvents 的 customMeasurements)。如果我们的 (windows) 服务启动,然后通过计时器每天收集数据。
我知道应用洞察不适用于 "on premises" 软件,但我们还是这样做了 ;-)
所以我们从客户端安装的所有服务中获取数据。每个客户都有一个唯一的 ID (GUID),它允许我们按客户分组。 (仅供参考,我们不知道该 guid 背后是哪个客户,它只是客户 "grouping" 的一个值)
事件看起来像这样:
- 我现在想按 customerId 分组,
- 获取特定指标值的最大值
- 并为所有客户创建总和。
我已经得到 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
希望这对其他人有帮助,因为这种查询语言不是那么直观...
无论如何,如果您有更好的解决方案,请告诉我...