aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/buildtool
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-06-19 15:07:26 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-19 15:09:17 -0700
commita0e8aae4b30a23d6a3069c343a47cd56b5ed3809 (patch)
tree255a02dc61f029f3495ca7bbee4f54bc1a6fa40c /src/main/java/com/google/devtools/build/lib/buildtool
parentaf545684f4f9c2697951d291d00ae2106ff65041 (diff)
Add new BuildMetrics event to BEP.
To start we add just a single metric, the number of actions constructed in the current build. RELNOTES: None PiperOrigin-RevId: 201248490
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildtool')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java3
2 files changed, 15 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
index 6eddca5e9c..5b09d81401 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
@@ -517,9 +517,14 @@ public class BuildTool {
env.getEventBus());
// TODO(bazel-team): Merge these into one event.
- env.getEventBus().post(new AnalysisPhaseCompleteEvent(analysisResult.getTargetsToBuild(),
- view.getTargetsVisited(), timer.stop().elapsed(TimeUnit.MILLISECONDS),
- view.getAndClearPkgManagerStatistics()));
+ env.getEventBus()
+ .post(
+ new AnalysisPhaseCompleteEvent(
+ analysisResult.getTargetsToBuild(),
+ view.getTargetsVisited(),
+ timer.stop().elapsed(TimeUnit.MILLISECONDS),
+ view.getAndClearPkgManagerStatistics(),
+ view.getActionsConstructed()));
ImmutableSet<BuildConfigurationValue.Key> configurationKeys =
Stream.concat(
analysisResult
@@ -575,7 +580,10 @@ public class BuildTool {
// The stop time has to be captured before we send the BuildCompleteEvent.
result.setStopTime(runtime.getClock().currentTimeMillis());
env.getEventBus()
- .post(new BuildCompleteEvent(result, ImmutableList.of(BuildEventId.buildToolLogs())));
+ .post(
+ new BuildCompleteEvent(
+ result,
+ ImmutableList.of(BuildEventId.buildToolLogs(), BuildEventId.buildMetrics())));
if (ie != null) {
if (exitCondition.equals(ExitCode.SUCCESS)) {
result.setExitCondition(ExitCode.INTERRUPTED);
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java
index b0447fd945..2b614b0630 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java
@@ -29,12 +29,14 @@ import com.google.devtools.build.lib.skyframe.TargetCompletionValue;
import com.google.devtools.build.skyframe.EvaluationProgressReceiver;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
+import com.google.devtools.build.skyframe.SkyValue;
import java.text.NumberFormat;
import java.util.Collections;
import java.util.Locale;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;
+import javax.annotation.Nullable;
/**
* Listener for executed actions and built artifacts. We use a listener so that we have an
@@ -100,6 +102,7 @@ public final class ExecutionProgressReceiver
@Override
public void evaluated(
SkyKey skyKey,
+ @Nullable SkyValue value,
Supplier<EvaluationSuccessState> evaluationSuccessState,
EvaluationState state) {
SkyFunctionName type = skyKey.functionName();