From bf321ca044217848a77f15443571f804bc885fef Mon Sep 17 00:00:00 2001 From: guyben Date: Wed, 17 Jan 2018 12:49:16 -0800 Subject: [PATCH] Add label for the DnsWriter in the publishDnsUpdates metrics This allows grouping metrics based on the DnsWriter. We can already group by the TLD, but since a TLD can have multiple writers, and since different writers perform very differently from one another, it could be important to group by writer as well. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=182255398 --- java/google/registry/dns/DnsMetrics.java | 24 ++++++++++--------- .../registry/dns/PublishDnsUpdatesAction.java | 1 + .../dns/PublishDnsUpdatesActionTest.java | 8 +++---- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/java/google/registry/dns/DnsMetrics.java b/java/google/registry/dns/DnsMetrics.java index b4c05756e..f8e950c73 100644 --- a/java/google/registry/dns/DnsMetrics.java +++ b/java/google/registry/dns/DnsMetrics.java @@ -49,8 +49,8 @@ public class DnsMetrics { private static final ImmutableSet LABEL_DESCRIPTORS_FOR_COMMIT = ImmutableSet.of( LabelDescriptor.create("tld", "TLD"), - LabelDescriptor.create( - "status", "Whether writer.commit() succeeded or failed.")); + LabelDescriptor.create("status", "Whether writer.commit() succeeded or failed."), + LabelDescriptor.create("dnsWriter", "The DnsWriter used.")); // Finer-grained fitter than the DEFAULT_FITTER, allows values between 1. and 2^20, which gives // over 15 minutes. @@ -191,6 +191,7 @@ public class DnsMetrics { * This is to be used for load testing the system, and will not measure anything in prod. */ void recordCommit( + String dnsWriter, CommitStatus status, Duration processingDuration, int numberOfDomains, @@ -201,26 +202,27 @@ public class DnsMetrics { } int batchSize = numberOfDomains + numberOfHosts; - processingTimePerCommitDist.record(processingDuration.getMillis(), tld, status.name()); + processingTimePerCommitDist.record( + processingDuration.getMillis(), tld, status.name(), dnsWriter); processingTimePerItemDist.record( - processingDuration.getMillis(), batchSize, tld, status.name()); + processingDuration.getMillis(), batchSize, tld, status.name(), dnsWriter); if (batchSize > 0) { normalizedProcessingTimePerCommitDist.record( (double) processingDuration.getMillis() / batchSize, - tld, status.name()); + tld, status.name(), dnsWriter); normalizedProcessingTimePerItemDist.record( (double) processingDuration.getMillis() / batchSize, batchSize, - tld, status.name()); + tld, status.name(), dnsWriter); } - totalBatchSizePerCommitDist.record(batchSize, tld, status.name()); + totalBatchSizePerCommitDist.record(batchSize, tld, status.name(), dnsWriter); - totalBatchSizePerItemDist.record(batchSize, batchSize, tld, status.name()); + totalBatchSizePerItemDist.record(batchSize, batchSize, tld, status.name(), dnsWriter); - commitCount.increment(tld, status.name()); - domainsCommittedCount.incrementBy(numberOfDomains, tld, status.name()); - hostsCommittedCount.incrementBy(numberOfHosts, tld, status.name()); + commitCount.increment(tld, status.name(), dnsWriter); + domainsCommittedCount.incrementBy(numberOfDomains, tld, status.name(), dnsWriter); + hostsCommittedCount.incrementBy(numberOfHosts, tld, status.name(), dnsWriter); } } diff --git a/java/google/registry/dns/PublishDnsUpdatesAction.java b/java/google/registry/dns/PublishDnsUpdatesAction.java index 244a8e456..d8b365790 100644 --- a/java/google/registry/dns/PublishDnsUpdatesAction.java +++ b/java/google/registry/dns/PublishDnsUpdatesAction.java @@ -162,6 +162,7 @@ public final class PublishDnsUpdatesAction implements Runnable, Callable { } finally { Duration duration = new Duration(timeAtStart, clock.nowUtc()); dnsMetrics.recordCommit( + dnsWriter, commitStatus, duration, domainsPublished, diff --git a/javatests/google/registry/dns/PublishDnsUpdatesActionTest.java b/javatests/google/registry/dns/PublishDnsUpdatesActionTest.java index 82b42befe..f2e5a0f48 100644 --- a/javatests/google/registry/dns/PublishDnsUpdatesActionTest.java +++ b/javatests/google/registry/dns/PublishDnsUpdatesActionTest.java @@ -110,7 +110,7 @@ public class PublishDnsUpdatesActionTest { verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED); verify(dnsMetrics).incrementPublishHostRequests(1, PublishStatus.ACCEPTED); verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.REJECTED); - verify(dnsMetrics).recordCommit(CommitStatus.SUCCESS, Duration.ZERO, 0, 1); + verify(dnsMetrics).recordCommit("correctWriter", CommitStatus.SUCCESS, Duration.ZERO, 0, 1); verifyNoMoreInteractions(dnsMetrics); verifyNoMoreInteractions(dnsQueue); @@ -130,7 +130,7 @@ public class PublishDnsUpdatesActionTest { verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED); verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.ACCEPTED); verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.REJECTED); - verify(dnsMetrics).recordCommit(CommitStatus.SUCCESS, Duration.ZERO, 1, 0); + verify(dnsMetrics).recordCommit("correctWriter", CommitStatus.SUCCESS, Duration.ZERO, 1, 0); verifyNoMoreInteractions(dnsMetrics); verifyNoMoreInteractions(dnsQueue); @@ -156,7 +156,7 @@ public class PublishDnsUpdatesActionTest { verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED); verify(dnsMetrics).incrementPublishHostRequests(3, PublishStatus.ACCEPTED); verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.REJECTED); - verify(dnsMetrics).recordCommit(CommitStatus.SUCCESS, Duration.ZERO, 2, 3); + verify(dnsMetrics).recordCommit("correctWriter", CommitStatus.SUCCESS, Duration.ZERO, 2, 3); verifyNoMoreInteractions(dnsMetrics); verifyNoMoreInteractions(dnsQueue); @@ -176,7 +176,7 @@ public class PublishDnsUpdatesActionTest { verify(dnsMetrics).incrementPublishDomainRequests(2, PublishStatus.REJECTED); verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.ACCEPTED); verify(dnsMetrics).incrementPublishHostRequests(3, PublishStatus.REJECTED); - verify(dnsMetrics).recordCommit(CommitStatus.SUCCESS, Duration.ZERO, 0, 0); + verify(dnsMetrics).recordCommit("correctWriter", CommitStatus.SUCCESS, Duration.ZERO, 0, 0); verifyNoMoreInteractions(dnsMetrics); verifyNoMoreInteractions(dnsQueue);