Search in sources :

Example 31 with MetricDataQuery

use of co.cask.cdap.api.metrics.MetricDataQuery in project cdap by caskdata.

the class MetricQueryParserTest method testOverview.

@Test
public void testOverview() throws MetricsPathException {
    MetricDataQuery query = MetricQueryParser.parse(URI.create("/system/reads?aggregate=true"));
    Assert.assertTrue(query.getSliceByTags().isEmpty());
    assertMetricName("system.reads", query);
}
Also used : MetricDataQuery(co.cask.cdap.api.metrics.MetricDataQuery) Test(org.junit.Test)

Example 32 with MetricDataQuery

use of co.cask.cdap.api.metrics.MetricDataQuery in project cdap by caskdata.

the class MetricQueryParserTest method testApps.

@Test
public void testApps() throws MetricsPathException {
    MetricDataQuery query = MetricQueryParser.parse(URI.create("/system/apps/app1/reads?aggregate=true"));
    verifyTags(query.getSliceByTags(), Id.Namespace.DEFAULT.getId(), Tag.APP, "app1");
    assertMetricName("system.reads", query);
}
Also used : MetricDataQuery(co.cask.cdap.api.metrics.MetricDataQuery) Test(org.junit.Test)

Example 33 with MetricDataQuery

use of co.cask.cdap.api.metrics.MetricDataQuery in project cdap by caskdata.

the class MetricQueryParserTest method testRelativeTimeArgs.

@Test
public void testRelativeTimeArgs() throws MetricsPathException {
    long now = TimeUnit.SECONDS.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
    MetricDataQuery query = MetricQueryParser.parse(URI.create("/system/apps/app1/reads?count=61&end=now-5s"));
    assertTimestamp(now - 5, query.getEndTs());
    assertTimestamp(now - 65, query.getStartTs());
    now = TimeUnit.SECONDS.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
    query = MetricQueryParser.parse(URI.create("/system/apps/app1/reads?count=61&start=now-65s"));
    assertTimestamp(now - 5, query.getEndTs());
    assertTimestamp(now - 65, query.getStartTs());
    now = TimeUnit.SECONDS.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
    query = MetricQueryParser.parse(URI.create("/system/apps/app1/reads?count=61&start=now-1m"));
    assertTimestamp(now, query.getEndTs());
    assertTimestamp(now - 60, query.getStartTs());
    now = TimeUnit.SECONDS.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
    query = MetricQueryParser.parse(URI.create("/system/apps/app1/reads?count=61&start=now-1h"));
    assertTimestamp(now - 3600 + 60, query.getEndTs());
    assertTimestamp(now - 3600, query.getStartTs());
    now = TimeUnit.SECONDS.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
    query = MetricQueryParser.parse(URI.create("/system/apps/app1/reads?count=61&start=now-1d"));
    assertTimestamp(now - 86400 + 60, query.getEndTs());
    assertTimestamp(now - 86400, query.getStartTs());
    now = TimeUnit.SECONDS.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
    query = MetricQueryParser.parse(URI.create("/system/apps/app1/reads?count=61&start=now-1m&end=now"));
    assertTimestamp(now, query.getEndTs());
    assertTimestamp(now - 60, query.getStartTs());
    now = TimeUnit.SECONDS.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
    query = MetricQueryParser.parse(URI.create("/system/apps/app1/reads?count=61&start=now-2m%2B20s"));
    assertTimestamp(now - 40, query.getEndTs());
    assertTimestamp(now - 100, query.getStartTs());
}
Also used : MetricDataQuery(co.cask.cdap.api.metrics.MetricDataQuery) Test(org.junit.Test)

Example 34 with MetricDataQuery

use of co.cask.cdap.api.metrics.MetricDataQuery in project cdap by caskdata.

the class MetricQueryParser method parseDelete.

static MetricDeleteQuery parseDelete(URI requestURI, String metricPrefix) throws MetricsPathException {
    MetricDataQueryBuilder builder = new MetricDataQueryBuilder();
    parseContext(requestURI.getPath(), builder);
    builder.setStartTs(0);
    builder.setEndTs(Integer.MAX_VALUE - 1);
    builder.setMetricName(metricPrefix);
    MetricDataQuery query = builder.build();
    return new MetricDeleteQuery(query.getStartTs(), query.getEndTs(), query.getMetrics().keySet(), query.getSliceByTags());
}
Also used : MetricDeleteQuery(co.cask.cdap.api.metrics.MetricDeleteQuery) MetricDataQuery(co.cask.cdap.api.metrics.MetricDataQuery)

Example 35 with MetricDataQuery

use of co.cask.cdap.api.metrics.MetricDataQuery in project cdap by caskdata.

the class MetricsQueryHelper method executeQuery.

private MetricQueryResult executeQuery(MetricQueryRequest queryRequest) throws Exception {
    if (queryRequest.getMetrics().size() == 0) {
        throw new IllegalArgumentException("Missing metrics parameter in the query");
    }
    Map<String, String> tagsSliceBy = humanToTagNames(transformTagMap(queryRequest.getTags()));
    MetricQueryRequest.TimeRange timeRange = queryRequest.getTimeRange();
    MetricDataQuery query = new MetricDataQuery(timeRange.getStart(), timeRange.getEnd(), timeRange.getResolutionInSeconds(), timeRange.getCount(), toMetrics(queryRequest.getMetrics()), tagsSliceBy, transformGroupByTags(queryRequest.getGroupBy()), timeRange.getInterpolate());
    Collection<MetricTimeSeries> queryResult = metricStore.query(query);
    long endTime = timeRange.getEnd();
    if (timeRange.getResolutionInSeconds() == Integer.MAX_VALUE && endTime == 0) {
        // for aggregate query, we set the end time to be query time (current time)
        endTime = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis());
    }
    return decorate(queryResult, timeRange.getStart(), endTime, timeRange.getResolutionInSeconds());
}
Also used : MetricTimeSeries(co.cask.cdap.api.metrics.MetricTimeSeries) MetricDataQuery(co.cask.cdap.api.metrics.MetricDataQuery) MetricQueryRequest(co.cask.cdap.proto.MetricQueryRequest)

Aggregations

MetricDataQuery (co.cask.cdap.api.metrics.MetricDataQuery)42 Test (org.junit.Test)25 MetricTimeSeries (co.cask.cdap.api.metrics.MetricTimeSeries)21 TimeValue (co.cask.cdap.api.dataset.lib.cube.TimeValue)11 IOException (java.io.IOException)5 ArrayList (java.util.ArrayList)5 Map (java.util.Map)5 KeyValueTable (co.cask.cdap.api.dataset.lib.KeyValueTable)4 ApplicationManager (co.cask.cdap.test.ApplicationManager)4 AggregationFunction (co.cask.cdap.api.dataset.lib.cube.AggregationFunction)3 ImmutableMap (com.google.common.collect.ImmutableMap)3 Collection (java.util.Collection)3 ObjectStore (co.cask.cdap.api.dataset.lib.ObjectStore)2 MetricStore (co.cask.cdap.api.metrics.MetricStore)2 QueueName (co.cask.cdap.common.queue.QueueName)2 DatasetFramework (co.cask.cdap.data2.dataset2.DatasetFramework)2 SparkAppUsingObjectStore (co.cask.cdap.spark.app.SparkAppUsingObjectStore)2 SparkManager (co.cask.cdap.test.SparkManager)2 ListenableFuture (com.google.common.util.concurrent.ListenableFuture)2 LoggerContext (ch.qos.logback.classic.LoggerContext)1