Search in sources :

Example 6 with TagVWildcardFilter

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());
}
Also used : TagVFilter(net.opentsdb.query.filter.TagVFilter) TagVWildcardFilter(net.opentsdb.query.filter.TagVWildcardFilter) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 7 with TagVWildcardFilter

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());
        }
    }
}
Also used : TagVFilter(net.opentsdb.query.filter.TagVFilter) TagVRegexFilter(net.opentsdb.query.filter.TagVRegexFilter) TagVILiteralOrFilter(net.opentsdb.query.filter.TagVLiteralOrFilter.TagVILiteralOrFilter) TagVWildcardFilter(net.opentsdb.query.filter.TagVWildcardFilter) ArrayList(java.util.ArrayList) Matchers.anyString(org.mockito.Matchers.anyString) TagVLiteralOrFilter(net.opentsdb.query.filter.TagVLiteralOrFilter) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 8 with TagVWildcardFilter

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());
}
Also used : TagVFilter(net.opentsdb.query.filter.TagVFilter) TagVWildcardFilter(net.opentsdb.query.filter.TagVWildcardFilter) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 9 with TagVWildcardFilter

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));
}
Also used : TagVFilter(net.opentsdb.query.filter.TagVFilter) TagVWildcardFilter(net.opentsdb.query.filter.TagVWildcardFilter) ArrayList(java.util.ArrayList) Test(org.junit.Test) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest)

Example 10 with TagVWildcardFilter

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);
}
Also used : TSQuery(net.opentsdb.core.TSQuery) TagVWildcardFilter(net.opentsdb.query.filter.TagVWildcardFilter) TSSubQuery(net.opentsdb.core.TSSubQuery) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Aggregations

TagVWildcardFilter (net.opentsdb.query.filter.TagVWildcardFilter)12 Test (org.junit.Test)12 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)10 TSQuery (net.opentsdb.core.TSQuery)7 TSSubQuery (net.opentsdb.core.TSSubQuery)7 ArrayList (java.util.ArrayList)5 TagVFilter (net.opentsdb.query.filter.TagVFilter)5 TagVLiteralOrFilter (net.opentsdb.query.filter.TagVLiteralOrFilter)3 HashMap (java.util.HashMap)2 TagVILiteralOrFilter (net.opentsdb.query.filter.TagVLiteralOrFilter.TagVILiteralOrFilter)1 TagVRegexFilter (net.opentsdb.query.filter.TagVRegexFilter)1 Matchers.anyString (org.mockito.Matchers.anyString)1