add ion memory metric

Bug: b/135925438
Change-Id: Idb35cad24450363f961c8a3e3de4b56a0ff3ef04
diff --git a/protos/BUILD b/protos/BUILD
index 3368d94..3705c24 100644
--- a/protos/BUILD
+++ b/protos/BUILD
@@ -234,6 +234,7 @@
         "perfetto/metrics/android/batt_metric.proto",
         "perfetto/metrics/android/cpu_metric.proto",
         "perfetto/metrics/android/heap_profile.proto",
+        "perfetto/metrics/android/ion_metric.proto",
         "perfetto/metrics/android/lmk_metric.proto",
         "perfetto/metrics/android/mem_metric.proto",
         "perfetto/metrics/android/powrails_metric.proto",
@@ -276,6 +277,7 @@
         "perfetto/metrics/android/batt_metric.proto",
         "perfetto/metrics/android/cpu_metric.proto",
         "perfetto/metrics/android/heap_profile.proto",
+        "perfetto/metrics/android/ion_metric.proto",
         "perfetto/metrics/android/lmk_metric.proto",
         "perfetto/metrics/android/mem_metric.proto",
         "perfetto/metrics/android/powrails_metric.proto",
diff --git a/protos/perfetto/metrics/android/BUILD.gn b/protos/perfetto/metrics/android/BUILD.gn
index 9007891..06785c5 100644
--- a/protos/perfetto/metrics/android/BUILD.gn
+++ b/protos/perfetto/metrics/android/BUILD.gn
@@ -20,6 +20,7 @@
   "batt_metric.proto",
   "cpu_metric.proto",
   "mem_metric.proto",
+  "ion_metric.proto",
   "lmk_metric.proto",
   "powrails_metric.proto",
   "startup_metric.proto",
diff --git a/protos/perfetto/metrics/android/ion_metric.proto b/protos/perfetto/metrics/android/ion_metric.proto
new file mode 100644
index 0000000..b50041e
--- /dev/null
+++ b/protos/perfetto/metrics/android/ion_metric.proto
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+syntax = "proto2";
+option optimize_for = LITE_RUNTIME;
+
+package perfetto.protos;
+
+// ion memory stats on Android.
+message AndroidIonMetric {
+  message Buffer {
+    optional string name = 1;
+    optional double avg_size_bytes = 2;
+    optional double min_size_bytes = 3;
+    optional double max_size_bytes = 4;
+  }
+
+  repeated Buffer buffer = 1;
+}
diff --git a/protos/perfetto/metrics/android/mem_metric.proto b/protos/perfetto/metrics/android/mem_metric.proto
index 591ef59..41ad572 100644
--- a/protos/perfetto/metrics/android/mem_metric.proto
+++ b/protos/perfetto/metrics/android/mem_metric.proto
@@ -21,13 +21,9 @@
 
 // Memory metrics on Android.
 message AndroidMemoryMetric {
-  // Next id: 6
   message SystemMetrics {
-    reserved 3, 5;
-
     optional Counter anon_pages = 1;
     optional Counter mmaped_pages = 2;
-    repeated NamedCounter ion_buffers = 4;
   }
 
   // Next id: 14
@@ -60,11 +56,6 @@
     optional Counter anon_and_swap = 4;
   }
 
-  message NamedCounter {
-    optional string name = 1;
-    optional Counter counter = 2;
-  }
-
   message Counter {
     optional double min = 1;
     optional double max = 2;
diff --git a/protos/perfetto/metrics/metrics.proto b/protos/perfetto/metrics/metrics.proto
index 442435a..f78214e 100644
--- a/protos/perfetto/metrics/metrics.proto
+++ b/protos/perfetto/metrics/metrics.proto
@@ -22,6 +22,7 @@
 import "perfetto/metrics/android/batt_metric.proto";
 import "perfetto/metrics/android/cpu_metric.proto";
 import "perfetto/metrics/android/mem_metric.proto";
+import "perfetto/metrics/android/ion_metric.proto";
 import "perfetto/metrics/android/lmk_metric.proto";
 import "perfetto/metrics/android/powrails_metric.proto";
 import "perfetto/metrics/android/startup_metric.proto";
@@ -41,7 +42,7 @@
 
 // Root message for all Perfetto-based metrics.
 //
-// Next id: 9.
+// Next id: 10
 message TraceMetrics {
   // Battery counters metric on Android.
   optional AndroidBatteryMetric android_batt = 5;
@@ -52,6 +53,9 @@
   // Memory metrics on Android (owned by the Android Telemetry team).
   optional AndroidMemoryMetric android_mem = 1;
 
+  // ion buffer memory metrics.
+  optional AndroidIonMetric android_ion = 9;
+
   // Statistics about low memory kills.
   optional AndroidLmkMetric android_lmk = 8;