使用QueryTimeseriesMeta接口,您可以指定多种条件检索时间线。
前提条件
参数
metaQueryCondition表示检索时间线的条件,包括compositeMetaQueryCondition(组合条件)、measurementMetaQueryCondition(度量名称条件)、dataSourceMetaQueryCondition(数据源条件)、tagMetaQueryCondition(标签条件)、attributeMetaQueryCondition(属性条件)和updateTimeMetaQueryCondition(更新时间条件)。详细参数说明请参见下表。
参数 | 说明 |
---|---|
compositeMetaQueryCondition | 组合条件,包括如下内容:
|
measurementMetaQueryCondition | 度量名称条件,包括如下内容:
|
dataSourceMetaQueryCondition | 数据源条件,包括如下内容:
|
tagMetaQueryCondition | 标签条件,包括如下内容:
|
attributeMetaQueryCondition | 时间线元数据的属性条件,包括如下内容:
|
updateTimeMetaQueryCondition | 时间线元数据的更新时间条件,包括如下内容:
|
示例
查询test_timeseries_table时序表中度量名称为cpu,标签中含有os标签且标签前缀为"Ubuntu"的所有时间线。
private static void queryTimeseriesMeta(TimeseriesClient client) {
String tableName = "test_timeseries_table";
QueryTimeseriesMetaRequest queryTimeseriesMetaRequest = new QueryTimeseriesMetaRequest(tableName);
// 查询度量名称为cpu,标签中含有os标签且前缀为"Ubuntu"的所有时间线。即measurement_name="cpu" and have_prefix(os, "Ubuntu")
CompositeMetaQueryCondition compositeMetaQueryCondition = new CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND);
compositeMetaQueryCondition.addSubCondition(new MeasurementMetaQueryCondition(MetaQuerySingleOperator.OP_EQUAL, "cpu"));
compositeMetaQueryCondition.addSubCondition(new TagMetaQueryCondition(MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu"));
queryTimeseriesMetaRequest.setCondition(compositeMetaQueryCondition);
queryTimeseriesMetaRequest.setGetTotalHits(true);
QueryTimeseriesMetaResponse queryTimeseriesMetaResponse = client.queryTimeseriesMeta(queryTimeseriesMetaRequest);
System.out.println(queryTimeseriesMetaResponse.getTotalHits());
for (TimeseriesMeta timeseriesMeta : queryTimeseriesMetaResponse.getTimeseriesMetas()) {
System.out.println(timeseriesMeta.getTimeseriesKey().getMeasurementName());
System.out.println(timeseriesMeta.getTimeseriesKey().getDataSource());
System.out.println(timeseriesMeta.getTimeseriesKey().getTags());
System.out.println(timeseriesMeta.getAttributes());
System.out.println(timeseriesMeta.getUpdateTimeInUs());
}
}