Write a performance log when has:approval_code-owners is used in SR When looking at performance logs we want to know if and how often the code owner submit rule is triggered from a submit requirement that uses the has:approval_code-owners predicate. Bug: Google b/325070428 Change-Id: I5041fa9495971fcd16aeee36bc578869b8602ddf Signed-off-by: Edwin Kempin <ekempin@google.com> Reviewed-on: https://gerrit-review.googlesource.com/c/plugins/code-owners/+/412217 Tested-by: Zuul <zuul-63@gerritcodereview-ci.iam.gserviceaccount.com> Reviewed-by: Patrick Hiesel <hiesel@google.com>
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerApprovalPredicate.java b/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerApprovalPredicate.java index 7ca70b1..5c36814 100644 --- a/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerApprovalPredicate.java +++ b/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerApprovalPredicate.java
@@ -16,6 +16,8 @@ import com.google.gerrit.entities.SubmitRecord; import com.google.gerrit.extensions.annotations.PluginName; +import com.google.gerrit.server.logging.TraceContext; +import com.google.gerrit.server.logging.TraceContext.TraceTimer; import com.google.gerrit.server.query.change.ChangeData; import com.google.gerrit.server.query.change.SubmitRequirementPredicate; import com.google.inject.Inject; @@ -46,8 +48,14 @@ @Override public boolean match(ChangeData changeData) { - Optional<SubmitRecord> submitRecord = codeOwnerSubmitRule.evaluate(changeData); - return submitRecord.isPresent() && submitRecord.get().status == SubmitRecord.Status.OK; + try (TraceTimer timer = + TraceContext.newTimer( + String.format( + "Run code owners submit rule for 'has:%s' predicate", + CodeOwnerApprovalHasOperand.OPERAND))) { + Optional<SubmitRecord> submitRecord = codeOwnerSubmitRule.evaluate(changeData); + return submitRecord.isPresent() && submitRecord.get().status == SubmitRecord.Status.OK; + } } @Override