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