我可以远程捕获Azure Web / Worker角色的性能计数器吗?

时间:2011-04-11 11:41:18

标签: performance azure cloud diagnostics

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

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

问题换句话说,我可以获得性能计数器数据,我对任何托管服务使用Service Management API的方式......?

要在服务器中执行哪些预配置...?以获取CPU数据...... ???

2 个答案:

答案 0 :(得分:6)

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

EventTickCount :存储记录日志条目时的滴答计数(以UTC为单位)。

DeploymentId :部署的ID。

角色:角色名称

RoleInstance :角色实例名称

CounterName :计数器的名称

CounterValue :效果计数器的值

这里的关键之一是了解如何有效地查询此表(以及其他诊断表)。我们希望从诊断表中获取的一件事是获取数据一段时间。我们的本能是在Timestamp属性上查询此表。但是,这是一个 BAD DESIGN 选项,因为您在Azure表中知道数据是在PartitionKey和RowKey上编制索引的。查询任何其他属性将导致全表扫描,这将在您的表包含大量数据时产生问题。

这些日志表的好处是,PartitionKey值在某种程度上表示收集数据点的日期/时间。基本上,PartitionKey是使用DateTime.Ticks的更高阶位(以UTC为单位)创建的。因此,如果要获取特定日期/时间范围的数据,首先需要计算范围的Ticks(以UTC为单位),然后在其前面添加“0”并在查询中使用这些值。

如果您使用REST API进行查询,则可以使用如下语法:

PartitionKey ge'0<从日期/时间滴答UTC>'和PartitionKey le'0< to date / time in UTC>'

如果您在我们的工具Cloud Storage Studio,Visual Studio或Azure Storage Explorer中查询表存储,则可以使用此语法。

不幸的是,我对Storage Client库没有太多经验,但让我解决一些问题。可能我会写一篇关于它的博客文章。一旦我这样做,我会在这里发布链接到我的博客文章。

拉​​夫

答案 1 :(得分:3)

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