summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/resharding/resharding_metrics.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/resharding/resharding_metrics.cpp')
-rw-r--r--src/mongo/db/s/resharding/resharding_metrics.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mongo/db/s/resharding/resharding_metrics.cpp b/src/mongo/db/s/resharding/resharding_metrics.cpp
index c7cb0747b70..71c8542268d 100644
--- a/src/mongo/db/s/resharding/resharding_metrics.cpp
+++ b/src/mongo/db/s/resharding/resharding_metrics.cpp
@@ -61,6 +61,7 @@ constexpr auto kCoordinatorState = "coordinatorState";
constexpr auto kDonorState = "donorState";
constexpr auto kRecipientState = "recipientState";
constexpr auto kOpStatus = "opStatus";
+constexpr auto kLastOpEndingChunkImbalance = "lastOpEndingChunkImbalance";
using MetricsPtr = std::unique_ptr<ReshardingMetrics>;
@@ -154,6 +155,8 @@ public:
TimeInterval inCriticalSection;
int64_t writesDuringCriticalSection = 0;
+ int64_t chunkImbalanceCount = 0;
+
boost::optional<DonorStateEnum> donorState;
boost::optional<RecipientStateEnum> recipientState;
boost::optional<CoordinatorStateEnum> coordinatorState;
@@ -402,6 +405,15 @@ void ReshardingMetrics::setDocumentsToCopyForCurrentOp(int64_t documents, int64_
_currentOp->bytesToCopy = bytes;
}
+void ReshardingMetrics::setLastReshardChunkImbalanceCount(int64_t newCount) noexcept {
+ stdx::lock_guard<Latch> lk(_mutex);
+
+ invariant(_currentOp, kNoOperationInProgress);
+ invariant(_currentOp->coordinatorState);
+
+ _cumulativeOp->chunkImbalanceCount = newCount;
+}
+
void ReshardingMetrics::onDocumentsCopied(int64_t documents, int64_t bytes) noexcept {
stdx::lock_guard<Latch> lk(_mutex);
if (!_currentOp)
@@ -577,6 +589,7 @@ void ReshardingMetrics::serializeCumulativeOpMetrics(BSONObjBuilder* bob) const
bob->append(kOplogsApplied, ops.oplogEntriesApplied);
bob->append(kWritesDuringCritialSection, ops.writesDuringCriticalSection);
bob->append(kOplogsFetched, ops.oplogEntriesFetched);
+ bob->append(kLastOpEndingChunkImbalance, ops.chunkImbalanceCount);
}
Date_t ReshardingMetrics::_now() const {