aboutsummaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2023-01-30 17:04:41 +0100
committergjoranv <gv@verizonmedia.com>2023-01-30 17:04:41 +0100
commitc1ebd072d5dd627cb249905ba8ad7bc2d75e4dbf (patch)
treee2e84808555e9b54ed7d3058f9de500e287dd1ba /container-core
parent2510995c12758e8c8c5cc671cdc2a468ac038419 (diff)
Extract interface to allow more metrics enums.
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java49
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/VespaMetrics.java56
2 files changed, 62 insertions, 43 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 27a686c47e5..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"),
@@ -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/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);
+ }
+
+}