From 7ad3e9fad22e2ae0435232aa99c398eab4176dcd Mon Sep 17 00:00:00 2001 From: gjoranv Date: Tue, 2 Feb 2021 12:38:43 +0100 Subject: Add histogram buckets for hits_per_query metric. --- .../java/com/yahoo/prelude/statistics/StatisticsSearcher.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'container-search/src') diff --git a/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java b/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java index 4940f707fd6..e6accafe2d4 100644 --- a/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java @@ -77,6 +77,7 @@ public class StatisticsSearcher extends Searcher { private final Value peakQPS; // peak 1s QPS private final Counter emptyResults; // number of results containing no concrete hits private final Value hitsPerQuery; // mean number of hits per query + private final Value hitsPerQueryBuckets; private final PeakQpsReporter peakQpsReporter; @@ -137,8 +138,12 @@ public class StatisticsSearcher extends Searcher { queryLatencyBuckets = Value.buildValue(QUERY_LATENCY_METRIC, manager, null); peakQPS = new Value(PEAK_QPS_METRIC, manager, new Value.Parameters().setLogRaw(false).setLogMax(true).setNameExtension(false)); hitsPerQuery = new Value(HITS_PER_QUERY_METRIC, manager, new Value.Parameters().setLogRaw(false).setLogMean(true).setNameExtension(false)); + hitsPerQueryBuckets = Value.buildValue(HITS_PER_QUERY_METRIC, manager, null); + emptyResults = new Counter(EMPTY_RESULTS_METRIC, manager, false); metricReceiver.declareGauge(QUERY_LATENCY_METRIC, Optional.empty(), new MetricSettings.Builder().histogram(true).build()); + metricReceiver.declareGauge(HITS_PER_QUERY_METRIC, Optional.empty(), new MetricSettings.Builder().histogram(true).build()); + scheduler.schedule(peakQpsReporter, 1000, 1000); } @@ -266,8 +271,10 @@ public class StatisticsSearcher extends Searcher { metric.add(DOCS_TOTAL_METRIC, queryCoverage.getActive(), metricContext); } int hitCount = result.getConcreteHitCount(); - hitsPerQuery.put((double) hitCount); + hitsPerQuery.put(hitCount); + hitsPerQueryBuckets.put(hitCount); metric.set(HITS_PER_QUERY_METRIC, (double) hitCount, metricContext); + metric.set(TOTALHITS_PER_QUERY_METRIC, (double) result.getTotalHitCount(), metricContext); metric.set(QUERY_OFFSET_METRIC, (double) (query.getHits() + query.getOffset()), metricContext); if (hitCount == 0) { -- cgit v1.2.3 From 0757f9eeb556a82802b9d960b3b17799062e8176 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Tue, 2 Feb 2021 14:32:43 +0100 Subject: Add histogram buckets for totalhits_per_query metric. --- .../com/yahoo/prelude/statistics/StatisticsSearcher.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'container-search/src') diff --git a/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java b/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java index e6accafe2d4..39d37139c5a 100644 --- a/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java @@ -78,6 +78,8 @@ public class StatisticsSearcher extends Searcher { private final Counter emptyResults; // number of results containing no concrete hits private final Value hitsPerQuery; // mean number of hits per query private final Value hitsPerQueryBuckets; + private final Value totalHitsPerQuery; + private final Value totalHitsPerQueryBuckets; private final PeakQpsReporter peakQpsReporter; @@ -139,11 +141,13 @@ public class StatisticsSearcher extends Searcher { peakQPS = new Value(PEAK_QPS_METRIC, manager, new Value.Parameters().setLogRaw(false).setLogMax(true).setNameExtension(false)); hitsPerQuery = new Value(HITS_PER_QUERY_METRIC, manager, new Value.Parameters().setLogRaw(false).setLogMean(true).setNameExtension(false)); hitsPerQueryBuckets = Value.buildValue(HITS_PER_QUERY_METRIC, manager, null); + totalHitsPerQuery = new Value(TOTALHITS_PER_QUERY_METRIC, manager, new Value.Parameters().setLogRaw(false).setLogMean(true).setNameExtension(false)); + totalHitsPerQueryBuckets = Value.buildValue(TOTALHITS_PER_QUERY_METRIC, manager, null); emptyResults = new Counter(EMPTY_RESULTS_METRIC, manager, false); metricReceiver.declareGauge(QUERY_LATENCY_METRIC, Optional.empty(), new MetricSettings.Builder().histogram(true).build()); metricReceiver.declareGauge(HITS_PER_QUERY_METRIC, Optional.empty(), new MetricSettings.Builder().histogram(true).build()); - + metricReceiver.declareGauge(TOTALHITS_PER_QUERY_METRIC, Optional.empty(), new MetricSettings.Builder().histogram(true).build()); scheduler.schedule(peakQpsReporter, 1000, 1000); } @@ -275,7 +279,11 @@ public class StatisticsSearcher extends Searcher { hitsPerQueryBuckets.put(hitCount); metric.set(HITS_PER_QUERY_METRIC, (double) hitCount, metricContext); - metric.set(TOTALHITS_PER_QUERY_METRIC, (double) result.getTotalHitCount(), metricContext); + long totalHitCount = result.getTotalHitCount(); + totalHitsPerQuery.put(totalHitCount); + totalHitsPerQueryBuckets.put(totalHitCount); + metric.set(TOTALHITS_PER_QUERY_METRIC, (double) totalHitCount, metricContext); + metric.set(QUERY_OFFSET_METRIC, (double) (query.getHits() + query.getOffset()), metricContext); if (hitCount == 0) { emptyResults.increment(); -- cgit v1.2.3 From 76d859b8b2265c7fc15ade9476753153160f872d Mon Sep 17 00:00:00 2001 From: gjoranv Date: Wed, 3 Feb 2021 16:09:39 +0100 Subject: Remove redundant Values. --- .../main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java | 6 ------ 1 file changed, 6 deletions(-) (limited to 'container-search/src') diff --git a/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java b/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java index 39d37139c5a..21f3e38ff4e 100644 --- a/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java @@ -77,9 +77,7 @@ public class StatisticsSearcher extends Searcher { private final Value peakQPS; // peak 1s QPS private final Counter emptyResults; // number of results containing no concrete hits private final Value hitsPerQuery; // mean number of hits per query - private final Value hitsPerQueryBuckets; private final Value totalHitsPerQuery; - private final Value totalHitsPerQueryBuckets; private final PeakQpsReporter peakQpsReporter; @@ -140,9 +138,7 @@ public class StatisticsSearcher extends Searcher { queryLatencyBuckets = Value.buildValue(QUERY_LATENCY_METRIC, manager, null); peakQPS = new Value(PEAK_QPS_METRIC, manager, new Value.Parameters().setLogRaw(false).setLogMax(true).setNameExtension(false)); hitsPerQuery = new Value(HITS_PER_QUERY_METRIC, manager, new Value.Parameters().setLogRaw(false).setLogMean(true).setNameExtension(false)); - hitsPerQueryBuckets = Value.buildValue(HITS_PER_QUERY_METRIC, manager, null); totalHitsPerQuery = new Value(TOTALHITS_PER_QUERY_METRIC, manager, new Value.Parameters().setLogRaw(false).setLogMean(true).setNameExtension(false)); - totalHitsPerQueryBuckets = Value.buildValue(TOTALHITS_PER_QUERY_METRIC, manager, null); emptyResults = new Counter(EMPTY_RESULTS_METRIC, manager, false); metricReceiver.declareGauge(QUERY_LATENCY_METRIC, Optional.empty(), new MetricSettings.Builder().histogram(true).build()); @@ -276,12 +272,10 @@ public class StatisticsSearcher extends Searcher { } int hitCount = result.getConcreteHitCount(); hitsPerQuery.put(hitCount); - hitsPerQueryBuckets.put(hitCount); metric.set(HITS_PER_QUERY_METRIC, (double) hitCount, metricContext); long totalHitCount = result.getTotalHitCount(); totalHitsPerQuery.put(totalHitCount); - totalHitsPerQueryBuckets.put(totalHitCount); metric.set(TOTALHITS_PER_QUERY_METRIC, (double) totalHitCount, metricContext); metric.set(QUERY_OFFSET_METRIC, (double) (query.getHits() + query.getOffset()), metricContext); -- cgit v1.2.3