Switch JSON profile to include metadata by default.
RELNOTES: None
PiperOrigin-RevId: 250122600
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java b/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
index 9904741..34362a7 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
@@ -512,8 +512,7 @@
Clock clock,
long execStartTimeNanos,
boolean enabledCpuUsageProfiling,
- boolean slimProfile,
- boolean enableJsonMetadata)
+ boolean slimProfile)
throws IOException {
Preconditions.checkState(!isActive(), "Profiler already active");
initHistograms();
@@ -544,8 +543,7 @@
break;
case JSON_TRACE_FILE_FORMAT:
writer =
- new JsonTraceFileWriter(
- stream, execStartTimeNanos, slimProfile, enableJsonMetadata, outputBase, buildID);
+ new JsonTraceFileWriter(stream, execStartTimeNanos, slimProfile, outputBase, buildID);
break;
case JSON_TRACE_FILE_COMPRESSED_FORMAT:
writer =
@@ -553,7 +551,6 @@
new GZIPOutputStream(stream),
execStartTimeNanos,
slimProfile,
- enableJsonMetadata,
outputBase,
buildID);
}
@@ -1010,7 +1007,6 @@
private final ThreadLocal<Boolean> metadataPosted =
ThreadLocal.withInitial(() -> Boolean.FALSE);
private final boolean slimProfile;
- private final boolean enableJsonMetadata;
private final UUID buildID;
private final String outputBase;
@@ -1025,13 +1021,11 @@
OutputStream outStream,
long profileStartTimeNanos,
boolean slimProfile,
- boolean enableJsonMetadata,
String outputBase,
UUID buildID) {
this.outStream = outStream;
this.profileStartTimeNanos = profileStartTimeNanos;
this.slimProfile = slimProfile;
- this.enableJsonMetadata = enableJsonMetadata;
this.buildID = buildID;
this.outputBase = outputBase;
}
@@ -1157,16 +1151,14 @@
// The buffer size of 262144 is chosen at random.
new OutputStreamWriter(
new BufferedOutputStream(outStream, 262144), StandardCharsets.UTF_8))) {
- if (enableJsonMetadata) {
- writer.beginObject();
- writer.name("otherData");
- writer.beginObject();
- writer.name("build_id").value(buildID.toString());
- writer.name("output_base").value(outputBase);
- writer.name("date").value(new Date().toString());
- writer.endObject();
- writer.name("traceEvents");
- }
+ writer.beginObject();
+ writer.name("otherData");
+ writer.beginObject();
+ writer.name("build_id").value(buildID.toString());
+ writer.name("output_base").value(outputBase);
+ writer.name("date").value(new Date().toString());
+ writer.endObject();
+ writer.name("traceEvents");
writer.beginArray();
TaskData data;
@@ -1249,9 +1241,7 @@
receivedPoisonPill = true;
writer.setIndent(" ");
writer.endArray();
- if (enableJsonMetadata) {
- writer.endObject();
- }
+ writer.endObject();
} catch (IOException e) {
this.savedException = e;
if (!receivedPoisonPill) {
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index fc20e45..38b3728 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -344,8 +344,7 @@
clock,
execStartTimeNanos,
options.enableCpuUsageProfiling,
- options.enableJsonProfileDiet,
- options.enableJsonMetadata);
+ options.enableJsonProfileDiet);
// Instead of logEvent() we're calling the low level function to pass the timings we took in
// the launcher. We're setting the INIT phase marker so that it follows immediately the
// LAUNCH phase.
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java b/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java
index 34ac822..5bac90e 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java
@@ -254,14 +254,14 @@
+ " too large.")
public boolean enableJsonProfileDiet;
+ // TODO(twerth): Remove after Blaze is released with cl/248143034.
@Option(
name = "experimental_json_profile_metadata",
- defaultValue = "false",
+ defaultValue = "true",
documentationCategory = OptionDocumentationCategory.LOGGING,
effectTags = {OptionEffectTag.AFFECTS_OUTPUTS, OptionEffectTag.BAZEL_MONITORING},
- help =
- "Adds some metadata (e.g. build ID) to the JSON profile."
- + " Changes output from JSON array to JSON object format.")
+ metadataTags = {OptionMetadataTag.DEPRECATED},
+ help = "Deprecated no-op.")
public boolean enableJsonMetadata;
@Option(
diff --git a/src/test/java/com/google/devtools/build/lib/profiler/AutoProfilerBenchmark.java b/src/test/java/com/google/devtools/build/lib/profiler/AutoProfilerBenchmark.java
index fa0851e..07c78fd 100644
--- a/src/test/java/com/google/devtools/build/lib/profiler/AutoProfilerBenchmark.java
+++ b/src/test/java/com/google/devtools/build/lib/profiler/AutoProfilerBenchmark.java
@@ -40,8 +40,7 @@
BlazeClock.instance(),
BlazeClock.instance().nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
}
@BeforeExperiment
diff --git a/src/test/java/com/google/devtools/build/lib/profiler/ProfilerChartTest.java b/src/test/java/com/google/devtools/build/lib/profiler/ProfilerChartTest.java
index cf294a3..68565cf 100644
--- a/src/test/java/com/google/devtools/build/lib/profiler/ProfilerChartTest.java
+++ b/src/test/java/com/google/devtools/build/lib/profiler/ProfilerChartTest.java
@@ -263,8 +263,7 @@
BlazeClock.instance(),
BlazeClock.instance().nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
// Write from multiple threads to generate multiple rows in the chart.
for (int i = 0; i < noOfRows; i++) {
diff --git a/src/test/java/com/google/devtools/build/lib/profiler/ProfilerTest.java b/src/test/java/com/google/devtools/build/lib/profiler/ProfilerTest.java
index 50dea91..fca71bc 100644
--- a/src/test/java/com/google/devtools/build/lib/profiler/ProfilerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/profiler/ProfilerTest.java
@@ -104,8 +104,7 @@
BlazeClock.instance(),
BlazeClock.nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
return buffer;
}
@@ -121,8 +120,7 @@
BlazeClock.instance(),
BlazeClock.nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
}
@Test
@@ -224,8 +222,7 @@
BlazeClock.instance(),
BlazeClock.instance().nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
try (SilentCloseable c = profiler.profile(ProfilerTask.ACTION, "action task")) {
// Next task takes less than 10 ms but should be recorded anyway.
clock.advanceMillis(1);
@@ -258,8 +255,7 @@
BlazeClock.instance(),
BlazeClock.instance().nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
profiler.logSimpleTask(10000, 20000, ProfilerTask.VFS_STAT, "stat");
profiler.logSimpleTask(20000, 30000, ProfilerTask.REMOTE_EXECUTION, "remote execution");
@@ -371,8 +367,7 @@
BlazeClock.instance(),
BlazeClock.instance().nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
profiler.logSimpleTask(10000, 20000, ProfilerTask.VFS_STAT, "stat");
assertThat(ProfilerTask.VFS_STAT.collectsSlowestInstances()).isTrue();
@@ -595,8 +590,7 @@
badClock,
initialNanoTime,
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
profiler.logSimpleTask(badClock.nanoTime(), ProfilerTask.INFO, "some task");
profiler.stop();
}
@@ -650,8 +644,7 @@
BlazeClock.instance(),
BlazeClock.instance().nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
profiler.logSimpleTaskDuration(
Profiler.nanoTimeMaybe(), Duration.ofSeconds(10), ProfilerTask.INFO, "foo");
IOException expected = assertThrows(IOException.class, () -> profiler.stop());
@@ -677,8 +670,7 @@
BlazeClock.instance(),
BlazeClock.instance().nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- /* slimProfile= */ false,
- /* enableJsonMetadata= */ false);
+ /* slimProfile= */ false);
profiler.logSimpleTaskDuration(
Profiler.nanoTimeMaybe(), Duration.ofSeconds(10), ProfilerTask.INFO, "foo");
IOException expected = assertThrows(IOException.class, () -> profiler.stop());
@@ -698,8 +690,7 @@
BlazeClock.instance(),
BlazeClock.instance().nanoTime(),
/* enabledCpuUsageProfiling= */ false,
- slimProfile,
- /* enableJsonMetadata= */ false);
+ slimProfile);
long curTime = Profiler.nanoTimeMaybe();
for (int i = 0; i < 100_000; i++) {
Duration duration;