diff --git a/report/src/com/android/catbox/result/JsonResultReporter.java b/report/src/com/android/catbox/result/JsonResultReporter.java
index 9363f9d..035cc6a 100644
--- a/report/src/com/android/catbox/result/JsonResultReporter.java
+++ b/report/src/com/android/catbox/result/JsonResultReporter.java
@@ -79,6 +79,12 @@
     private Map<String, String> mReportTestNameMap = new HashMap<String, String>();
 
     @Option(
+            name = "exclude-metric-from-test-name",
+            description = "Exclude metric from test name in report.")
+    private Map<String, String> mExcludeMetricTestNameMap = new HashMap<String, String>();
+
+
+    @Option(
             name = "report-all-metrics",
             description = "Report all the generated metrics. Default to 'true'.")
     private boolean mReportAllMetrics = true;
@@ -209,7 +215,7 @@
             writeAllMetrics(reportLog, metrics);
         } else {
             // Write metrics for given keys to the report
-            writeMetricsForGivenKeys(reportLog, metrics);
+            writeMetricsForGivenKeys(reportLog, metrics, streamName);
         }
 
         // Submit Report Log
@@ -237,7 +243,7 @@
 
     /** Write given set of metrics to JSON Report */
     private void writeMetricsForGivenKeys(
-            MetricsReportLog reportLog, Map<String, String> metrics) {
+            MetricsReportLog reportLog, Map<String, String> metrics, String streamName) {
         CLog.logAndDisplay(LogLevel.INFO, "Writing given set of metrics to JSON report.");
         if (mReportMetricKeyMap == null || mReportMetricKeyMap.isEmpty()) {
             CLog.logAndDisplay(
@@ -249,6 +255,10 @@
                 CLog.logAndDisplay(LogLevel.WARN, String.format("%s metric key is missing.", key));
                 continue;
             }
+            if(mExcludeMetricTestNameMap != null && mExcludeMetricTestNameMap.get(key) !=null && mExcludeMetricTestNameMap.get(key).equals(streamName)){
+                CLog.logAndDisplay(LogLevel.WARN, String.format("Excluding %s metric key from %s test.", key, streamName));
+                continue;
+            }
             try {
                 double value = Double.parseDouble(metrics.get(key));
                 reportLog.addValue(
diff --git a/tools/catbox-common/res/config/catbox-performance-base.xml b/tools/catbox-common/res/config/catbox-performance-base.xml
index 1b1bec5..01a0d97 100644
--- a/tools/catbox-common/res/config/catbox-performance-base.xml
+++ b/tools/catbox-common/res/config/catbox-performance-base.xml
@@ -45,6 +45,8 @@
     </target_preparer>
 
     <!-- Enable perfetto host side metric collector -->
-    <include name="perfetto-puller"/>
-
+    <metrics_collector class="com.android.tradefed.device.metric.PerfettoPullerMetricCollector">
+        <option name="collect-on-run-ended-only" value="false" />
+        <option name="pull-pattern-keys" value="perfetto_file_path" />
+    </metrics_collector>
 </configuration>
diff --git a/tools/catbox-common/res/config/catbox-performance-postprocessors.xml b/tools/catbox-common/res/config/catbox-performance-postprocessors.xml
index edbaddf..0fcebad 100644
--- a/tools/catbox-common/res/config/catbox-performance-postprocessors.xml
+++ b/tools/catbox-common/res/config/catbox-performance-postprocessors.xml
@@ -20,4 +20,7 @@
     <option name="test-iteration-separator" value="$" />
     <option name="enable-per-test-log" value="false" />
   </metric_post_processor>
+  <metric_post_processor class="com.android.tradefed.postprocessor.PerfettoGenericPostProcessor">
+    <option name="perfetto-proto-file-prefix" value="metric_perfetto" />
+  </metric_post_processor>
 </configuration>
diff --git a/tools/catbox-common/res/config/perfetto-puller.xml b/tools/catbox-common/res/config/perfetto-puller.xml
deleted file mode 100644
index a29cf72..0000000
--- a/tools/catbox-common/res/config/perfetto-puller.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2023 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-<configuration description="Pull the files from the device and add it to the test logs.">
-    <!-- Pulls the perfetto files from the device and collects the metrics from the trace files -->
-    <metrics_collector class="com.android.tradefed.device.metric.PerfettoPullerMetricCollector" />
-</configuration>
\ No newline at end of file
diff --git a/tools/catbox-tradefed/res/config/catbox-performance-cold-app-start-up-settings.xml b/tools/catbox-tradefed/res/config/catbox-performance-cold-app-start-up-settings.xml
index 21cb686..df05367 100644
--- a/tools/catbox-tradefed/res/config/catbox-performance-cold-app-start-up-settings.xml
+++ b/tools/catbox-tradefed/res/config/catbox-performance-cold-app-start-up-settings.xml
@@ -49,4 +49,4 @@
   <option name="report-test-name-mapping" key="android.platform.test.scenario.settings.OpenAppMicrobenchmark#testOpen" value="settings_app_start_up" />
   <option name="report-all-metrics" value="false" />
   <option name="report-metric-key-mapping" key="cold_startup_com.android.car.settings-median" value="cold_start_up" />
-</configuration>
+</configuration>
\ No newline at end of file
