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