boolean first = true; for (StatisticsResult statisticsResult : statisticsResults) { count += statisticsResult.getCount(); sum += statisticsResult.getSum(); if (first) { min = statisticsResult.getMin(); max = statisticsResult.getMax(); } else { min = Math.min(min, statisticsResult.getMin()); max = Math.max(max, statisticsResult.getMax()); double standardDeviationS2 = 0.0; for (StatisticsResult statisticsResult : statisticsResults) { standardDeviationS1 += statisticsResult.getCount() * Math.pow(statisticsResult.getStandardDeviation(), 2.0); standardDeviationS2 += statisticsResult.getCount() * Math.pow(statisticsResult.getAverage() - average, 2.0); return new StatisticsResult(count, sum, min, max, standardDeviation);
private static StatisticsResult reduceStatisticsResults(List<Aggregation> aggs) { List<StatisticsResult> results = new ArrayList<>(); for (Aggregation agg : aggs) { if (agg instanceof ExtendedStats) { ExtendedStats extendedStats = (ExtendedStats) agg; long count = extendedStats.getCount(); double sum = extendedStats.getSum(); double min = extendedStats.getMin(); double max = extendedStats.getMax(); double standardDeviation = extendedStats.getStdDeviation(); results.add(new StatisticsResult(count, sum, min, max, standardDeviation)); } else { throw new VertexiumException("Aggregation is not a statistics: " + agg.getClass().getName()); } } return StatisticsResult.combine(results); } }
public JSONObject getAverages(int minutes, Graph graph, Authorizations authorizations) { Date minutesAgo = new Date(System.currentTimeMillis() - minutes * 60 * 1000); Query q = graph.query(authorizations) .has(VisalloProperties.CONCEPT_TYPE.getPropertyName(), PingOntology.IRI_CONCEPT_PING) .has(PingOntology.CREATE_DATE.getPropertyName(), Compare.GREATER_THAN, minutesAgo) .limit(0); q.addAggregation(new StatisticsAggregation(PingOntology.SEARCH_TIME_MS.getPropertyName(), PingOntology.SEARCH_TIME_MS.getPropertyName())); q.addAggregation(new StatisticsAggregation(PingOntology.RETRIEVAL_TIME_MS.getPropertyName(), PingOntology.RETRIEVAL_TIME_MS.getPropertyName())); q.addAggregation(new StatisticsAggregation(PingOntology.GRAPH_PROPERTY_WORKER_WAIT_TIME_MS.getPropertyName(), PingOntology.GRAPH_PROPERTY_WORKER_WAIT_TIME_MS.getPropertyName())); q.addAggregation(new StatisticsAggregation(PingOntology.LONG_RUNNING_PROCESS_WAIT_TIME_MS.getPropertyName(), PingOntology.LONG_RUNNING_PROCESS_WAIT_TIME_MS.getPropertyName())); QueryResultsIterable<Vertex> vertices = q.vertices(); StatisticsResult searchTimeAgg = vertices.getAggregationResult(PingOntology.SEARCH_TIME_MS.getPropertyName(), StatisticsResult.class); StatisticsResult retrievalTimeAgg = vertices.getAggregationResult(PingOntology.RETRIEVAL_TIME_MS.getPropertyName(), StatisticsResult.class); StatisticsResult gpwWaitTimeAgg = vertices.getAggregationResult(PingOntology.GRAPH_PROPERTY_WORKER_WAIT_TIME_MS.getPropertyName(), StatisticsResult.class); StatisticsResult lrpWaitTimeAgg = vertices.getAggregationResult(PingOntology.LONG_RUNNING_PROCESS_WAIT_TIME_MS.getPropertyName(), StatisticsResult.class); JSONObject json = new JSONObject(); json.put("pingCount", searchTimeAgg.getCount()); json.put("averageSearchTime", searchTimeAgg.getAverage()); json.put("averageRetrievalTime", retrievalTimeAgg.getAverage()); json.put("graphPropertyWorkerCount", gpwWaitTimeAgg.getCount()); json.put("averageGraphPropertyWorkerWaitTime", gpwWaitTimeAgg.getAverage()); json.put("longRunningProcessCount", lrpWaitTimeAgg.getCount()); json.put("averageLongRunningProcessWaitTime", lrpWaitTimeAgg.getAverage()); return json; }
public static <TResult extends AggregationResult> TResult createEmptyResult(Class<? extends TResult> resultType) { if (resultType.equals(TermsResult.class)) { return resultType.cast(new TermsResult(new ArrayList<>())); } if (resultType.equals(StatisticsResult.class)) { return resultType.cast(new StatisticsResult(0, 0.0, 0.0, 0.0, 0.0)); } if (resultType.equals(HistogramResult.class)) { return resultType.cast(new HistogramResult(new ArrayList<>())); } if (resultType.equals(RangeResult.class)) { return resultType.cast(new RangeResult(new ArrayList<>())); } if (resultType.equals(PercentilesResult.class)) { return resultType.cast(new PercentilesResult(new ArrayList<>())); } if (resultType.equals(GeohashResult.class)) { return resultType.cast(new GeohashResult(new ArrayList<>())); } if (resultType.equals(CardinalityResult.class)) { return resultType.cast(new CardinalityResult(0)); } throw new VertexiumException("Unhandled type to create empty results for: " + resultType.getName()); } }
private static StatisticsResult reduceStatisticsResults(List<Aggregation> aggs) { List<StatisticsResult> results = new ArrayList<>(); for (Aggregation agg : aggs) { if (agg instanceof ExtendedStats) { ExtendedStats extendedStats = (ExtendedStats) agg; long count = extendedStats.getCount(); double sum = extendedStats.getSum(); double min = extendedStats.getMin(); double max = extendedStats.getMax(); double standardDeviation = extendedStats.getStdDeviation(); results.add(new StatisticsResult(count, sum, min, max, standardDeviation)); } else { throw new VertexiumException("Aggregation is not a statistics: " + agg.getClass().getName()); } } return StatisticsResult.combine(results); } }
public static <TResult extends AggregationResult> TResult createEmptyResult(Class<? extends TResult> resultType) { if (resultType.equals(TermsResult.class)) { return resultType.cast(new TermsResult(new ArrayList<>())); } if (resultType.equals(StatisticsResult.class)) { return resultType.cast(new StatisticsResult(0, 0.0, 0.0, 0.0, 0.0)); } if (resultType.equals(HistogramResult.class)) { return resultType.cast(new HistogramResult(new ArrayList<>())); } if (resultType.equals(RangeResult.class)) { return resultType.cast(new RangeResult(new ArrayList<>())); } if (resultType.equals(PercentilesResult.class)) { return resultType.cast(new PercentilesResult(new ArrayList<>())); } if (resultType.equals(GeohashResult.class)) { return resultType.cast(new GeohashResult(new ArrayList<>())); } if (resultType.equals(CardinalityResult.class)) { return resultType.cast(new CardinalityResult(0)); } throw new VertexiumException("Unhandled type to create empty results for: " + resultType.getName()); } }
boolean first = true; for (StatisticsResult statisticsResult : statisticsResults) { count += statisticsResult.getCount(); sum += statisticsResult.getSum(); if (first) { min = statisticsResult.getMin(); max = statisticsResult.getMax(); } else { min = Math.min(min, statisticsResult.getMin()); max = Math.max(max, statisticsResult.getMax()); double standardDeviationS2 = 0.0; for (StatisticsResult statisticsResult : statisticsResults) { standardDeviationS1 += statisticsResult.getCount() * Math.pow(statisticsResult.getStandardDeviation(), 2.0); standardDeviationS2 += statisticsResult.getCount() * Math.pow(statisticsResult.getAverage() - average, 2.0); return new StatisticsResult(count, sum, min, max, standardDeviation);
private static StatisticsResult reduceStatisticsResults(List<Aggregation> aggs) { List<StatisticsResult> results = new ArrayList<>(); for (Aggregation agg : aggs) { if (agg instanceof ExtendedStats) { ExtendedStats extendedStats = (ExtendedStats) agg; long count = extendedStats.getCount(); double sum = extendedStats.getSum(); double min = extendedStats.getMin(); double max = extendedStats.getMax(); double standardDeviation = extendedStats.getStdDeviation(); results.add(new StatisticsResult(count, sum, min, max, standardDeviation)); } else { throw new VertexiumException("Aggregation is not a statistics: " + agg.getClass().getName()); } } return StatisticsResult.combine(results); } }
private ClientApiSearchResponse.AggregateResult toClientApiStatisticsResult(StatisticsResult agg) { ClientApiSearchResponse.StatisticsAggregateResult result = new ClientApiSearchResponse.StatisticsAggregateResult(); result.setCount(agg.getCount()); result.setAverage(agg.getAverage()); result.setMin(agg.getMin()); result.setMax(agg.getMax()); result.setStandardDeviation(agg.getStandardDeviation()); result.setSum(agg.getSum()); return result; }
private static StatisticsResult reduceStatisticsResults(List<Aggregation> aggs) { List<StatisticsResult> results = new ArrayList<>(); for (Aggregation agg : aggs) { if (agg instanceof ExtendedStats) { ExtendedStats extendedStats = (ExtendedStats) agg; long count = extendedStats.getCount(); double sum = extendedStats.getSum(); double min = extendedStats.getMin(); double max = extendedStats.getMax(); double standardDeviation = extendedStats.getStdDeviation(); results.add(new StatisticsResult(count, sum, min, max, standardDeviation)); } else { throw new VertexiumException("Aggregation is not a statistics: " + agg.getClass().getName()); } } return StatisticsResult.combine(results); } }
assertEquals(3, stats.getCount()); assertEquals(65.0, stats.getSum(), 0.1); assertEquals(20.0, stats.getMin(), 0.1); assertEquals(25.0, stats.getMax(), 0.1); assertEquals(2.35702, stats.getStandardDeviation(), 0.1); assertEquals(21.666666, stats.getAverage(), 0.1); assertEquals(0, stats.getCount()); assertEquals(0.0, stats.getSum(), 0.1); assertEquals(0.0, stats.getMin(), 0.1); assertEquals(0.0, stats.getMax(), 0.1); assertEquals(0.0, stats.getAverage(), 0.1); assertEquals(0.0, stats.getStandardDeviation(), 0.1); assertEquals(4, stats.getCount()); assertEquals(95.0, stats.getSum(), 0.1); assertEquals(20.0, stats.getMin(), 0.1); assertEquals(30.0, stats.getMax(), 0.1); assertEquals(23.75, stats.getAverage(), 0.1); assertEquals(4.14578, stats.getStandardDeviation(), 0.1);
assertEquals(3, stats.getCount()); assertEquals(65.0, stats.getSum(), 0.1); assertEquals(20.0, stats.getMin(), 0.1); assertEquals(25.0, stats.getMax(), 0.1); assertEquals(2.35702, stats.getStandardDeviation(), 0.1); assertEquals(21.666666, stats.getAverage(), 0.1); assertEquals(0, stats.getCount()); assertEquals(0.0, stats.getSum(), 0.1); assertEquals(0.0, stats.getMin(), 0.1); assertEquals(0.0, stats.getMax(), 0.1); assertEquals(0.0, stats.getAverage(), 0.1); assertEquals(0.0, stats.getStandardDeviation(), 0.1); assertEquals(4, stats.getCount()); assertEquals(95.0, stats.getSum(), 0.1); assertEquals(20.0, stats.getMin(), 0.1); assertEquals(30.0, stats.getMax(), 0.1); assertEquals(23.75, stats.getAverage(), 0.1); assertEquals(4.14578, stats.getStandardDeviation(), 0.1);