Add CgroupMemoryBreachReported atom

Adds subject atom for when cgroup memory is breached within a virtual
machine.

Bug: 427730089
Test: TH
Flag: EXEMPT atom definition
Change-Id: Ied2272190555cfbd5a4e3d0de1eed1786e68d3fa
diff --git a/stats/atoms.proto b/stats/atoms.proto
index 7f5e5da..112aab5 100644
--- a/stats/atoms.proto
+++ b/stats/atoms.proto
@@ -1481,6 +1481,7 @@
     extensions 1148; // WifiQosPoliciesFromAccessPointRequested wifi_qos_policies_from_access_point_requested
     extensions 1149; // DisplayEventCallbackOccurred display_event_callback_occurred
     extensions 1150; // FsckFailedReported fsck_failed_reported
+    extensions 1151; // CgroupMemoryBreachReported cgroup_memory_breach_reported
     extensions 9999; // Atom9999 atom_9999
     // StatsdStats tracks platform atoms with ids up to 1500.
     // Update StatsdStats::kMaxPushedAtomId when atom ids here approach that value.
diff --git a/stats/atoms/virtualization/virtualization_extension_atoms.proto b/stats/atoms/virtualization/virtualization_extension_atoms.proto
index 74139b5..e47c22f 100644
--- a/stats/atoms/virtualization/virtualization_extension_atoms.proto
+++ b/stats/atoms/virtualization/virtualization_extension_atoms.proto
@@ -26,6 +26,7 @@
 
 extend Atom {
   optional FsckFailedReported fsck_failed_reported = 1150 [(module) = "virtualizationservice"];
+  optional CgroupMemoryBreachReported cgroup_memory_breach_reported = 1151 [(module) = "virtualizationservice"];
 }
 
 /*
@@ -44,3 +45,20 @@
   optional string vm_identifier = 3;
 }
 
+/*
+ * Reports that the cgroup monitor within microdroid had detected a high breach event.
+ * Logged from: packages/modules/Virtualization/
+ * This atom is pushed for a failure case that, ideally, should not happen.
+ * Thus, average throughput will be <1 event per device per day.
+ * Peak throughput (in the case of some bug) would be on the order of 100 per day.
+ */
+message CgroupMemoryBreachReported {
+  // Count of high breach events detected.
+  optional int64 high_breach_count = 1;
+  // The peak high memory in megabytes.
+  optional int64 high_memory_peak_mb = 2;
+  // The UID that requested a VM via AVF.
+  optional int32 vm_requester_uid = 3 [(is_uid) = true];
+  // Human readable name of the VM.
+  optional string vm_identifier = 4;
+}