From fc48b6050ee1785d1e1a956763b236b612a674c0 Mon Sep 17 00:00:00 2001 From: "A.J. Beamon" Date: Fri, 22 Mar 2019 14:22:22 -0700 Subject: [PATCH] When tabulating read workload metrics, ignore the absence of any particular storage server. --- documentation/sphinx/source/release-notes.rst | 1 + fdbserver/Status.actor.cpp | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/documentation/sphinx/source/release-notes.rst b/documentation/sphinx/source/release-notes.rst index 5fadf5a764..880bbcffb6 100644 --- a/documentation/sphinx/source/release-notes.rst +++ b/documentation/sphinx/source/release-notes.rst @@ -39,6 +39,7 @@ Fixes * Python: Creating a ``SingleFloat`` for the tuple layer didn't work with integers. `(PR #1216) `_ * In some cases, calling ``OnError`` with a non-retryable error would partially reset a transaction. As of API version 610, the transaction will no longer be reset in these cases and will instead put the transaction into an error state. `(PR #1298) `_ * Standardized datetime string format across all backup and restore command options and outputs. `(PR #1248) `_ +* Read workload status metrics would disappear when a storage server was missing. `(PR #) `_ Status ------ diff --git a/fdbserver/Status.actor.cpp b/fdbserver/Status.actor.cpp index fc1e89a6ea..c75676167a 100644 --- a/fdbserver/Status.actor.cpp +++ b/fdbserver/Status.actor.cpp @@ -1505,10 +1505,12 @@ ACTOR static Future workloadStatusFetcher(Reference 0) { + readRequests.updateValues(StatusCounter(storageMetrics.getValue("QueryQueue"))); + reads.updateValues(StatusCounter(storageMetrics.getValue("FinishedQueries"))); + readKeys.updateValues(StatusCounter(storageMetrics.getValue("RowsQueried"))); + readBytes.updateValues(StatusCounter(storageMetrics.getValue("BytesQueried"))); + } } operationsObj["read_requests"] = readRequests.getStatus();