From 2e69baa32861c6a20ca46658a95adf9ccf680dc5 Mon Sep 17 00:00:00 2001 From: yngveaasheim Date: Fri, 17 Mar 2023 12:15:16 +0100 Subject: Prepare for documentation on units. --- .../src/main/java/com/yahoo/metrics/Unit.java | 24 ++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) 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 c79461a191f..acc2f3f6875 100644 --- a/container-core/src/main/java/com/yahoo/metrics/Unit.java +++ b/container-core/src/main/java/com/yahoo/metrics/Unit.java @@ -6,16 +6,16 @@ package com.yahoo.metrics; public enum Unit { AREA(BaseUnit.AREA), - BINARY(BaseUnit.BINARY), + BINARY(BaseUnit.BINARY, "Zero or one. Zero typically indicate \"false\" while one indicate \"true\""), BUCKET(BaseUnit.BUCKET), BYTE(BaseUnit.BYTE), - BYTE_PER_SECOND(BaseUnit.BYTE, BaseUnit.SECOND), + BYTE_PER_SECOND(BaseUnit.BYTE, BaseUnit.SECOND, "Number of bytes per second"), CONNECTION(BaseUnit.CONNECTION), DOCUMENT(BaseUnit.DOCUMENT), DOCUMENTID(BaseUnit.DOCUMENTID), FAILURE(BaseUnit.FAILURE), FILE(BaseUnit.FILE), - FRACTION(BaseUnit.FRACTION), + FRACTION(BaseUnit.FRACTION, "A value in the range [0..1]. Higher values can occur for some metrics, but would indicate the value is outside of the allowed range."), HIT(BaseUnit.HIT), HIT_PER_QUERY(BaseUnit.HIT, BaseUnit.QUERY), INSTANCE(BaseUnit.INSTANCE), @@ -44,14 +44,26 @@ public enum Unit { private final BaseUnit unit; private final BaseUnit perUnit; + private final String description; + // TODO: Remove once we have description for all units Unit(BaseUnit unit) { - this(unit, null); + this(unit, null, null); } + // TODO: Remove once we have description for all units Unit(BaseUnit unit, BaseUnit perUnit) { + this(unit, perUnit, null); + } + + Unit(BaseUnit unit, String description) { + this(unit, null, description); + } + + Unit(BaseUnit unit, BaseUnit perUnit, String description) { this.unit = unit; this.perUnit = perUnit; + this.description = description; } public String fullName() { @@ -66,6 +78,10 @@ public enum Unit { unit.shortName + "/" + perUnit.shortName; } + public String getDescription() { + return description; + } + private enum BaseUnit { AREA("area"), -- cgit v1.2.3 From 4eae1d61c520ea2910dc58ee710009fc686f77c7 Mon Sep 17 00:00:00 2001 From: yngveaasheim Date: Mon, 20 Mar 2023 07:58:31 +0100 Subject: Use unit file instead of area for memory mappings. --- container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java | 2 +- container-core/src/main/java/com/yahoo/metrics/Unit.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java b/container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java index c39054c878c..b36abbdf211 100644 --- a/container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java +++ b/container-core/src/main/java/com/yahoo/metrics/SearchNodeMetrics.java @@ -146,7 +146,7 @@ public enum SearchNodeMetrics implements VespaMetrics { CONTENT_PROTON_RESOURCE_USAGE_MEMORY_USAGE_TOTAL("content.proton.resource_usage.memory_usage.total", Unit.FRACTION, "The total relative amount of memory used by this content node (value in the range [0, 1])"), CONTENT_PROTON_RESOURCE_USAGE_MEMORY_USAGE_TOTAL_UTILIZATION("content.proton.resource_usage.memory_usage.total_utilization", Unit.FRACTION, "The relative amount of memory used compared to the content node memory resource limit"), CONTENT_PROTON_RESOURCE_USAGE_MEMORY_USAGE_TRANSIENT("content.proton.resource_usage.memory_usage.transient", Unit.FRACTION, "The relative amount of transient memory used by this content node (value in the range [0, 1])"), - CONTENT_PROTON_RESOURCE_USAGE_MEMORY_MAPPINGS("content.proton.resource_usage.memory_mappings", Unit.AREA, "The number of mapped memory areas"), + CONTENT_PROTON_RESOURCE_USAGE_MEMORY_MAPPINGS("content.proton.resource_usage.memory_mappings", Unit.FILE, "The number of memory mapped files"), CONTENT_PROTON_RESOURCE_USAGE_OPEN_FILE_DESCRIPTORS("content.proton.resource_usage.open_file_descriptors", Unit.FILE, "The number of open files"), CONTENT_PROTON_RESOURCE_USAGE_FEEDING_BLOCKED("content.proton.resource_usage.feeding_blocked", Unit.BINARY, "Whether feeding is blocked due to resource limits being reached (value is either 0 or 1)"), CONTENT_PROTON_RESOURCE_USAGE_MALLOC_ARENA("content.proton.resource_usage.malloc_arena", Unit.BYTE, "Size of malloc arena"), 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 acc2f3f6875..1285de3b492 100644 --- a/container-core/src/main/java/com/yahoo/metrics/Unit.java +++ b/container-core/src/main/java/com/yahoo/metrics/Unit.java @@ -5,7 +5,6 @@ package com.yahoo.metrics; */ public enum Unit { - AREA(BaseUnit.AREA), BINARY(BaseUnit.BINARY, "Zero or one. Zero typically indicate \"false\" while one indicate \"true\""), BUCKET(BaseUnit.BUCKET), BYTE(BaseUnit.BYTE), -- cgit v1.2.3 From 686fffa84c52c7df1fcec00701c3703878631dc4 Mon Sep 17 00:00:00 2001 From: yngveaasheim Date: Mon, 20 Mar 2023 16:09:40 +0100 Subject: Add description to units. --- .../src/main/java/com/yahoo/metrics/Unit.java | 74 ++++++++++------------ 1 file changed, 32 insertions(+), 42 deletions(-) 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 1285de3b492..27817cfb1c2 100644 --- a/container-core/src/main/java/com/yahoo/metrics/Unit.java +++ b/container-core/src/main/java/com/yahoo/metrics/Unit.java @@ -6,55 +6,45 @@ package com.yahoo.metrics; public enum Unit { BINARY(BaseUnit.BINARY, "Zero or one. Zero typically indicate \"false\" while one indicate \"true\""), - BUCKET(BaseUnit.BUCKET), - BYTE(BaseUnit.BYTE), - BYTE_PER_SECOND(BaseUnit.BYTE, BaseUnit.SECOND, "Number of bytes per second"), - CONNECTION(BaseUnit.CONNECTION), - DOCUMENT(BaseUnit.DOCUMENT), - DOCUMENTID(BaseUnit.DOCUMENTID), - FAILURE(BaseUnit.FAILURE), - FILE(BaseUnit.FILE), + BUCKET(BaseUnit.BUCKET, "A chunk of documents managed by a distributor service"), + BYTE(BaseUnit.BYTE, "A collection of 8 bits"), + BYTE_PER_SECOND(BaseUnit.BYTE, BaseUnit.SECOND, "A unit of storage capable of holding 8 bits"), + CONNECTION(BaseUnit.CONNECTION, "A link used for communication between a client and a server"), + DOCUMENT(BaseUnit.DOCUMENT, "Vespa document, a collection of fields defined in a schema file"), + DOCUMENTID(BaseUnit.DOCUMENTID, "A unique document identifier"), + FAILURE(BaseUnit.FAILURE, "Failures, typically for requests or operations, nodes"), + FILE(BaseUnit.FILE, "Data file stored on the disk on a node"), FRACTION(BaseUnit.FRACTION, "A value in the range [0..1]. Higher values can occur for some metrics, but would indicate the value is outside of the allowed range."), - HIT(BaseUnit.HIT), - HIT_PER_QUERY(BaseUnit.HIT, BaseUnit.QUERY), - INSTANCE(BaseUnit.INSTANCE), - ITEM(BaseUnit.ITEM), - MILLISECOND(BaseUnit.MILLISECOND), - NANOSECOND(BaseUnit.NANOSECOND), - NODE(BaseUnit.NODE), - PACKET(BaseUnit.PACKET), - OPERATION(BaseUnit.OPERATION), - OPERATION_PER_SECOND(BaseUnit.OPERATION, BaseUnit.SECOND), - PERCENTAGE(BaseUnit.PERCENTAGE), - QUERY(BaseUnit.QUERY), - QUERY_PER_SECOND(BaseUnit.QUERY, BaseUnit.SECOND), - RECORD(BaseUnit.RECORD), - REQUEST(BaseUnit.REQUEST), - RESPONSE(BaseUnit.RESPONSE), - RESTART(BaseUnit.RESTART), - SCORE(BaseUnit.SCORE), - SECOND(BaseUnit.SECOND), - SESSION(BaseUnit.SESSION), - TASK(BaseUnit.TASK), - THREAD(BaseUnit.THREAD), - VERSION(BaseUnit.VERSION), - WAKEUP(BaseUnit.WAKEUP); + HIT(BaseUnit.HIT, "Document that meets the filtering/restriction criteria specified by a given query"), + HIT_PER_QUERY(BaseUnit.HIT, BaseUnit.QUERY, "The aggregate number og hits for each query over a period of time"), + INSTANCE(BaseUnit.INSTANCE, "Typically tenant or application"), + ITEM(BaseUnit.ITEM, "Object or unit maintained in e.g. a queue"), + MILLISECOND(BaseUnit.MILLISECOND, "Millisecond, 1/1000 of a second"), + NANOSECOND(BaseUnit.NANOSECOND, "Nanosecond, 1/1000.000.000 of a second"), + NODE(BaseUnit.NODE, "(Virtual) computer that is part of a Vespa cluster"), + PACKET(BaseUnit.PACKET, "Collection of data transmitted over the network as a single unit"), + OPERATION(BaseUnit.OPERATION, "A clearly defined task"), + OPERATION_PER_SECOND(BaseUnit.OPERATION, BaseUnit.SECOND, "Number of operations per second"), + PERCENTAGE(BaseUnit.PERCENTAGE, "A number expressed as a fraction of 100. Typically in the range [0..100]."), + QUERY(BaseUnit.QUERY, "A request for matching, grouping and/or scoring documents stored in Vespa"), + QUERY_PER_SECOND(BaseUnit.QUERY, BaseUnit.SECOND, "Number of queries per second."), + RECORD(BaseUnit.RECORD, "A collection of information, typically a set of key/value, e.g. stored in a transaction log"), + REQUEST(BaseUnit.REQUEST, "A request sent from a client to a server"), + RESPONSE(BaseUnit.RESPONSE, "A response from a server to a client, typically as a response to a request"), + RESTART(BaseUnit.RESTART, "A service or node restarts"), + SCORE(BaseUnit.SCORE, "Relevance score for a document"), + SECOND(BaseUnit.SECOND, "Time span of 1 second"), + SESSION(BaseUnit.SESSION, "A set of operations taking place during one connection or as part of a higher level operation"), + TASK(BaseUnit.TASK, "Piece of work executed by a server, e.g. to perform back-ground data maintenance"), + THREAD(BaseUnit.THREAD, "Computer thread for executing e.g. tasks, operations or queries"), + VERSION(BaseUnit.VERSION, "Software or config version"), + WAKEUP(BaseUnit.WAKEUP, "Computer thread wake-ups for doing some work"); private final BaseUnit unit; private final BaseUnit perUnit; private final String description; - // TODO: Remove once we have description for all units - Unit(BaseUnit unit) { - this(unit, null, null); - } - - // TODO: Remove once we have description for all units - Unit(BaseUnit unit, BaseUnit perUnit) { - this(unit, perUnit, null); - } - Unit(BaseUnit unit, String description) { this(unit, null, description); } -- cgit v1.2.3 From 305e1973ffb8930f1f8751d1a918f5ee1d5de222 Mon Sep 17 00:00:00 2001 From: Yngve Aasheim Date: Tue, 21 Mar 2023 09:57:35 +0100 Subject: Update per comments --- container-core/src/main/java/com/yahoo/metrics/Unit.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 27817cfb1c2..53c231a2e5e 100644 --- a/container-core/src/main/java/com/yahoo/metrics/Unit.java +++ b/container-core/src/main/java/com/yahoo/metrics/Unit.java @@ -12,11 +12,11 @@ public enum Unit { CONNECTION(BaseUnit.CONNECTION, "A link used for communication between a client and a server"), DOCUMENT(BaseUnit.DOCUMENT, "Vespa document, a collection of fields defined in a schema file"), DOCUMENTID(BaseUnit.DOCUMENTID, "A unique document identifier"), - FAILURE(BaseUnit.FAILURE, "Failures, typically for requests or operations, nodes"), + FAILURE(BaseUnit.FAILURE, "Failures, typically for requests, operations or nodes"), FILE(BaseUnit.FILE, "Data file stored on the disk on a node"), FRACTION(BaseUnit.FRACTION, "A value in the range [0..1]. Higher values can occur for some metrics, but would indicate the value is outside of the allowed range."), HIT(BaseUnit.HIT, "Document that meets the filtering/restriction criteria specified by a given query"), - HIT_PER_QUERY(BaseUnit.HIT, BaseUnit.QUERY, "The aggregate number og hits for each query over a period of time"), + HIT_PER_QUERY(BaseUnit.HIT, BaseUnit.QUERY, "Number of hits per query over a period of time"), INSTANCE(BaseUnit.INSTANCE, "Typically tenant or application"), ITEM(BaseUnit.ITEM, "Object or unit maintained in e.g. a queue"), MILLISECOND(BaseUnit.MILLISECOND, "Millisecond, 1/1000 of a second"), -- cgit v1.2.3