summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/sharding_data_transform_instance_metrics.h
diff options
context:
space:
mode:
authorLuis Osta <luis.osta@mongodb.com>2022-02-22 22:03:30 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-02-22 22:58:18 +0000
commit6be53022af440793953d1e39725f38b728bcb155 (patch)
tree03392618ffaf3f018d8d16a525b2a5534250790f /src/mongo/db/s/sharding_data_transform_instance_metrics.h
parent239052f6e878dcf0892a8ae33b9e69c30a6ffc6d (diff)
downloadmongo-6be53022af440793953d1e39725f38b728bcb155.tar.gz
SERVER-63618 Create & Integrate CurrentOp Interface For Global Index Metrics
Diffstat (limited to 'src/mongo/db/s/sharding_data_transform_instance_metrics.h')
-rw-r--r--src/mongo/db/s/sharding_data_transform_instance_metrics.h55
1 files changed, 52 insertions, 3 deletions
diff --git a/src/mongo/db/s/sharding_data_transform_instance_metrics.h b/src/mongo/db/s/sharding_data_transform_instance_metrics.h
index 7f08d95b43e..f4cac5c26c4 100644
--- a/src/mongo/db/s/sharding_data_transform_instance_metrics.h
+++ b/src/mongo/db/s/sharding_data_transform_instance_metrics.h
@@ -29,6 +29,7 @@
#pragma once
+#include "mongo/db/namespace_string.h"
#include "mongo/db/s/sharding_data_transform_cumulative_metrics.h"
#include "mongo/db/s/sharding_data_transform_metrics_observer_interface.h"
@@ -36,17 +37,65 @@ namespace mongo {
class ShardingDataTransformInstanceMetrics {
public:
+ enum Role { kCoordinator, kDonor, kRecipient };
using ObserverPtr = std::unique_ptr<ShardingDataTransformMetricsObserverInterface>;
- ShardingDataTransformInstanceMetrics(ShardingDataTransformCumulativeMetrics* cumulativeMetrics);
- ShardingDataTransformInstanceMetrics(ShardingDataTransformCumulativeMetrics* cumulativeMetrics,
+ ShardingDataTransformInstanceMetrics(UUID instanceId,
+ BSONObj originalCommand,
+ NamespaceString sourceNs,
+ Role role,
+ ShardingDataTransformCumulativeMetrics* cumulativeMetrics);
+
+ ShardingDataTransformInstanceMetrics(UUID instanceId,
+ NamespaceString sourceNs,
+ Role role,
+ BSONObj originalCommand,
+ ShardingDataTransformCumulativeMetrics* cumulativeMetrics,
ObserverPtr observer);
- ~ShardingDataTransformInstanceMetrics();
+ virtual ~ShardingDataTransformInstanceMetrics();
+ BSONObj reportForCurrentOp() const noexcept;
+ static StringData getRoleName(Role role);
int64_t getRemainingTimeMillis() const;
int64_t getStartTimestamp() const;
const UUID& getUuid() const;
+protected:
+ virtual std::string createOperationDescription() const noexcept;
+ UUID _instanceId;
+ NamespaceString _sourceNs;
+ Role _role;
+ BSONObj _originalCommand;
+ static constexpr auto kType = "type";
+ static constexpr auto kDescription = "desc";
+ static constexpr auto kNamespace = "ns";
+ static constexpr auto kOp = "command";
+ static constexpr auto kOriginalCommand = "originalCommand";
+ static constexpr auto kOpTimeElapsed = "totalOperationTimeElapsedSecs";
+ static constexpr auto kCriticalSectionTimeElapsed = "totalCriticalSectionTimeElapsedSecs";
+ static constexpr auto kRemainingOpTimeEstimated = "remainingOperationTimeEstimatedSecs";
+ static constexpr auto kApplyTimeElapsed = "totalApplyTimeElapsedSecs";
+ static constexpr auto kCopyTimeElapsed = "totalCopyTimeElapsedSecs";
+ static constexpr auto kApproxDocumentsToCopy = "approxDocumentsToCopy";
+ static constexpr auto kApproxBytesToCopy = "approxBytesToCopy";
+ static constexpr auto kBytesCopied = "bytesCopied";
+ static constexpr auto kCountWritesToStashCollections = "countWritesToStashCollections";
+ static constexpr auto kInsertsApplied = "insertsApplied";
+ static constexpr auto kUpdatesApplied = "updatesApplied";
+ static constexpr auto kDeletesApplied = "deletesApplied";
+ static constexpr auto kOplogEntriesApplied = "oplogEntriesApplied";
+ static constexpr auto kOplogEntriesFetched = "oplogEntriesFetched";
+ static constexpr auto kDocumentsCopied = "documentsCopied";
+ static constexpr auto kCountWritesDuringCriticalSection = "countWritesDuringCriticalSection";
+ static constexpr auto kCountReadsDuringCriticalSection = "countReadsDuringCriticalSection";
+ static constexpr auto kCoordinatorState = "coordinatorState";
+ static constexpr auto kDonorState = "donorState";
+ static constexpr auto kRecipientState = "recipientState";
+ static constexpr auto kAllShardsLowestRemainingOperationTimeEstimatedSecs =
+ "allShardsLowestRemainingOperationTimeEstimatedSecs";
+ static constexpr auto kAllShardsHighestRemainingOperationTimeEstimatedSecs =
+ "allShardsHighestRemainingOperationTimeEstimatedSecs";
+
private:
ObserverPtr _observer;
ShardingDataTransformCumulativeMetrics* _cumulativeMetrics;