我想构建我自己的自定义简单网页,显示来自我们在 azure 上运行的许多网站的统计信息。(基本上是portal.azure.com 的精简版,它将在办公室中显示在监视器上的简单数据)
我想显示的所有统计信息当前都存在于 portal.azure.com 上,例如: - 每分钟的请求数 - 响应时间 - 每分钟的 Http 服务器错误数
我是否能够访问 azure 门户当前所做的相同数据,或者我是否需要在具有 API 的网站中实现其他内容,然后我可以使用该 API 来构建我的单独网站?
我想构建我自己的自定义简单网页,显示来自我们在 azure 上运行的许多网站的统计信息。(基本上是portal.azure.com 的精简版,它将在办公室中显示在监视器上的简单数据)
我想显示的所有统计信息当前都存在于 portal.azure.com 上,例如: - 每分钟的请求数 - 响应时间 - 每分钟的 Http 服务器错误数
我是否能够访问 azure 门户当前所做的相同数据,或者我是否需要在具有 API 的网站中实现其他内容,然后我可以使用该 API 来构建我的单独网站?
我目前仍在使用监控(经典)API。我还没有找到 API 的“非经典”版本,但我也没有花太多时间寻找。由于 Web 作业作为 Web 应用程序的一部分运行,因此您需要使用 Microsoft.WindowsAzure.Management.Monitoring.Metrics 命名空间中提供的工具来监视 Web 应用程序。
我发现 API 有点混乱,但花了一些时间与 PG 一起工作以使其正确。我在 MSPFE github 页面上提供了一些示例代码:https ://github.com/mspfe/AzureMetricsAPISampleKit 。运行此解决方案中的“测试”将向您展示如何使用该库。
您首先需要通过获取它们的列表来识别 Web 应用程序:
var webSpaceList = _webSiteClient.WebSpaces.List(); 然后收集可用的指标:
foreach (var website in websiteList) { MetricDefinitionListResponse wsMetricListResponse = _metricsClient.MetricDefinitions.List(website.WebsiteResourceId, null, null); website.MetricDefinitionsList = wsMetricListResponse.MetricDefinitionCollection; website.MetricNamesList = new List();
foreach (var metric in website.MetricDefinitionsList.Value)
{
website.MetricNamesList.Add(metric.Name);
}
MetricValueListResponse wsValueResponse = _metricsClient.MetricValues.List(website.WebsiteResourceId, website.MetricNamesList, "",
_timeGrain, _startDateTime, _endDateTime);
website.MetricValueList = wsValueResponse.MetricValueSetCollection;
}
从那里你应该有度量定义和值。对不起,如果这段代码有点过时......但它应该可以工作。
为了补充 Devians 的答案,我发现在我的网站上,我有用于 Web 服务器日志记录的诊断日志指向 Azure 存储帐户。这产生了名称为“WADMetrics ....”的表格,在这里我找到了时间段(1分钟、1小时等),其中包含获取响应最大值、最小值、平均值等指标
我需要的所有数据都在这些 azure 表中。因此,如果旧 API 不起作用,那么我将直接从中读取