summaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2017-05-12 09:28:06 +0200
committervalerijf <valerijf@yahoo-inc.com>2017-05-12 09:40:38 +0200
commit09be694323fbe1955c345e183d807d7c60e80c51 (patch)
tree71dd6c36587e0d256b6c57ec05a7faf17abbaaba /vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics
parentbd6bb3b7518e3da3869d1f45741c0cd86795308a (diff)
Code review fixes
Diffstat (limited to 'vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentApiMetrics.java (renamed from vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentApiMetricsHelper.java)16
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentOperationStatus.java24
2 files changed, 22 insertions, 18 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentApiMetricsHelper.java b/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentApiMetrics.java
index 154f473630e..13c007a075e 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentApiMetricsHelper.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentApiMetrics.java
@@ -6,19 +6,23 @@ import com.yahoo.metrics.simple.Gauge;
import com.yahoo.metrics.simple.MetricReceiver;
import com.yahoo.metrics.simple.Point;
+import java.time.Duration;
+import java.time.Instant;
import java.util.HashMap;
import java.util.Map;
/**
+ * This class reports metrics for feed operations by APIs that use documentapi.
+ *
* @author freva
*/
-public class DocumentApiMetricsHelper {
+public class DocumentApiMetrics {
private final Counter feeds;
private final Gauge feedLatency;
private final Map<DocumentOperationStatus, Map<DocumentOperationType, Point>> points = new HashMap<>();
- public DocumentApiMetricsHelper(MetricReceiver metricReceiver, String apiName) {
+ public DocumentApiMetrics(MetricReceiver metricReceiver, String apiName) {
Map<String, String> dimensions = new HashMap<>();
dimensions.put("api", apiName);
for (DocumentOperationStatus status : DocumentOperationStatus.values()) {
@@ -34,15 +38,15 @@ public class DocumentApiMetricsHelper {
feedLatency = metricReceiver.declareGauge("feed.latency");
}
- public void reportSuccessful(DocumentOperationType documentOperationType, double latency) {
+ public void reportSuccessful(DocumentOperationType documentOperationType, double latencyInSeconds) {
Point point = points.get(DocumentOperationStatus.OK).get(documentOperationType);
- feedLatency.sample(latency, point);
+ feedLatency.sample(latencyInSeconds, point);
feeds.add(point);
}
- public void reportSuccessful(DocumentOperationType documentOperationType, long startTime) {
- final double latency = (System.currentTimeMillis() - startTime) / 1000.0d;
+ public void reportSuccessful(DocumentOperationType documentOperationType, Instant startTime) {
+ final double latency = Duration.between(startTime, Instant.now()).toMillis() / 1000.0d;
reportSuccessful(documentOperationType, latency);
}
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentOperationStatus.java b/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentOperationStatus.java
index cdbaf645b6e..1513833eee8 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentOperationStatus.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/documentapi/metrics/DocumentOperationStatus.java
@@ -6,24 +6,24 @@ import com.yahoo.document.restapi.OperationHandlerImpl;
import java.util.Set;
/**
+ * Enum with possible outcomes of a single document feeding operation:
+ * <ul>
+ * <li>OK: Document was successfully added/updated/removed</li>
+ * <li>REQUEST_ERROR: User-made error, for example invalid document format</li>
+ * <li>SERVER_ERROR: Server-made error, for example insufficient disk space</li>
+ * </ul>
+ *
* @author freva
*/
-public enum DocumentOperationStatus {
+public enum DocumentOperationStatus {
OK, REQUEST_ERROR, SERVER_ERROR;
public static DocumentOperationStatus fromHttpStatusCode(int httpStatus) {
switch (httpStatus / 100) {
- case 2:
- return OK;
-
- case 4:
- return REQUEST_ERROR;
-
- case 5:
- return SERVER_ERROR;
-
- default:
- return null;
+ case 2: return OK;
+ case 4: return REQUEST_ERROR;
+ case 5: return SERVER_ERROR;
+ default: return null;
}
}