应用程序洞察具有横向扩展/多个实例的自定义指标:如何跨实例合并或消除歧义?

时间:2017-02-10 11:59:24

标签: azure azure-web-sites azure-application-insights

我有一个Azure应用服务网络应用。我正在使用TelemetryClient.TrackMetric从此Web应用程序跟踪一些自定义指标。我现在想要扩展我的应用程序,以便我有多个应用程序实例运行(最初我将扩展到2个实例)。执行此操作后,每个实例都将开始将自定义指标的值发送到Application Insights数据存储中。

当我在Azure门户网站Metrics Explorer或" Analytics"中查看我的AI数据时看来,我相信我会看到一个指标,我的两个实例的数据捆绑在一起并进行平均(可能我会看到交替的数据点,从实例1然后是2然后是1然后是2,依此类推)。这对我没有多大帮助。理想情况下,我希望能够看到两个数据集,一个用于我的两个实例。理想情况下,我希望看到一个数据集,表示两个实例中度量值的总和。

API /框架是否提供任何功能来帮助我这样做?什么是好方法?

2 个答案:

答案 0 :(得分:2)

在我看来,你应该拥有默认收集的属性"云角色实例"可在自定义指标上进行细分/过滤。你可以尝试一下,看看它是否向你展示了每个实例的相关信息吗?

答案 1 :(得分:1)

根据这个问题的答案Windows Azure Websites - Get Instance Identifier,有一种方法可以区分另一个实例。

使用该信息,您可以在指标的自定义属性中包含该标识符,如下所示:

var metric = new MetricTelemetry("MyMetric", 8);
metric.Properties.Add("InstanceIdentifier", instanceIdentifier);
telemetry.TrackMetric(metric);

现在,您不仅可以在仪表板中创建自定义图表,还可以使用Application Insights Analytics(https://docs.microsoft.com/en-us/azure/application-insights/app-insights-analytics),您可以查询每个实例的指标或组合,并根据结果创建表格,图表等。

例如:

customMetrics
| extend instanceIdentifier = tostring(customDimensions.InstanceIdentifier)
| summarize sum(value), avg(value)  by instanceIdentifier, name
| project instanceIdentifier, name , avg_value, sum_value