This is an automated email from the ASF dual-hosted git repository.
ashishkr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 3c9d4d875f4 HDDS-13103. Correct transaction metrics in
SCMBlockDeletingService. (#8516)
3c9d4d875f4 is described below
commit 3c9d4d875f4036e69658e0ff57aa89eb24eba804
Author: Aryan Gupta <[email protected]>
AuthorDate: Tue Jun 10 10:59:19 2025 +0530
HDDS-13103. Correct transaction metrics in SCMBlockDeletingService. (#8516)
---
.../commandhandler/DeleteBlocksCommandHandler.java | 6 +-
.../hadoop/hdds/scm/block/DeletedBlockLogImpl.java | 6 +-
.../hdds/scm/block/SCMBlockDeletingService.java | 9 +-
.../SCMDeletedBlockTransactionStatusManager.java | 4 +-
.../scm/block/ScmBlockDeletingServiceMetrics.java | 109 +++++++++++++--------
.../scm/block/TestSCMBlockDeletingService.java | 2 +-
.../dashboards/Ozone - DeleteKey Metrics.json | 6 +-
.../commandhandler/TestBlockDeletion.java | 8 +-
8 files changed, 95 insertions(+), 55 deletions(-)
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
index 9d28241df03..dbc6b72968f 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
@@ -344,6 +344,7 @@ private void processCmd(DeleteCmdInfo cmd) {
ContainerBlocksDeletionACKProto blockDeletionACK = null;
long startTime = Time.monotonicNow();
boolean cmdExecuted = false;
+ int successCount = 0, failedCount = 0;
try {
// move blocks to deleting state.
// this is a metadata update, the actual deletion happens in another
@@ -381,7 +382,6 @@ private void processCmd(DeleteCmdInfo cmd) {
// Send ACK back to SCM as long as meta updated
// TODO Or we should wait until the blocks are actually deleted?
if (!containerBlocks.isEmpty()) {
- int successCount = 0, failedCount = 0;
for (DeleteBlockTransactionResult result :
blockDeletionACK.getResultsList()) {
boolean success = result.getSuccess();
@@ -399,8 +399,6 @@ private void processCmd(DeleteCmdInfo cmd) {
blockDeleteMetrics.incrProcessedTransactionFailCount(1);
}
}
- LOG.info("Sending deletion ACK to SCM, successTransactionCount = {}," +
- "failedTransactionCount= {}", successCount, failedCount);
}
cmdExecuted = true;
} finally {
@@ -418,6 +416,8 @@ private void processCmd(DeleteCmdInfo cmd) {
updateCommandStatus(cmd.getContext(), cmd.getCmd(), statusUpdater, LOG);
long endTime = Time.monotonicNow();
this.opsLatencyMs.add(endTime - startTime);
+ LOG.info("Sending deletion ACK to SCM, successTransactionCount = {}," +
+ "failedTransactionCount = {}, time elapsed = {}", successCount,
failedCount, opsLatencyMs);
invocationCount++;
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java
index ed80cdbdb3f..76c54d8817d 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java
@@ -336,14 +336,18 @@ private void getTransaction(DeletedBlocksTransaction tx,
DeletedBlocksTransaction.newBuilder(tx)
.setCount(transactionStatusManager.getRetryCount(tx.getTxID()))
.build();
+ boolean flag = false;
for (ContainerReplica replica : replicas) {
final DatanodeID datanodeID = replica.getDatanodeDetails().getID();
if (!transactionStatusManager.isDuplication(
datanodeID, tx.getTxID(), commandStatus)) {
transactions.addTransactionToDN(datanodeID, updatedTxn);
- metrics.incrProcessedTransaction();
+ flag = true;
}
}
+ if (flag) {
+ metrics.incrProcessedTransaction();
+ }
}
private Boolean checkInadequateReplica(Set<ContainerReplica> replicas,
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMBlockDeletingService.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMBlockDeletingService.java
index dfcaca333c3..348e2e9d5dc 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMBlockDeletingService.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMBlockDeletingService.java
@@ -186,11 +186,16 @@ public EmptyTaskResult call() throws Exception {
for (Map.Entry<DatanodeID, List<DeletedBlocksTransaction>> entry :
transactions.getDatanodeTransactionMap().entrySet()) {
DatanodeID dnId = entry.getKey();
+ long blocksToDn = 0;
List<DeletedBlocksTransaction> dnTXs = entry.getValue();
if (!dnTXs.isEmpty()) {
Set<Long> dnTxSet = dnTXs.stream()
.map(DeletedBlocksTransaction::getTxID)
.collect(Collectors.toSet());
+ for (DeletedBlocksTransaction deletedBlocksTransaction : dnTXs) {
+ blocksToDn +=
+ deletedBlocksTransaction.getLocalIDList().size();
+ }
processedTxIDs.addAll(dnTxSet);
DeleteBlocksCommand command = new DeleteBlocksCommand(dnTXs);
command.setTerm(scmContext.getTermOfLeader());
@@ -198,8 +203,9 @@ public EmptyTaskResult call() throws Exception {
dnTxSet);
eventPublisher.fireEvent(SCMEvents.DATANODE_COMMAND,
new CommandForDatanode<>(dnId, command));
+ metrics.incrNumBlockDeletionSentDN(dnId, blocksToDn);
metrics.incrBlockDeletionCommandSent();
- metrics.incrBlockDeletionTransactionSent(dnTXs.size());
+ metrics.incrBlockDeletionTransactionsOnDatanodes(dnTXs.size());
metrics.incrDNCommandsSent(dnId, 1);
if (LOG.isDebugEnabled()) {
LOG.debug(
@@ -211,6 +217,7 @@ public EmptyTaskResult call() throws Exception {
}
}
}
+
metrics.incrTotalBlockSentToDNForDeletion(transactions.getBlocksDeleted());
LOG.info("Totally added {} blocks to be deleted for"
+ " {} datanodes / {} totalnodes, limit per iteration :
{}blocks, task elapsed time: {}ms",
transactions.getBlocksDeleted(),
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMDeletedBlockTransactionStatusManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMDeletedBlockTransactionStatusManager.java
index ad747c48411..6cc99605690 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMDeletedBlockTransactionStatusManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMDeletedBlockTransactionStatusManager.java
@@ -455,11 +455,11 @@ public void
commitTransactions(List<DeleteBlockTransactionResult> transactionRes
for (DeleteBlockTransactionResult transactionResult :
transactionResults) {
if (isTransactionFailed(transactionResult)) {
- metrics.incrBlockDeletionTransactionFailure();
+ metrics.incrBlockDeletionTransactionFailureOnDatanodes();
continue;
}
try {
- metrics.incrBlockDeletionTransactionSuccess();
+ metrics.incrBlockDeletionTransactionSuccessOnDatanodes();
long txID = transactionResult.getTxID();
// set of dns which have successfully committed transaction txId.
final Set<DatanodeID> dnsWithCommittedTxn =
transactionToDNsCommitMap.get(txID);
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/ScmBlockDeletingServiceMetrics.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/ScmBlockDeletingServiceMetrics.java
index d7d4d781876..0e735b1557d 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/ScmBlockDeletingServiceMetrics.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/ScmBlockDeletingServiceMetrics.java
@@ -72,13 +72,13 @@ public final class ScmBlockDeletingServiceMetrics
implements MetricsSource {
@Metric(about = "The number of individual delete transactions sent to " +
"all DN.")
- private MutableCounterLong numBlockDeletionTransactionSent;
+ private MutableCounterLong numBlockDeletionTransactionsOnDatanodes;
@Metric(about = "The number of success execution of delete transactions.")
- private MutableCounterLong numBlockDeletionTransactionSuccess;
+ private MutableCounterLong numBlockDeletionTransactionSuccessOnDatanodes;
@Metric(about = "The number of failure execution of delete transactions.")
- private MutableCounterLong numBlockDeletionTransactionFailure;
+ private MutableCounterLong numBlockDeletionTransactionFailureOnDatanodes;
@Metric(about = "The number of completed txs which are removed from DB.")
private MutableCounterLong numBlockDeletionTransactionCompleted;
@@ -95,7 +95,10 @@ public final class ScmBlockDeletingServiceMetrics implements
MetricsSource {
@Metric(about = "The number of dataNodes of delete transactions.")
private MutableGaugeLong numBlockDeletionTransactionDataNodes;
- private final Map<DatanodeID, DatanodeCommandCounts> numCommandsDatanode =
new ConcurrentHashMap<>();
+ @Metric(about = "Total blocks sent to DN for deletion.")
+ private MutableGaugeLong numBlockAddedForDeletionToDN;
+
+ private final Map<DatanodeID, DatanodeCommandDetails> numCommandsDatanode =
new ConcurrentHashMap<>();
private ScmBlockDeletingServiceMetrics() {
this.registry = new MetricsRegistry(SOURCE_NAME);
@@ -132,16 +135,16 @@ public void incrBlockDeletionCommandFailure() {
this.numBlockDeletionCommandFailure.incr();
}
- public void incrBlockDeletionTransactionSent(long count) {
- this.numBlockDeletionTransactionSent.incr(count);
+ public void incrBlockDeletionTransactionsOnDatanodes(long count) {
+ this.numBlockDeletionTransactionsOnDatanodes.incr(count);
}
- public void incrBlockDeletionTransactionFailure() {
- this.numBlockDeletionTransactionFailure.incr();
+ public void incrBlockDeletionTransactionFailureOnDatanodes() {
+ this.numBlockDeletionTransactionFailureOnDatanodes.incr();
}
- public void incrBlockDeletionTransactionSuccess() {
- this.numBlockDeletionTransactionSuccess.incr();
+ public void incrBlockDeletionTransactionSuccessOnDatanodes() {
+ this.numBlockDeletionTransactionSuccessOnDatanodes.incr();
}
public void incrBlockDeletionTransactionCompleted(long count) {
@@ -165,25 +168,34 @@ public void setNumBlockDeletionTransactionDataNodes(long
dataNodes) {
}
public void incrDNCommandsSent(DatanodeID id, long delta) {
- numCommandsDatanode.computeIfAbsent(id, k -> new DatanodeCommandCounts())
+ numCommandsDatanode.computeIfAbsent(id, k -> new DatanodeCommandDetails())
.incrCommandsSent(delta);
}
public void incrDNCommandsSuccess(DatanodeID id, long delta) {
- numCommandsDatanode.computeIfAbsent(id, k -> new DatanodeCommandCounts())
+ numCommandsDatanode.computeIfAbsent(id, k -> new DatanodeCommandDetails())
.incrCommandsSuccess(delta);
}
public void incrDNCommandsFailure(DatanodeID id, long delta) {
- numCommandsDatanode.computeIfAbsent(id, k -> new DatanodeCommandCounts())
+ numCommandsDatanode.computeIfAbsent(id, k -> new DatanodeCommandDetails())
.incrCommandsFailure(delta);
}
public void incrDNCommandsTimeout(DatanodeID id, long delta) {
- numCommandsDatanode.computeIfAbsent(id, k -> new DatanodeCommandCounts())
+ numCommandsDatanode.computeIfAbsent(id, k -> new DatanodeCommandDetails())
.incrCommandsTimeout(delta);
}
+ public void incrNumBlockDeletionSentDN(DatanodeID id, long delta) {
+ this.numCommandsDatanode.computeIfAbsent(id, k -> new
DatanodeCommandDetails())
+ .incrBlocksSent(delta);
+ }
+
+ public void incrTotalBlockSentToDNForDeletion(long count) {
+ this.numBlockAddedForDeletionToDN.incr(count);
+ }
+
public long getNumBlockDeletionCommandSent() {
return numBlockDeletionCommandSent.value();
}
@@ -196,16 +208,16 @@ public long getBNumBlockDeletionCommandFailure() {
return numBlockDeletionCommandFailure.value();
}
- public long getNumBlockDeletionTransactionSent() {
- return numBlockDeletionTransactionSent.value();
+ public long getNumBlockDeletionTransactionsOnDatanodes() {
+ return numBlockDeletionTransactionsOnDatanodes.value();
}
- public long getNumBlockDeletionTransactionFailure() {
- return numBlockDeletionTransactionFailure.value();
+ public long getNumBlockDeletionTransactionFailureOnDatanodes() {
+ return numBlockDeletionTransactionFailureOnDatanodes.value();
}
- public long getNumBlockDeletionTransactionSuccess() {
- return numBlockDeletionTransactionSuccess.value();
+ public long getNumBlockDeletionTransactionSuccessOnDatanodes() {
+ return numBlockDeletionTransactionSuccessOnDatanodes.value();
}
public long getNumBlockDeletionTransactionCompleted() {
@@ -234,28 +246,31 @@ public void getMetrics(MetricsCollector metricsCollector,
boolean all) {
numBlockDeletionCommandSent.snapshot(builder, all);
numBlockDeletionCommandSuccess.snapshot(builder, all);
numBlockDeletionCommandFailure.snapshot(builder, all);
- numBlockDeletionTransactionSent.snapshot(builder, all);
- numBlockDeletionTransactionSuccess.snapshot(builder, all);
- numBlockDeletionTransactionFailure.snapshot(builder, all);
+ numBlockDeletionTransactionsOnDatanodes.snapshot(builder, all);
+ numBlockDeletionTransactionSuccessOnDatanodes.snapshot(builder, all);
+ numBlockDeletionTransactionFailureOnDatanodes.snapshot(builder, all);
numBlockDeletionTransactionCompleted.snapshot(builder, all);
numBlockDeletionTransactionCreated.snapshot(builder, all);
numSkippedTransactions.snapshot(builder, all);
numProcessedTransactions.snapshot(builder, all);
numBlockDeletionTransactionDataNodes.snapshot(builder, all);
+ numBlockAddedForDeletionToDN.snapshot(builder, all);
MetricsRecordBuilder recordBuilder = builder;
- for (Map.Entry<DatanodeID, DatanodeCommandCounts> e :
numCommandsDatanode.entrySet()) {
+ for (Map.Entry<DatanodeID, DatanodeCommandDetails> e :
numCommandsDatanode.entrySet()) {
recordBuilder = recordBuilder.endRecord().addRecord(SOURCE_NAME)
.add(new MetricsTag(Interns.info("datanode",
"Datanode host for deletion commands"), e.getKey().toString()))
- .addGauge(DatanodeCommandCounts.COMMANDS_SENT_TO_DN,
+ .addGauge(DatanodeCommandDetails.COMMANDS_SENT_TO_DN,
e.getValue().getCommandsSent())
- .addGauge(DatanodeCommandCounts.COMMANDS_SUCCESSFUL_EXECUTION_BY_DN,
+ .addGauge(DatanodeCommandDetails.COMMANDS_SUCCESSFUL_EXECUTION_BY_DN,
e.getValue().getCommandsSuccess())
- .addGauge(DatanodeCommandCounts.COMMANDS_FAILED_EXECUTION_BY_DN,
+ .addGauge(DatanodeCommandDetails.COMMANDS_FAILED_EXECUTION_BY_DN,
e.getValue().getCommandsFailure())
- .addGauge(DatanodeCommandCounts.COMMANDS_TIMEOUT_BY_DN,
- e.getValue().getCommandsTimeout());
+ .addGauge(DatanodeCommandDetails.COMMANDS_TIMEOUT_BY_DN,
+ e.getValue().getCommandsTimeout())
+ .addGauge(DatanodeCommandDetails.BLOCKS_SENT_TO_DN_COMMAND,
+ e.getValue().getCommandsTimeout());
}
recordBuilder.endRecord();
}
@@ -263,11 +278,12 @@ public void getMetrics(MetricsCollector metricsCollector,
boolean all) {
/**
* Class contains metrics related to the ScmBlockDeletingService for each
datanode.
*/
- public static final class DatanodeCommandCounts {
+ public static final class DatanodeCommandDetails {
private long commandsSent;
private long commandsSuccess;
private long commandsFailure;
private long commandsTimeout;
+ private long blocksSent;
private static final MetricsInfo COMMANDS_SENT_TO_DN = Interns.info(
"CommandsSent",
@@ -281,14 +297,18 @@ public static final class DatanodeCommandCounts {
private static final MetricsInfo COMMANDS_TIMEOUT_BY_DN = Interns.info(
"CommandsTimeout",
- "Number of commands timeout from SCM to DN"
- );
+ "Number of commands timeout from SCM to DN");
+
+ private static final MetricsInfo BLOCKS_SENT_TO_DN_COMMAND = Interns.info(
+ "BlocksSent",
+ "Number of blocks sent to DN in a command for deletion.");
- public DatanodeCommandCounts() {
+ public DatanodeCommandDetails() {
this.commandsSent = 0;
this.commandsSuccess = 0;
this.commandsFailure = 0;
this.commandsTimeout = 0;
+ this.blocksSent = 0;
}
public void incrCommandsSent(long delta) {
@@ -307,6 +327,10 @@ public void incrCommandsTimeout(long delta) {
this.commandsTimeout += delta;
}
+ public void incrBlocksSent(long delta) {
+ this.blocksSent += delta;
+ }
+
public long getCommandsSent() {
return commandsSent;
}
@@ -326,13 +350,13 @@ public long getCommandsTimeout() {
@Override
public String toString() {
return "Sent=" + commandsSent + ", Success=" + commandsSuccess + ",
Failed=" + commandsFailure +
- ", Timeout=" + commandsTimeout;
+ ", Timeout=" + commandsTimeout + ", BlocksSent = " + blocksSent;
}
}
public long getNumCommandsDatanodeSent() {
long sent = 0;
- for (DatanodeCommandCounts v : numCommandsDatanode.values()) {
+ for (DatanodeCommandDetails v : numCommandsDatanode.values()) {
sent += v.commandsSent;
}
return sent;
@@ -340,7 +364,7 @@ public long getNumCommandsDatanodeSent() {
public long getNumCommandsDatanodeSuccess() {
long successCount = 0;
- for (DatanodeCommandCounts v : numCommandsDatanode.values()) {
+ for (DatanodeCommandDetails v : numCommandsDatanode.values()) {
successCount += v.commandsSuccess;
}
return successCount;
@@ -348,7 +372,7 @@ public long getNumCommandsDatanodeSuccess() {
public long getNumCommandsDatanodeFailed() {
long failCount = 0;
- for (DatanodeCommandCounts v : numCommandsDatanode.values()) {
+ for (DatanodeCommandDetails v : numCommandsDatanode.values()) {
failCount += v.commandsFailure;
}
return failCount;
@@ -363,9 +387,14 @@ public String toString() {
.append("numBlockDeletionCommandSent =
").append(numBlockDeletionCommandSent.value()).append('\t')
.append("numBlockDeletionCommandSuccess =
").append(numBlockDeletionCommandSuccess.value()).append('\t')
.append("numBlockDeletionCommandFailure =
").append(numBlockDeletionCommandFailure.value()).append('\t')
- .append("numBlockDeletionTransactionSent =
").append(numBlockDeletionTransactionSent.value()).append('\t')
- .append("numBlockDeletionTransactionSuccess =
").append(numBlockDeletionTransactionSuccess.value()).append('\t')
- .append("numBlockDeletionTransactionFailure =
").append(numBlockDeletionTransactionFailure.value()).append('\t')
+ .append("numBlockDeletionTransactionsOnDatanodes =
").append(numBlockDeletionTransactionsOnDatanodes.value())
+ .append('\t')
+ .append("numBlockDeletionTransactionSuccessOnDatanodes = ")
+
.append(numBlockDeletionTransactionSuccessOnDatanodes.value()).append('\t')
+ .append("numBlockDeletionTransactionFailureOnDatanodes = ")
+
.append(numBlockDeletionTransactionFailureOnDatanodes.value()).append('\t')
+ .append("numBlockAddedForDeletionToDN = ")
+ .append(numBlockAddedForDeletionToDN.value()).append('\t')
.append("numDeletionCommandsPerDatanode =
").append(numCommandsDatanode);
return buffer.toString();
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestSCMBlockDeletingService.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestSCMBlockDeletingService.java
index bac26642fdd..bc60c8c4ff2 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestSCMBlockDeletingService.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestSCMBlockDeletingService.java
@@ -130,7 +130,7 @@ public void testCall() throws Exception {
metrics.getNumBlockDeletionCommandSent());
// Echo Command has one Transaction
assertEquals(datanodeDetails.size() * 1,
- metrics.getNumBlockDeletionTransactionSent());
+ metrics.getNumBlockDeletionTransactionsOnDatanodes());
}
private void callDeletedBlockTransactionScanner() throws Exception {
diff --git a/hadoop-ozone/dist/src/main/compose/common/grafana/dashboards/Ozone
- DeleteKey Metrics.json
b/hadoop-ozone/dist/src/main/compose/common/grafana/dashboards/Ozone -
DeleteKey Metrics.json
index 0d7d768850f..d026dc82a37 100644
--- a/hadoop-ozone/dist/src/main/compose/common/grafana/dashboards/Ozone -
DeleteKey Metrics.json
+++ b/hadoop-ozone/dist/src/main/compose/common/grafana/dashboards/Ozone -
DeleteKey Metrics.json
@@ -2779,7 +2779,7 @@
"targets": [
{
"editorMode": "code",
- "expr":
"(scm_block_deleting_service_num_block_deletion_transaction_success /
clamp_min(scm_block_deleting_service_num_block_deletion_transaction_sent, 1)) *
100",
+ "expr":
"(scm_block_deleting_service_num_block_deletion_transaction_success_on_datanodes
/
clamp_min(scm_block_deleting_service_num_block_deletion_transactions_on_datanodes,
1)) * 100",
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
@@ -3262,7 +3262,7 @@
{
"disableTextWrap": false,
"editorMode": "builder",
- "expr":
"scm_block_deleting_service_num_block_deletion_transaction_sent",
+ "expr":
"scm_block_deleting_service_num_block_deletion_transactions_on_datanodes",
"fullMetaSearch": false,
"includeNullMetadata": true,
"legendFormat": "{{hostname}}",
@@ -3544,7 +3544,7 @@
{
"disableTextWrap": false,
"editorMode": "builder",
- "expr":
"scm_block_deleting_service_num_block_deletion_transaction_failure",
+ "expr":
"scm_block_deleting_service_num_block_deletion_transaction_failure_on_datanodes",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestBlockDeletion.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestBlockDeletion.java
index b6107187baf..8f09746ae5a 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestBlockDeletion.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestBlockDeletion.java
@@ -262,7 +262,7 @@ public void testBlockDeletion(ReplicationConfig repConfig)
throws Exception {
assertTrue(
e.getMessage().startsWith("expected: <null> but was:"));
- assertEquals(0L, metrics.getNumBlockDeletionTransactionSent());
+ assertEquals(0L, metrics.getNumBlockDeletionTransactionsOnDatanodes());
// close the containers which hold the blocks for the key
OzoneTestUtils.closeAllContainers(scm.getEventQueue(), scm);
@@ -322,9 +322,9 @@ public void testBlockDeletion(ReplicationConfig repConfig)
throws Exception {
assertThat(metrics.getNumBlockDeletionCommandSent())
.isGreaterThanOrEqualTo(metrics.getNumBlockDeletionCommandSuccess() +
metrics.getBNumBlockDeletionCommandFailure());
- assertThat(metrics.getNumBlockDeletionTransactionSent())
-
.isGreaterThanOrEqualTo(metrics.getNumBlockDeletionTransactionFailure() +
- metrics.getNumBlockDeletionTransactionSuccess());
+ assertThat(metrics.getNumBlockDeletionTransactionsOnDatanodes())
+
.isGreaterThanOrEqualTo(metrics.getNumBlockDeletionTransactionFailureOnDatanodes()
+
+ metrics.getNumBlockDeletionTransactionSuccessOnDatanodes());
LOG.info(metrics.toString());
// Datanode should receive retried requests with continuous retry counts.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]