@Before public void setUp() throws Exception { super.setUp(); AstyanaxWriter writer = AstyanaxWriter.getInstance(); IncomingMetricMetadataAnalyzer analyzer = new IncomingMetricMetadataAnalyzer(MetadataCache.getInstance()); // insert something every 1m for 24h for (int i = 0; i < 1440; i++) { final long curMillis = baseMillis + i * 60000; final List<Metric> metrics = new ArrayList<Metric>(); final Metric metric = getRandomIntMetric(locators[0], curMillis); final Metric stringMetric = getRandomStringmetric(locators[1], curMillis); metrics.add(metric); metrics.add(stringMetric); analyzer.scanMetrics(new ArrayList<IMetric>(metrics)); writer.insertFull(metrics); } httpHandler = new HttpRollupsQueryHandler(); // generate every level of rollup for the raw data Granularity g = Granularity.FULL; while (g != Granularity.MIN_1440) { g = g.coarser(); for (Locator locator : locators) { generateRollups(locator, baseMillis, baseMillis + 86400000, g); } } final Map<Granularity, Integer> answerForNumericMetric = new HashMap<Granularity, Integer>(); answerForNumericMetric.put(Granularity.FULL, 1440); answerForNumericMetric.put(Granularity.MIN_5, 289); answerForNumericMetric.put(Granularity.MIN_20, 73); answerForNumericMetric.put(Granularity.MIN_60, 25); answerForNumericMetric.put(Granularity.MIN_240, 7); answerForNumericMetric.put(Granularity.MIN_1440, 2); final Map<Granularity, Integer> answerForStringMetric = new HashMap<Granularity, Integer>(); answerForStringMetric.put(Granularity.FULL, 1440); answerForStringMetric.put(Granularity.MIN_5, 1440); answerForStringMetric.put(Granularity.MIN_20, 1440); answerForStringMetric.put(Granularity.MIN_60, 1440); answerForStringMetric.put(Granularity.MIN_240, 1440); answerForStringMetric.put(Granularity.MIN_1440, 1440); locatorToPoints.put(locators[0], answerForNumericMetric); locatorToPoints.put(locators[1], answerForStringMetric); }