1

我知道 Azure 中 webrole 和 worker-role 中性能计数器和诊断的生成。

  • 我的问题是,鉴于订阅 ID 和其他证书(提供性能计数器的第 3 方应用程序),我能否在远程位置或远程应用程序上获取性能计数器。

换句话说,我可以获取性能计数器数据吗,就像我将服务管理 API 用于任何托管服务...?

在 Server... 中需要进行哪些预先配置?获取 CPU 数据...???

4

2 回答 2

6

以下是性能计数器表的属性说明:

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 库没有太多经验,但让我解决一些问题。也许我会写一篇关于它的博客文章。完成后,我将在此处发布指向我的博客文章的链接。

高拉夫

于 2011-04-12T13:36:44.723 回答
3

由于性能计数器数据保存在 Windows Azure 表存储 (WADPerformanceCountersTable) 中,因此您可以通过远程应用程序查询该表(通过使用 Microsoft 的存储客户端库或围绕 Azure 表服务 REST API 编写自己的自定义包装器来检索数据。您只需要存储帐户名称和密钥。

于 2011-04-11T14:38:00.920 回答