diff options
author | gjoranv <gv@verizonmedia.com> | 2023-01-30 17:04:41 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2023-01-30 17:04:41 +0100 |
commit | c1ebd072d5dd627cb249905ba8ad7bc2d75e4dbf (patch) | |
tree | e2e84808555e9b54ed7d3058f9de500e287dd1ba /container-core | |
parent | 2510995c12758e8c8c5cc671cdc2a468ac038419 (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.java | 49 | ||||
-rw-r--r-- | container-core/src/main/java/com/yahoo/metrics/VespaMetrics.java | 56 |
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); + } + +} |