当前位置: 首页 > 知识库问答 >
问题:

如何查询存储在azure WADMETRICS表中的度量?

隗瑞
2023-03-14

使用扩展度量,我试图检索特定VM的特定度量。每个查询似乎花费的时间都非常长,因为表中每隔15秒就会为每个VM创建新的记录。

所以我试图在最后5分钟内查询该表,但它不起作用,并给我一个错误。有人知道如何查询这些WADMETRICS表吗?

        CloudStorageAccount account = CloudStorageAccount.parse(connectionString);
        CloudTableClient cloudTableClient = account.createCloudTableClient();
        DateTime fiveMinutesAgo = DateTime.now().minusMinutes(5);
        String queryString = TableQuery.generateFilterCondition("Timestamp", TableQuery.QueryComparisons.GREATER_THAN_OR_EQUAL, fiveMinutesAgo.toString());
        TableQuery<TableServiceEntity> query = TableQuery.from(TableServiceEntity.class).where(queryString);

        CloudTable table = cloudTableClient.getTableReference("WADMetricsPT1MP10DV2S20191017");
        System.out.println(table.exists());
        System.out.println(table.getName());
        for (TableServiceEntity entity : table.execute(query)) {
            System.out.println(entity.getPartitionKey() + "\t" + entity.getRowKey());
        }

共有1个答案

穆飞星
2023-03-14

根据我的测试,如果您想通过过滤timetap来查询WADMETRICS表,请参考下面的代码:

 CloudStorageAccount account = CloudStorageAccount.parse("connection string");
        CloudTableClient client = account.createCloudTableClient();

        CloudTable table = client.getTableReference("WADMetricsPT1MP10DV2S20191017");
        System.out.println(table.exists());
        System.out.println(table.getName());





        Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
        cal.add(Calendar.HOUR, -19);
        cal.add(Calendar.MINUTE,-21);
        Date date = cal.getTime();
//        SimpleDateFormat df = new  SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'");
//        date = df.parse(df.format(date));
//
        System.out.println(date.toString());



        String queryString = TableQuery.generateFilterCondition("Timestamp",TableQuery.QueryComparisons.GREATER_THAN_OR_EQUAL, date);

        TableQuery<TableServiceEntity> query = TableQuery.from(TableServiceEntity.class).where(queryString);
        Iterable<TableServiceEntity> results = table.execute(query);
        int i=0;
        for (TableServiceEntity  entity:results
             ) {
            i +=1;
            System.out.println(entity.getPartitionKey());
        }

        System.out.println(i); 
 类似资料:
  • 问题内容: 我之所以来到这里,是因为我在Oracle数据库中没有足够的经验来解决这个问题。让我解释: 桌子 我有一个表,我们会打电话给 属性 ,包含3列: ID ,属性的ID, -edit:ENTITY_ID为好,它是指/编辑-实体 , TABLE_NAME ,包含表的名称,其中的存储该属性的值,以及 Column_name ,其中包含该表中存储该值的列的名称。 在 Table_name 列中引用

  • 问题内容: 我真的是编程新手,但我正在研究它。我有一个我不知道如何解决的问题。我在mongoDB中收集了许多文档,并且正在使用Elasticsearch查询字段。问题是我想将搜索的输出存储回mongoDB中,但存储在不同的DB中。我知道我必须创建一个临时数据库,该数据库必须随每个搜索结果进行更新。但是该怎么做呢?或者给我阅读文档,以便我可以学习。我将非常感谢您的帮助! 问题答案: Mongo本身不

  • 在我的AppMapper.xml中,我有一个查询,如: 假设它将返回姓名,地址,年龄,职业,这些都是字符串。我用这个对吗? *我正在询问是使用resultType=String还是使用resultMap“PersonProfileObj” 我的理解正确吗?

  • 我想评估一下我的Windows Azure表存储查询是如何缩放的。为此,我建立了一个简单的测试环境,在这个环境中,我可以增加表中的数据量,并测量查询的执行时间。基于时间,我想定义一个成本函数,它可以用来评估未来查询的性能。 我评估了以下查询: 使用PartitionKey和RowKey查询 使用PartitionKey和属性进行查询 使用PartitionKey和两个行键进行查询 带有Partit

  • 您好,从我的问题开始:Windows Azure表访问延迟分区键和行键选择有关我在 Azure 存储帐户中组织数据的方式。我有一个表存储方案,旨在存储有关实体的信息。 大约有4000-5000个实体。共有6种实体类型,类型大致均匀分布。所以每个大约800英尺。 参数键:实体类型-日期 行键:实体标识 随着问题的详细说明,我一直遇到延迟问题,查询多个分区似乎需要很长时间。 基本上,一个可能的解决方案