summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian Aune <kkraune@users.noreply.github.com>2023-01-30 18:13:33 +0100
committerGitHub <noreply@github.com>2023-01-30 18:13:33 +0100
commitccf939eb4e2fe110983841e27ab71b6a2cf4bbb0 (patch)
treedf9693dc29295e4a9137a926373e85edeae128c7
parent0fc45985d61a173d390c373f107a1a5bdd4b5731 (diff)
parentd54ca0ea46c80542c65980608eee55d4207aad62 (diff)
Merge pull request #25805 from vespa-engine/general-metrics
General metrics
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java55
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java34
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/Unit.java2
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/VespaMetrics.java56
4 files changed, 99 insertions, 48 deletions
diff --git a/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java
index 145d9256fc5..72640310db1 100644
--- a/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java
+++ b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java
@@ -3,7 +3,7 @@ package com.yahoo.metrics;
/**
* @author gjoranv
*/
-public enum ContainerMetrics {
+public enum ContainerMetrics implements VespaMetrics {
HTTP_STATUS_1XX("http.status.1xx", Unit.RESPONSE, "Number of responses with a 1xx status"),
HTTP_STATUS_2XX("http.status.2xx", Unit.RESPONSE, "Number of responses with a 2xx status"),
@@ -108,7 +108,7 @@ public enum ContainerMetrics {
// SearchChain metrics
- PEAK_QPS("peak_qps", Unit.OPERATION_PER_SECOND, "The highest number of qps for a second for this metrics shapshot"),
+ PEAK_QPS("peak_qps", Unit.QUERY_PER_SECOND, "The highest number of qps for a second for this metrics shapshot"),
SEARCH_CONNECTIONS("search_connections", Unit.CONNECTION, "Number of search connections"),
FEED_OPERATIONS("feed.operations", Unit.OPERATION, "Number of document feed operations"),
FEED_LATENCY("feed.latency", Unit.MILLISECOND, "Feed latency"),
@@ -119,7 +119,7 @@ public enum ContainerMetrics {
QUERY_TIMEOUT("query_timeout", Unit.MILLISECOND, "The amount of time allowed for query execytion, from the client"),
FAILED_QUERIES("failed_queries", Unit.OPERATION, "The number of failed queries"),
DEGRADED_QUERIES("degraded_queries", Unit.OPERATION, "The number of degraded queries, e.g. due to some conent nodes not responding in time"),
- HITS_PER_QUERY("hits_per_query", Unit.HIT, "The number of hits returned"),
+ HITS_PER_QUERY("hits_per_query", Unit.HIT_PER_QUERY, "The number of hits returned"),
QUERY_HIT_OFFSET("query_hit_offset", Unit.HIT, "The offset for hits returned"),
DOCUMENTS_COVERED("documents_covered", Unit.DOCUMENT, "The combined number of documents considered during query evaluation"),
DOCUMENTS_TOTAL("documents_total", Unit.DOCUMENT, "The number of documents to be evaluated if all requests had been fully executed"),
@@ -127,7 +127,7 @@ public enum ContainerMetrics {
JDISC_RENDER_LATENCY("jdisc.render.latency", Unit.NANOSECOND, "The time used by the container to render responses"),
QUERY_ITEM_COUNT("query_item_count", Unit.ITEM, "The number of query items (terms, phrases, etc)"),
- TOTAL_HITS_PER_QUERY("totalhits_per_query", Unit.HIT, "The total number of documents found to match queries"),
+ TOTAL_HITS_PER_QUERY("totalhits_per_query", Unit.HIT_PER_QUERY, "The total number of documents found to match queries"),
EMPTY_RESULTS("empty_results", Unit.OPERATION, "Number of queries matching no documents"),
REQUESTS_OVER_QUOTA("requestsOverQuota", Unit.OPERATION, "The number of requests rejected due to exceeding quota"),
@@ -179,8 +179,7 @@ public enum ContainerMetrics {
CLUSTER_CONTROLLER_RESOURCE_USAGE_DISK_LIMIT("cluster-controller.resource_usage.disk_limit", Unit.FRACTION, "Memory space limit as a fraction of available memory"),
CLUSTER_CONTROLLER_REINDEXING_PROGRESS("reindexing.progress", Unit.FRACTION, "Re-indexing progress");
-
-
+
private final String name;
private final Unit unit;
private final String description;
@@ -195,48 +194,12 @@ public enum ContainerMetrics {
return name;
}
- public String description() {
- return description + " (unit: " + unit.shortName() + ")";
- }
-
- private String withSuffix(Suffix suffix) {
- return baseName() + "." + suffix.suffix();
- }
-
- public String ninety_five_percentile() {
- return withSuffix(Suffix.ninety_five_percentile);
- }
-
- public String ninety_nine_percentile() {
- return withSuffix(Suffix.ninety_nine_percentile);
- }
-
- public String average() {
- return withSuffix(Suffix.average);
+ public Unit unit() {
+ return unit;
}
- public String count() {
- return withSuffix(Suffix.count);
- }
-
- public String last() {
- return withSuffix(Suffix.last);
- }
-
- public String max() {
- return withSuffix(Suffix.max);
- }
-
- public String min() {
- return withSuffix(Suffix.min);
- }
-
- public String rate() {
- return withSuffix(Suffix.rate);
- }
-
- public String sum() {
- return withSuffix(Suffix.sum);
+ public String description() {
+ return description;
}
}
diff --git a/container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java b/container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java
new file mode 100644
index 00000000000..766accfca8f
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java
@@ -0,0 +1,34 @@
+package com.yahoo.metrics;
+
+/**
+ * @author gjoranv
+ */
+public enum SearchNodeMetrics implements VespaMetrics {
+
+ SAMPLE1("sample1", Unit.RESPONSE, "sample1"),
+ SAMPLE2("sample1", Unit.RESPONSE, "sample1");
+
+
+ private final String name;
+ private final Unit unit;
+ private final String description;
+
+ SearchNodeMetrics(String name, Unit unit, String description) {
+ this.name = name;
+ this.unit = unit;
+ this.description = description;
+ }
+
+ public String baseName() {
+ return name;
+ }
+
+ public Unit unit() {
+ return unit;
+ }
+
+ public String description() {
+ return description;
+ }
+
+}
diff --git a/container-core/src/main/java/com/yahoo/metrics/Unit.java b/container-core/src/main/java/com/yahoo/metrics/Unit.java
index cf217a84387..81c29c0c534 100644
--- a/container-core/src/main/java/com/yahoo/metrics/Unit.java
+++ b/container-core/src/main/java/com/yahoo/metrics/Unit.java
@@ -9,7 +9,6 @@ public enum Unit {
BYTE(BaseUnit.BYTE),
CONNECTION(BaseUnit.CONNECTION),
DOCUMENT(BaseUnit.DOCUMENT),
- DOCUMENT_PER_SECOND(BaseUnit.DOCUMENT, BaseUnit.SECOND),
FRACTION(BaseUnit.FRACTION),
HIT(BaseUnit.HIT),
HIT_PER_QUERY(BaseUnit.HIT, BaseUnit.QUERY),
@@ -23,7 +22,6 @@ public enum Unit {
QUERY_PER_SECOND(BaseUnit.QUERY, BaseUnit.SECOND),
REQUEST(BaseUnit.REQUEST),
RESPONSE(BaseUnit.RESPONSE),
- RESPONSE_PER_SECOND(BaseUnit.RESPONSE, BaseUnit.SECOND),
SCORE(BaseUnit.SCORE),
SECOND(BaseUnit.SECOND),
THREAD(BaseUnit.THREAD),
diff --git a/container-core/src/main/java/com/yahoo/metrics/VespaMetrics.java b/container-core/src/main/java/com/yahoo/metrics/VespaMetrics.java
new file mode 100644
index 00000000000..5b23dfa0772
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/metrics/VespaMetrics.java
@@ -0,0 +1,56 @@
+package com.yahoo.metrics;
+
+/**
+ * @author gjoranv
+ */
+interface VespaMetrics {
+
+ String baseName();
+ Unit unit();
+ String description();
+
+ default String descriptionWitUnit() {
+ return description() + " (unit: " + unit().shortName() + ")";
+ }
+
+ private String withSuffix(Suffix suffix) {
+ return baseName() + "." + suffix.suffix();
+ }
+
+ default String ninety_five_percentile() {
+ return withSuffix(Suffix.ninety_five_percentile);
+ }
+
+ default String ninety_nine_percentile() {
+ return withSuffix(Suffix.ninety_nine_percentile);
+ }
+
+ default String average() {
+ return withSuffix(Suffix.average);
+ }
+
+ default String count() {
+ return withSuffix(Suffix.count);
+ }
+
+ default String last() {
+ return withSuffix(Suffix.last);
+ }
+
+ default String max() {
+ return withSuffix(Suffix.max);
+ }
+
+ default String min() {
+ return withSuffix(Suffix.min);
+ }
+
+ default String rate() {
+ return withSuffix(Suffix.rate);
+ }
+
+ default String sum() {
+ return withSuffix(Suffix.sum);
+ }
+
+}