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
This commit is contained in:
guyben 2018-01-17 12:49:16 -08:00 committed by Ben McIlwain
parent 1c8451fea1
commit bf321ca044
3 changed files with 18 additions and 15 deletions

View file

@ -49,8 +49,8 @@ public class DnsMetrics {
private static final ImmutableSet<LabelDescriptor> LABEL_DESCRIPTORS_FOR_COMMIT = private static final ImmutableSet<LabelDescriptor> LABEL_DESCRIPTORS_FOR_COMMIT =
ImmutableSet.of( ImmutableSet.of(
LabelDescriptor.create("tld", "TLD"), LabelDescriptor.create("tld", "TLD"),
LabelDescriptor.create( LabelDescriptor.create("status", "Whether writer.commit() succeeded or failed."),
"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 // Finer-grained fitter than the DEFAULT_FITTER, allows values between 1. and 2^20, which gives
// over 15 minutes. // 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. * This is to be used for load testing the system, and will not measure anything in prod.
*/ */
void recordCommit( void recordCommit(
String dnsWriter,
CommitStatus status, CommitStatus status,
Duration processingDuration, Duration processingDuration,
int numberOfDomains, int numberOfDomains,
@ -201,26 +202,27 @@ public class DnsMetrics {
} }
int batchSize = numberOfDomains + numberOfHosts; int batchSize = numberOfDomains + numberOfHosts;
processingTimePerCommitDist.record(processingDuration.getMillis(), tld, status.name()); processingTimePerCommitDist.record(
processingDuration.getMillis(), tld, status.name(), dnsWriter);
processingTimePerItemDist.record( processingTimePerItemDist.record(
processingDuration.getMillis(), batchSize, tld, status.name()); processingDuration.getMillis(), batchSize, tld, status.name(), dnsWriter);
if (batchSize > 0) { if (batchSize > 0) {
normalizedProcessingTimePerCommitDist.record( normalizedProcessingTimePerCommitDist.record(
(double) processingDuration.getMillis() / batchSize, (double) processingDuration.getMillis() / batchSize,
tld, status.name()); tld, status.name(), dnsWriter);
normalizedProcessingTimePerItemDist.record( normalizedProcessingTimePerItemDist.record(
(double) processingDuration.getMillis() / batchSize, (double) processingDuration.getMillis() / batchSize,
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()); commitCount.increment(tld, status.name(), dnsWriter);
domainsCommittedCount.incrementBy(numberOfDomains, tld, status.name()); domainsCommittedCount.incrementBy(numberOfDomains, tld, status.name(), dnsWriter);
hostsCommittedCount.incrementBy(numberOfHosts, tld, status.name()); hostsCommittedCount.incrementBy(numberOfHosts, tld, status.name(), dnsWriter);
} }
} }

View file

@ -162,6 +162,7 @@ public final class PublishDnsUpdatesAction implements Runnable, Callable<Void> {
} finally { } finally {
Duration duration = new Duration(timeAtStart, clock.nowUtc()); Duration duration = new Duration(timeAtStart, clock.nowUtc());
dnsMetrics.recordCommit( dnsMetrics.recordCommit(
dnsWriter,
commitStatus, commitStatus,
duration, duration,
domainsPublished, domainsPublished,

View file

@ -110,7 +110,7 @@ public class PublishDnsUpdatesActionTest {
verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED); verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED);
verify(dnsMetrics).incrementPublishHostRequests(1, PublishStatus.ACCEPTED); verify(dnsMetrics).incrementPublishHostRequests(1, PublishStatus.ACCEPTED);
verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.REJECTED); 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(dnsMetrics);
verifyNoMoreInteractions(dnsQueue); verifyNoMoreInteractions(dnsQueue);
@ -130,7 +130,7 @@ public class PublishDnsUpdatesActionTest {
verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED); verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED);
verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.ACCEPTED); verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.ACCEPTED);
verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.REJECTED); 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(dnsMetrics);
verifyNoMoreInteractions(dnsQueue); verifyNoMoreInteractions(dnsQueue);
@ -156,7 +156,7 @@ public class PublishDnsUpdatesActionTest {
verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED); verify(dnsMetrics).incrementPublishDomainRequests(0, PublishStatus.REJECTED);
verify(dnsMetrics).incrementPublishHostRequests(3, PublishStatus.ACCEPTED); verify(dnsMetrics).incrementPublishHostRequests(3, PublishStatus.ACCEPTED);
verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.REJECTED); 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(dnsMetrics);
verifyNoMoreInteractions(dnsQueue); verifyNoMoreInteractions(dnsQueue);
@ -176,7 +176,7 @@ public class PublishDnsUpdatesActionTest {
verify(dnsMetrics).incrementPublishDomainRequests(2, PublishStatus.REJECTED); verify(dnsMetrics).incrementPublishDomainRequests(2, PublishStatus.REJECTED);
verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.ACCEPTED); verify(dnsMetrics).incrementPublishHostRequests(0, PublishStatus.ACCEPTED);
verify(dnsMetrics).incrementPublishHostRequests(3, PublishStatus.REJECTED); 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(dnsMetrics);
verifyNoMoreInteractions(dnsQueue); verifyNoMoreInteractions(dnsQueue);