summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2023-01-10 13:53:49 +0100
committergjoranv <gv@verizonmedia.com>2023-01-10 13:53:49 +0100
commit62ca7ab691348e5e054fc223e59388523a64164c (patch)
tree47ed91d1dfccf8975829cfea3d9fc4412e86b07b /container-core
parent2a81ba08b11c965b495e4eec0bf2a32f6973f6f0 (diff)
Add units to the global container metrics enum.
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java18
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/Unit.java82
2 files changed, 92 insertions, 8 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 3df7454160c..5f342333a8f 100644
--- a/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java
+++ b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java
@@ -5,18 +5,20 @@ package com.yahoo.metrics;
*/
public enum ContainerMetrics {
- HTTP_STATUS_1XX("http.status.1xx", "Number of responses with a 1xx status"),
- HTTP_STATUS_2XX("http.status.2xx", "Number of responses with a 2xx status"),
- HTTP_STATUS_3XX("http.status.3xx", "Number of responses with a 3xx status"),
- HTTP_STATUS_4XX("http.status.4xx", "Number of responses with a 4xx status"),
- HTTP_STATUS_5XX("http.status.5xx", "Number of responses with a 5xx status"),
- JDISC_GC_MS("jdisc.gc.ms", "Time [ms] spent in garbage collection");
+ 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"),
+ HTTP_STATUS_3XX("http.status.3xx", Unit.RESPONSE, "Number of responses with a 3xx status"),
+ HTTP_STATUS_4XX("http.status.4xx", Unit.RESPONSE, "Number of responses with a 4xx status"),
+ HTTP_STATUS_5XX("http.status.5xx", Unit.RESPONSE, "Number of responses with a 5xx status"),
+ JDISC_GC_MS("jdisc.gc.ms", Unit.MILLISECOND, "Time spent in garbage collection");
private final String name;
+ private final Unit unit;
private final String description;
- ContainerMetrics(String name, String description) {
+ ContainerMetrics(String name, Unit unit, String description) {
this.name = name;
+ this.unit = unit;
this.description = description;
}
@@ -25,7 +27,7 @@ public enum ContainerMetrics {
}
public String description() {
- return description;
+ return description + " (unit: " + unit.shortName() + ")";
}
private String withSuffix(Suffix suffix) {
diff --git a/container-core/src/main/java/com/yahoo/metrics/Unit.java b/container-core/src/main/java/com/yahoo/metrics/Unit.java
new file mode 100644
index 00000000000..d4143d2d8b9
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/metrics/Unit.java
@@ -0,0 +1,82 @@
+package com.yahoo.metrics;
+
+/**
+ * @author gjoranv
+ */
+public enum Unit {
+
+ BYTE(BaseUnit.BYTE),
+ DOCUMENT(BaseUnit.DOCUMENT),
+ DOCUMENT_PER_SECOND(BaseUnit.DOCUMENT, BaseUnit.SECOND),
+ FRACTION(BaseUnit.FRACTION),
+ HIT(BaseUnit.HIT),
+ HIT_PER_QUERY(BaseUnit.HIT, BaseUnit.QUERY),
+ MILLISECOND(BaseUnit.MILLISECOND),
+ OPERATION_PER_SECOND(BaseUnit.OPERATION, BaseUnit.SECOND),
+ QUERY(BaseUnit.QUERY),
+ QUERY_PER_SECOND(BaseUnit.QUERY, BaseUnit.SECOND),
+ RESPONSE(BaseUnit.RESPONSE),
+ RESPONSE_PER_SECOND(BaseUnit.RESPONSE, BaseUnit.SECOND),
+ SECOND(BaseUnit.SECOND),
+ THREAD(BaseUnit.THREAD);
+
+
+ private final BaseUnit unit;
+ private final BaseUnit perUnit;
+
+ Unit(BaseUnit unit) {
+ this(unit, null);
+ }
+
+ Unit(BaseUnit unit, BaseUnit perUnit) {
+ this.unit = unit;
+ this.perUnit = perUnit;
+ }
+
+ public String fullName() {
+ return perUnit == null ?
+ unit.fullName() :
+ unit.fullName() + "/" + perUnit.fullName();
+ }
+
+ public String shortName() {
+ return perUnit == null ?
+ unit.shortName :
+ unit.shortName + "/" + perUnit.shortName;
+ }
+
+ public enum BaseUnit {
+
+ BYTE("byte"),
+ DOCUMENT("document"),
+ FRACTION("fraction"),
+ HIT("hit"),
+ MILLISECOND("millisecond", "ms"),
+ OPERATION("operation"),
+ QUERY("query"),
+ RESPONSE("response"),
+ SECOND("second", "s"),
+ THREAD("thread");
+
+ private final String fullName;
+ private final String shortName;
+
+ BaseUnit(String fullName) {
+ this(fullName, fullName);
+ }
+
+ BaseUnit(String fullName, String shortName) {
+ this.fullName = fullName;
+ this.shortName = shortName;
+ }
+
+ public String fullName() {
+ return fullName;
+ }
+
+ public String shortName() {
+ return shortName;
+ }
+
+ }
+}