@Override public long getInput() { return getTotalMetric(context, inputName); }
@Override public void waitForinput(long count, long timeout, TimeUnit timeoutUnit) throws TimeoutException, InterruptedException { waitForTotalMetricCount(context, inputName, count, timeout, timeoutUnit); }
@Override public MetricsManager get() { return new MetricsManager(metricStore); } }
/** * get metrics total count value for a given context and metric. * @param tags that identify a context * @param metricName * @return the total metric */ public long getTotalMetric(Map<String, String> tags, String metricName) { MetricDataQuery query = getTotalCounterQuery(tags, metricName); return getSingleValueFromTotals(query); }
private long getTotalCounter(Map<String, String> context, String metricName) throws Exception { MetricDataQuery query = new MetricDataQuery(0, 0, Integer.MAX_VALUE, metricName, AggregationFunction.SUM, context, new ArrayList<String>()); try { Collection<MetricTimeSeries> result = getMetricsManager().query(query); if (result.isEmpty()) { return 0; } // since it is totals query and not groupBy specified, we know there's one time series List<TimeValue> timeValues = result.iterator().next().getTimeValues(); if (timeValues.isEmpty()) { return 0; } // since it is totals, we know there's one value only return timeValues.get(0).getValue(); } catch (Exception e) { throw Throwables.propagate(e); } } }
/** * returns service related metrics * @param namespace * @param applicationId * @param serviceId * @return {@link co.cask.cdap.api.metrics.RuntimeMetrics} */ public RuntimeMetrics getServiceMetrics(String namespace, String applicationId, String serviceId) { ServiceId service = new ServiceId(namespace, applicationId, serviceId); return getMetrics(MetricsTags.service(service), Constants.Metrics.Name.Service.SERVICE_INPUT, Constants.Metrics.Name.Service.SERVICE_PROCESSED, Constants.Metrics.Name.Service.SERVICE_EXCEPTIONS); }
@Override public RuntimeMetrics getMetrics() { return metricsManager.getServiceMetrics(programId.getNamespace(), programId.getApplication(), programId.getProgram()); } }
@Override public RuntimeMetrics getFlowletMetrics(String flowletId) { return metricsManager.getFlowletMetrics(programId.getNamespace(), programId.getApplication(), programId.getProgram(), flowletId); } }
RuntimeMetrics handlerMetrics = getMetricsManager().getServiceHandlerMetrics(NamespaceId.DEFAULT.getNamespace(), AppWithServices.APP_NAME, AppWithServices.SERVICE_NAME, handlerMetrics = getMetricsManager().getServiceHandlerMetrics(NamespaceId.DEFAULT.getNamespace(), AppWithServices.APP_NAME, "NoOpService",
@Override public Long call() throws Exception { Collection<MetricTimeSeries> metrics = getMetricsManager().query(new MetricDataQuery( 0, System.currentTimeMillis() / 1000L, Integer.MAX_VALUE, "system." + Constants.Metrics.Name.Dataset.OP_COUNT, AggregationFunction.SUM, ImmutableMap.of(Constants.Metrics.Tag.NAMESPACE, DefaultId.NAMESPACE.getNamespace(), Constants.Metrics.Tag.APP, SparkAppUsingObjectStore.class.getSimpleName(), Constants.Metrics.Tag.SPARK, CharCountProgram.class.getSimpleName(), Constants.Metrics.Tag.DATASET, "totals"), Collections.<String>emptyList())); if (metrics.isEmpty()) { return 0L; } Assert.assertEquals(1, metrics.size()); MetricTimeSeries ts = metrics.iterator().next(); Assert.assertEquals(1, ts.getTimeValues().size()); return ts.getTimeValues().get(0).getValue(); } }, 10L, TimeUnit.SECONDS, 50L, TimeUnit.MILLISECONDS);
/** * get metrics total count value for a given context and metric. * @param tags that identify a context * @param metricName * @return the total metric */ public long getTotalMetric(Map<String, String> tags, String metricName) { MetricDataQuery query = getTotalCounterQuery(tags, metricName); return getSingleValueFromTotals(query); }
/** * returns service related metrics * @param namespace * @param applicationId * @param serviceId * @return {@link co.cask.cdap.api.metrics.RuntimeMetrics} */ public RuntimeMetrics getServiceMetrics(String namespace, String applicationId, String serviceId) { ServiceId service = new ServiceId(namespace, applicationId, serviceId); return getMetrics(MetricsTags.service(service), Constants.Metrics.Name.Service.SERVICE_INPUT, Constants.Metrics.Name.Service.SERVICE_PROCESSED, Constants.Metrics.Name.Service.SERVICE_EXCEPTIONS); }
@Override public RuntimeMetrics getMetrics() { return metricsManager.getServiceMetrics(programId.getNamespace(), programId.getApplication(), programId.getProgram()); } }
@Override public long getProcessed() { return getTotalMetric(context, processedName); }
@Override public void waitForException(long count, long timeout, TimeUnit timeoutUnit) throws TimeoutException, InterruptedException { waitForTotalMetricCount(context, exceptionName, count, timeout, timeoutUnit); }
Collection<MetricTimeSeries> metrics = getMetricsManager().query( new MetricDataQuery( 0, System.currentTimeMillis() / 1000, Integer.MAX_VALUE,
/** * returns service handler related metrics * @param namespace * @param applicationId * @param serviceId * @param handlerId * @return {@link co.cask.cdap.api.metrics.RuntimeMetrics} */ public RuntimeMetrics getServiceHandlerMetrics(String namespace, String applicationId, String serviceId, String handlerId) { ServiceId id = new ServiceId(namespace, applicationId, serviceId); return getMetrics(MetricsTags.serviceHandler(id, handlerId), Constants.Metrics.Name.Service.SERVICE_INPUT, Constants.Metrics.Name.Service.SERVICE_PROCESSED, Constants.Metrics.Name.Service.SERVICE_EXCEPTIONS); }
@Override public MetricsManager get() { return new MetricsManager(metricStore); } }
@Override public long getProcessed() { return getTotalMetric(context, processedName); }
@Override public void waitForinput(long count, long timeout, TimeUnit timeoutUnit) throws TimeoutException, InterruptedException { waitForTotalMetricCount(context, inputName, count, timeout, timeoutUnit); }