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;