如何获取azure云服务的指标数据?

时间:2017-04-17 09:56:55

标签: azure

我正在使用云服务api,并希望阅读云服务的指标数据。 由于云洞察API不支持提供者名称空间' Microsoft.ClassicCompute'

还有其他方法可以找到它。

3 个答案:

答案 0 :(得分:0)

可以使用azure InsightsClient获取指标。

答案 1 :(得分:0)

您只能通过InsightsClient获取基本的“外部”指标(CPU /网络输入/输出)。从Azure获取指标的整体基础架构正在转向新发布的Metrics API,目前只有少数资源通过此API支持。

从云服务获取详细指标的最佳方法是利用Azure表存储并查找由Azure诊断扩展(或Azure诊断模块,如果您处于SDK 2.5之前版本)创建的WADPerformanceCounters表。此表将包含受监控的云角色中所有实例的所有性能计数器值。

或者,您可以使用第三方工具(如CloudMonix)为云服务和其他Azure资源获取漂亮的仪表板,警报,自动化等(请注意:我与CloudMonix有关联)

答案 2 :(得分:0)

如上所述,您可以从Insight Client获取指标数据。

为此,您需要首先获取要监视数据的部署槽。 以下是获取部署位置的示例网址。

https://management.azure.com/subscriptions/ {SubscriptionId} / resourceGroups / {ResourceGroupName} /providers/Microsoft.ClassicCompute/domainNames/ {CloudServiceName} /槽/生产/角色?API-版本= 2014年1月1日

现在你需要将插槽传递给下面的网址。

var url="/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ClassicCompute/domainNames/{CloudServiceName}/slots/Production/roles/{deployement slot}/"
string start = DateTime.UtcNow.AddHours(-1).ToString(dateTimeFormat);;
            string end = DateTime.UtcNow.ToString(dateTimeFormat);
            StringBuilder sb = new StringBuilder(filter);
            if (!string.IsNullOrEmpty(filter))
            {
                sb.Append(" and ");
            }
            sb.AppendFormat("startTime eq {0} and endTime eq {1}", start, end);
            sb.AppendFormat(" and timeGrain eq duration'{0}'", duration);
            using (var client = new InsightsClient(credentials))
            {
                    return client.MetricOperations.GetMetrics(url, sb.ToString()); 
            }