From 5b9563e44eefb8bfc1c8f37fe55e71ec14be6a81 Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Mon, 30 Jan 2023 14:49:40 +0100 Subject: Introduce additional docv1 metrics for most common causes of failure --- .../document/restapi/resource/DocumentV1ApiHandler.java | 16 +++++++++++++--- .../java/com/yahoo/vespa/http/server/MetricNames.java | 3 +++ 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'vespaclient-container-plugin/src') diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java index 1e2ee3968fa..373928a3e22 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java @@ -1115,8 +1115,11 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { incrementMetricNumOperations(); incrementMetricNumPuts(); sampleLatency(latency); switch (outcome) { case SUCCESS -> incrementMetricSucceeded(); + case NOT_FOUND -> incrementMetricNotFound(); case CONDITION_FAILED -> incrementMetricConditionNotMet(); - default -> incrementMetricFailed(); + case TIMEOUT -> { incrementMetricFailedTimeout(); incrementMetricFailed();} + case INSUFFICIENT_STORAGE -> { incrementMetricFailedInsufficientStorage(); incrementMetricFailed(); } + case ERROR -> { incrementMetricFailedUnknown(); incrementMetricFailed(); } } } @@ -1127,7 +1130,9 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { case SUCCESS -> incrementMetricSucceeded(); case NOT_FOUND -> incrementMetricNotFound(); case CONDITION_FAILED -> incrementMetricConditionNotMet(); - default -> incrementMetricFailed(); + case TIMEOUT -> { incrementMetricFailedTimeout(); incrementMetricFailed();} + case INSUFFICIENT_STORAGE -> { incrementMetricFailedInsufficientStorage(); incrementMetricFailed(); } + case ERROR -> { incrementMetricFailedUnknown(); incrementMetricFailed(); } } } @@ -1136,7 +1141,9 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { switch (outcome) { case SUCCESS,NOT_FOUND -> incrementMetricSucceeded(); case CONDITION_FAILED -> incrementMetricConditionNotMet(); - default -> incrementMetricFailed(); + case TIMEOUT -> { incrementMetricFailedTimeout(); incrementMetricFailed();} + case INSUFFICIENT_STORAGE -> { incrementMetricFailedInsufficientStorage(); incrementMetricFailed(); } + case ERROR -> { incrementMetricFailedUnknown(); incrementMetricFailed(); } } } @@ -1150,6 +1157,9 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { private void incrementMetricSucceeded() { incrementMetric(MetricNames.SUCCEEDED); } private void incrementMetricNotFound() { incrementMetric(MetricNames.NOT_FOUND); } private void incrementMetricParseError() { incrementMetric(MetricNames.PARSE_ERROR); } + private void incrementMetricFailedUnknown() { incrementMetric(MetricNames.FAILED_UNKNOWN); } + private void incrementMetricFailedTimeout() { incrementMetric(MetricNames.FAILED_TIMEOUT); } + private void incrementMetricFailedInsufficientStorage() { incrementMetric(MetricNames.FAILED_INSUFFICIENT_STORAGE); } private void incrementMetric(String n) { metric.add(n, 1, null); } private void setMetric(String n, Number v) { metric.set(n, v, null); } diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/MetricNames.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/MetricNames.java index a5987f2398e..1bb9ab4b062 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/MetricNames.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/MetricNames.java @@ -23,6 +23,9 @@ public final class MetricNames { public static final String PARSE_ERROR = PREFIX + "parse_error"; public static final String SUCCEEDED = PREFIX + "succeeded"; public static final String PENDING = PREFIX + "pending"; + public static final String FAILED_UNKNOWN = FAILED + "_unknown"; + public static final String FAILED_TIMEOUT = FAILED + "_timeout"; + public static final String FAILED_INSUFFICIENT_STORAGE = FAILED + "_insufficient_storage"; private MetricNames() { } -- cgit v1.2.3