我有一个Azure应用服务网络应用。我正在使用TelemetryClient.TrackMetric从此Web应用程序跟踪一些自定义指标。我现在想要扩展我的应用程序,以便我有多个应用程序实例运行(最初我将扩展到2个实例)。执行此操作后,每个实例都将开始将自定义指标的值发送到Application Insights数据存储中。
当我在Azure门户网站Metrics Explorer或" Analytics"中查看我的AI数据时看来,我相信我会看到一个指标,我的两个实例的数据捆绑在一起并进行平均(可能我会看到交替的数据点,从实例1然后是2然后是1然后是2,依此类推)。这对我没有多大帮助。理想情况下,我希望能够看到两个数据集,一个用于我的两个实例。理想情况下,我希望看到一个数据集,表示两个实例中度量值的总和。
API /框架是否提供任何功能来帮助我这样做?什么是好方法?
答案 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