Add a AutoProfiler helper allowing a custom receiver.
Add a new AutoProfiler helper which logs for operations exceeding provided
latency threshold and always calls a provided custom receiver.
PiperOrigin-RevId: 307091619
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/GoogleAutoProfilerUtils.java b/src/main/java/com/google/devtools/build/lib/profiler/GoogleAutoProfilerUtils.java
index 9f15a26..019527e 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/GoogleAutoProfilerUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/GoogleAutoProfilerUtils.java
@@ -64,6 +64,17 @@
new SequencedElapsedTimeReceiver(profilingReceiver, createSimpleLogger(taskDescription)));
}
+ /**
+ * Returns an {@link AutoProfiler} that, when closed, will log if the operation exceeds provided
+ * threshold and call the custom {@link ElapsedTimeReceiver} for any duration.
+ */
+ public static AutoProfiler loggedAndCustomReceiver(
+ String taskDescription, Duration minTimeForLogging, ElapsedTimeReceiver customReceiver) {
+ return AutoProfiler.create(
+ new SequencedElapsedTimeReceiver(
+ makeReceiver(taskDescription, selfLogger, minTimeForLogging), customReceiver));
+ }
+
private static ElapsedTimeReceiver makeReceiver(
String description, GoogleLogger logger, Duration minTimeForLogging) {
return new FloggerElapsedTimeReceiver(description, logger, minTimeForLogging);