diff options
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); + } + +} |