使用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());
}
}