use of net.opentsdb.query.filter.TagVWildcardFilter in project opentsdb by OpenTSDB.
the class TestTSSubQuery method validateWithFilterAndGroupByFilterSameTag.
@Test
public void validateWithFilterAndGroupByFilterSameTag() {
TSSubQuery sub = getMetricForValidate();
final List<TagVFilter> filters = new ArrayList<TagVFilter>(1);
filters.add(new TagVWildcardFilter("host", "veti*"));
sub.setFilters(filters);
Map<String, String> tags = new HashMap<String, String>();
tags.put("host", TagVWildcardFilter.FILTER_NAME + "(*nari)");
sub.setTags(tags);
sub.validateAndSetQuery();
assertEquals("sys.cpu.0", sub.getMetric());
assertEquals(TagVWildcardFilter.FILTER_NAME + "(*nari)", sub.getTags().get("host"));
assertEquals(1, sub.getFilters().size());
assertEquals(Aggregators.SUM, sub.aggregator());
assertEquals(Aggregators.AVG, sub.downsampler());
assertEquals(300000, sub.downsampleInterval());
}
use of net.opentsdb.query.filter.TagVWildcardFilter in project opentsdb by OpenTSDB.
the class TestTags method parseWithMetricAndFilters.
@Test
public void parseWithMetricAndFilters() {
final List<TagVFilter> filters = new ArrayList<TagVFilter>();
String metric = Tags.parseWithMetricAndFilters("sys.cpu.user", filters);
assertEquals("sys.cpu.user", metric);
assertEquals(0, filters.size());
filters.clear();
metric = Tags.parseWithMetricAndFilters("sys.cpu.user{host=web01}", filters);
assertEquals("sys.cpu.user", metric);
assertEquals(1, filters.size());
assertEquals("host", filters.get(0).getTagk());
assertTrue(filters.get(0).isGroupBy());
assertTrue(filters.get(0) instanceof TagVLiteralOrFilter);
filters.clear();
metric = Tags.parseWithMetricAndFilters("sys.cpu.user{host=*}", filters);
assertEquals("sys.cpu.user", metric);
assertEquals(1, filters.size());
assertEquals("host", filters.get(0).getTagk());
assertTrue(filters.get(0).isGroupBy());
assertTrue(filters.get(0) instanceof TagVWildcardFilter);
filters.clear();
metric = Tags.parseWithMetricAndFilters("sys.cpu.user{host=web01}{}", filters);
assertEquals("sys.cpu.user", metric);
assertEquals(1, filters.size());
assertEquals("host", filters.get(0).getTagk());
assertTrue(filters.get(0).isGroupBy());
assertTrue(filters.get(0) instanceof TagVLiteralOrFilter);
filters.clear();
metric = Tags.parseWithMetricAndFilters("sys.cpu.user{host=*,owner=regexp(.*ob)}", filters);
assertEquals("sys.cpu.user", metric);
assertEquals(2, filters.size());
for (final TagVFilter filter : filters) {
if (filter instanceof TagVWildcardFilter) {
assertEquals("host", filter.getTagk());
} else if (filter instanceof TagVRegexFilter) {
assertEquals("owner", filter.getTagk());
}
assertTrue(filter.isGroupBy());
}
filters.clear();
metric = Tags.parseWithMetricAndFilters("sys.cpu.user{}{host=web01}", filters);
assertEquals("sys.cpu.user", metric);
assertEquals(1, filters.size());
assertEquals("host", filters.get(0).getTagk());
assertFalse(filters.get(0).isGroupBy());
assertTrue(filters.get(0) instanceof TagVLiteralOrFilter);
filters.clear();
metric = Tags.parseWithMetricAndFilters("sys.cpu.user{}{host=iliteral_or(web01|Web02)}", filters);
assertEquals("sys.cpu.user", metric);
assertEquals(1, filters.size());
assertEquals("host", filters.get(0).getTagk());
assertFalse(filters.get(0).isGroupBy());
assertTrue(filters.get(0) instanceof TagVILiteralOrFilter);
filters.clear();
metric = Tags.parseWithMetricAndFilters("sys.cpu.user{}{host=iliteral_or(web01|Web02),owner=*}", filters);
assertEquals("sys.cpu.user", metric);
assertEquals(2, filters.size());
for (final TagVFilter filter : filters) {
if (filter instanceof TagVWildcardFilter) {
assertEquals("owner", filter.getTagk());
} else if (filter instanceof TagVILiteralOrFilter) {
assertEquals("host", filter.getTagk());
}
assertFalse(filter.isGroupBy());
}
filters.clear();
metric = Tags.parseWithMetricAndFilters("sys.cpu.user{host=iliteral_or(web01|Web02)}{owner=*}", filters);
assertEquals("sys.cpu.user", metric);
System.out.println(filters);
assertEquals(2, filters.size());
for (final TagVFilter filter : filters) {
if (filter instanceof TagVWildcardFilter) {
assertEquals("owner", filter.getTagk());
assertFalse(filter.isGroupBy());
} else if (filter instanceof TagVILiteralOrFilter) {
assertEquals("host", filter.getTagk());
assertTrue(filter.isGroupBy());
}
}
}
use of net.opentsdb.query.filter.TagVWildcardFilter in project opentsdb by OpenTSDB.
the class TestTSSubQuery method validateWithFilterAndGroupByFilter.
@Test
public void validateWithFilterAndGroupByFilter() {
TSSubQuery sub = getMetricForValidate();
final List<TagVFilter> filters = new ArrayList<TagVFilter>(1);
filters.add(new TagVWildcardFilter("colo", "lga*"));
sub.setFilters(filters);
Map<String, String> tags = new HashMap<String, String>();
tags.put("host", TagVWildcardFilter.FILTER_NAME + "(*nari)");
sub.setTags(tags);
sub.validateAndSetQuery();
assertEquals("sys.cpu.0", sub.getMetric());
assertEquals(TagVWildcardFilter.FILTER_NAME + "(*nari)", sub.getTags().get("host"));
assertEquals(1, sub.getFilters().size());
assertEquals(Aggregators.SUM, sub.aggregator());
assertEquals(Aggregators.AVG, sub.downsampler());
assertEquals(300000, sub.downsampleInterval());
}
use of net.opentsdb.query.filter.TagVWildcardFilter in project opentsdb by OpenTSDB.
the class TestTsdbQuery method configureFromQueryWithGroupByAndRegularFilters.
@Test
public void configureFromQueryWithGroupByAndRegularFilters() throws Exception {
setDataPointStorage();
final TSQuery ts_query = getTSQuery();
final List<TagVFilter> filters = new ArrayList<TagVFilter>(1);
filters.add(new TagVWildcardFilter("host", "*imes"));
filters.add(TagVFilter.Builder().setFilter("*").setTagk("host").setType("wildcard").setGroupBy(true).build());
ts_query.getQueries().get(0).setFilters(filters);
ts_query.validateAndSetQuery();
query = new TsdbQuery(tsdb);
query.configureFromQuery(ts_query, 0).joinUninterruptibly();
assertArrayEquals(METRIC_BYTES, ForTesting.getMetric(query));
assertEquals(2, ForTesting.getFilters(query).size());
assertEquals(1, ForTesting.getGroupBys(query).size());
assertArrayEquals(TAGK_BYTES, ForTesting.getGroupBys(query).get(0));
assertEquals(1, ForTesting.getRowKeyLiterals(query).size());
assertNull(ForTesting.getRowKeyLiterals(query).get(TAGK_BYTES));
assertNotNull(ForTesting.getRateOptions(query));
}
use of net.opentsdb.query.filter.TagVWildcardFilter in project opentsdb by OpenTSDB.
the class TestQueryRpc method parseQueryMTypeWGroupByFilterAndWildcardFilterSameTagK.
@Test
public void parseQueryMTypeWGroupByFilterAndWildcardFilterSameTagK() throws Exception {
HttpQuery query = NettyMocks.getQuery(tsdb, "/api/query?start=1h-ago&m=sum:sys.cpu.0{host=wildcard(*tsort)}" + "{host=wildcard(*quirm)}");
TSQuery tsq = (TSQuery) parseQuery.invoke(rpc, tsdb, query, expressions);
TSSubQuery sub = tsq.getQueries().get(0);
sub.validateAndSetQuery();
assertEquals(2, sub.getFilters().size());
assertTrue(sub.getFilters().get(0) instanceof TagVWildcardFilter);
assertTrue(sub.getFilters().get(1) instanceof TagVWildcardFilter);
}
Aggregations