我知道 Azure 中 webrole 和 worker-role 中性能计数器和诊断的生成。
- 我的问题是,鉴于订阅 ID 和其他证书(提供性能计数器的第 3 方应用程序),我能否在远程位置或远程应用程序上获取性能计数器。
换句话说,我可以获取性能计数器数据吗,就像我将服务管理 API 用于任何托管服务...?
在 Server... 中需要进行哪些预先配置?获取 CPU 数据...???
我知道 Azure 中 webrole 和 worker-role 中性能计数器和诊断的生成。
换句话说,我可以获取性能计数器数据吗,就像我将服务管理 API 用于任何托管服务...?
在 Server... 中需要进行哪些预先配置?获取 CPU 数据...???
以下是性能计数器表的属性说明:
EventTickCount:存储记录日志条目时的滴答计数(以 UTC 为单位)。
DeploymentId:部署的 ID。
角色:角色名称
RoleInstance : 角色实例名称
CounterName : 计数器的名称
CounterValue:性能计数器的值
这里的关键之一是了解如何有效地查询该表(和其他诊断表)。我们希望从诊断表中得到的一件事是获取一段时间内的数据。我们的本能是在 Timestamp 属性上查询该表。然而,这是一个糟糕的设计选择,因为您知道在 Azure 表中,数据在 PartitionKey 和 RowKey 上建立索引。查询任何其他属性将导致全表扫描,当您的表包含大量数据时,这将产生问题。
这些日志表的好处是 PartitionKey 值在某种程度上代表了收集数据点的日期/时间。基本上 PartitionKey 是通过使用 DateTime.Ticks 的高阶位(在 UTC 中)创建的。因此,如果您要获取某个日期/时间范围的数据,首先您需要计算您的范围的刻度(以 UTC 为单位),然后在其前面添加一个“0”并在您的查询中使用这些值。
如果您使用 REST API 进行查询,您将使用如下语法:
PartitionKey ge '0<from date/time ticks in UTC>' 和 PartitionKey le '0<to date/time in UTC>'。
如果您在我们的工具 Cloud Storage Studio、Visual Studio 或 Azure Storage Explorer 中查询表存储,则可以使用此语法。
不幸的是,我对 Storage Client 库没有太多经验,但让我解决一些问题。也许我会写一篇关于它的博客文章。完成后,我将在此处发布指向我的博客文章的链接。
高拉夫
由于性能计数器数据保存在 Windows Azure 表存储 (WADPerformanceCountersTable) 中,因此您可以通过远程应用程序查询该表(通过使用 Microsoft 的存储客户端库或围绕 Azure 表服务 REST API 编写自己的自定义包装器来检索数据。您只需要存储帐户名称和密钥。