我知道在Azure中生成webrole和worker-role中的性能计数器和诊断。
问题换句话说,我可以获得性能计数器数据,我对任何托管服务使用Service Management API的方式......?
要在服务器中执行哪些预配置...?以获取CPU数据...... ???
答案 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周围编写自己的自定义包装器来检索数据。您只需要存储帐户名称和密钥。