@Override public Object deserializeKey(String key, DeserializationContext ctxt) throws IOException, JsonProcessingException { return MetricType.fromTextCode(key); } }
private String metricTypeToColumnName(MetricType<?> type) { switch(type.getCode()) { case 0: return "n_value"; case 1: return "availability"; case 2: return "l_value"; case 3: return "l_value"; case 4: return "s_value"; case 5: return "n_value"; default: throw new RuntimeException("Unsupported metricType"); } }
@Override public String toString() { return getText(); }
public Func1<Row, Boolean> typeFilter(MetricType<?> type, int index) { return row -> { MetricType<?> metricType = MetricType.fromCode(row.getByte(index)); return (type == null && metricType.isUserType()) || metricType == type; }; }
return datapoints.collect(CompressedPointContainer::new, (container, d) -> { switch(metricType.getCode()) { case 0: // GAUGE compressor.addValue(d.getTimestamp(), (Double) d.getValue()); default: throw new RuntimeException("Metric of type " + metricType.getText() + " is not supported " + "in compression");
@Override public Observable<MetricId<?>> call(Observable<Row> rows) { return rows.map(row -> new MetricId<>(row.getString(0), MetricType.fromCode(row.getByte(1)), row.getString(2))); } }
@SuppressWarnings("unchecked") @Override public <T> Observable<Metric<T>> findMetrics(String tenantId, MetricType<T> metricType) { Observable<Metric<T>> setFromMetricsIndex = null; Observable<Metric<T>> setFromData = dataAccess.findAllMetricIdentifiersInData() .doOnError(Throwable::printStackTrace) .filter(row -> tenantId.equals(row.getString(0))) .compose(new MetricIdentifierFromFullDataRowTransformer(defaultTTL)) .distinct() .map(m -> new Metric(m, DEFAULT_RETENTION)); if (metricType == null) { setFromMetricsIndex = Observable.from(MetricType.userTypes()) .map(type -> (MetricType<T>) type) .flatMap(type -> dataAccess.findMetricsInMetricsIndex(tenantId, type) .compose(new MetricsIndexRowTransformer<>(tenantId, type, defaultTTL))); } else { setFromMetricsIndex = dataAccess.findMetricsInMetricsIndex(tenantId, metricType) .compose(new MetricsIndexRowTransformer<>(tenantId, metricType, defaultTTL)); setFromData = setFromData.filter(m -> metricType.equals(m.getType())); } return setFromMetricsIndex.concatWith(setFromData).distinct(Metric::getMetricId); }
public Func1<MetricId<?>, Boolean> metricTypeFilter(MetricType<?> type) { return tMetricId -> (type == null && tMetricId.getType().isUserType()) || tMetricId.getType() == type; } }
private Observable<Void> deleteMetricData(String tenantId) { return Observable.from(MetricType.all()) .flatMap(type -> metricsService.findMetrics(tenantId, type)) .flatMap(metric -> metricsService.deleteMetric(metric.getMetricId())); }
return datapoints.collect(CompressedPointContainer::new, (container, d) -> { switch(metricType.getCode()) { case 0: // GAUGE compressor.addValue(d.getTimestamp(), (Double) d.getValue()); default: throw new RuntimeException("Metric of type " + metricType.getText() + " is not supported " + "in compression");
public Func1<Row, Boolean> typeFilter(MetricType<?> type, int index) { return row -> { MetricType<?> metricType = MetricType.fromCode(row.getByte(index)); return (type == null && metricType.isUserType()) || metricType == type; }; }
@Override public Observable<MetricId<?>> call(Observable<Row> rows) { return rows.map(row -> new MetricId<>(row.getString(0), MetricType.fromCode(row.getByte(1)), row.getString(2))); } }
@SuppressWarnings("unchecked") @Override public <T> Observable<Metric<T>> findMetrics(String tenantId, MetricType<T> metricType) { Observable<Metric<T>> setFromMetricsIndex = null; Observable<Metric<T>> setFromData = dataAccess.findAllMetricIdentifiersInData() .doOnError(Throwable::printStackTrace) .filter(row -> tenantId.equals(row.getString(0))) .compose(new MetricIdentifierFromFullDataRowTransformer(defaultTTL)) .distinct() .map(m -> new Metric(m, DEFAULT_RETENTION)); if (metricType == null) { setFromMetricsIndex = Observable.from(MetricType.userTypes()) .map(type -> (MetricType<T>) type) .flatMap(type -> dataAccess.findMetricsInMetricsIndex(tenantId, type) .compose(new MetricsIndexRowTransformer<>(tenantId, type, defaultTTL))); } else { setFromMetricsIndex = dataAccess.findMetricsInMetricsIndex(tenantId, metricType) .compose(new MetricsIndexRowTransformer<>(tenantId, metricType, defaultTTL)); setFromData = setFromData.filter(m -> metricType.equals(m.getType())); } return setFromMetricsIndex.concatWith(setFromData).distinct(Metric::getMetricId); }
public Func1<MetricId<?>, Boolean> metricTypeFilter(MetricType<?> type) { return tMetricId -> (type == null && tMetricId.getType().isUserType()) || tMetricId.getType() == type; } }
private Observable<Void> deleteMetricData(String tenantId) { return Observable.from(MetricType.all()) .flatMap(type -> metricsService.findMetrics(tenantId, type)) .flatMap(metric -> metricsService.deleteMetric(metric.getMetricId())); }
private String metricTypeToColumnName(MetricType<?> type) { switch(type.getCode()) { case 0: return "n_value"; case 1: return "availability"; case 2: return "l_value"; case 3: return "l_value"; case 4: return "s_value"; case 5: return "n_value"; default: throw new RuntimeException("Unsupported metricType"); } }
@Override public String toString() { return getText(); }