Add instrumentation for genquery.
RELNOTES: None
PiperOrigin-RevId: 234571640
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD b/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
index b8ecac2..3492452 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
@@ -23,6 +23,7 @@
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
+ "//src/main/java/com/google/devtools/build/lib/profiler",
"//src/main/java/com/google/devtools/build/lib/query2",
"//src/main/java/com/google/devtools/build/lib/query2:query-engine",
"//src/main/java/com/google/devtools/build/lib/query2:query-output",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
index 3d2f611..b6808a1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
@@ -55,6 +55,8 @@
import com.google.devtools.build.lib.pkgcache.FilteringPolicies;
import com.google.devtools.build.lib.pkgcache.PackageProvider;
import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader;
+import com.google.devtools.build.lib.profiler.Profiler;
+import com.google.devtools.build.lib.profiler.SilentCloseable;
import com.google.devtools.build.lib.query2.BlazeQueryEnvironment;
import com.google.devtools.build.lib.query2.QueryEnvironmentFactory;
import com.google.devtools.build.lib.query2.engine.DigraphQueryEvalResult;
@@ -151,12 +153,16 @@
// force relative_locations to true so it has a deterministic output across machines.
queryOptions.relativeLocations = true;
- ByteString result =
- executeQuery(
- ruleContext,
- queryOptions,
- ruleContext.attributes().get("scope", BuildType.LABEL_LIST),
- query);
+ ByteString result;
+ try (SilentCloseable c =
+ Profiler.instance().profile("GenQuery.executeQuery/" + ruleContext.getLabel())) {
+ result =
+ executeQuery(
+ ruleContext,
+ queryOptions,
+ ruleContext.attributes().get("scope", BuildType.LABEL_LIST),
+ query);
+ }
if (result == null || ruleContext.hasErrors()) {
return null;
}