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 =
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);
}
}

View file

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

View file

@ -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);