perfetto: add instrumentation for trigger_perfetto

This CL adds instrumentation for trigger_perfetto to report the count of
triggers.

Doc: go/perfetto-monitoring
Bug: 174150911
Change-Id: I7a4c7f72d062137364ecedba59c31d360e0c1f08
diff --git a/Android.bp b/Android.bp
index 92b7a3d..7ed5230 100644
--- a/Android.bp
+++ b/Android.bp
@@ -9300,6 +9300,10 @@
     ":perfetto_protos_perfetto_trace_system_info_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+    ":perfetto_src_android_internal_headers",
+    ":perfetto_src_android_internal_lazy_library_loader",
+    ":perfetto_src_android_stats_android_stats",
+    ":perfetto_src_android_stats_perfetto_atoms",
     ":perfetto_src_base_base",
     ":perfetto_src_base_unix_socket",
     ":perfetto_src_ipc_client",
diff --git a/src/perfetto_cmd/BUILD.gn b/src/perfetto_cmd/BUILD.gn
index dafa0aa..ca60ae7 100644
--- a/src/perfetto_cmd/BUILD.gn
+++ b/src/perfetto_cmd/BUILD.gn
@@ -88,6 +88,7 @@
   deps = [
     ":trigger_producer",
     "../../gn:default_deps",
+    "../android_stats",
     "../base",
     "../tracing/ipc/producer",
   ]
diff --git a/src/perfetto_cmd/trigger_perfetto.cc b/src/perfetto_cmd/trigger_perfetto.cc
index 39f6d04..cbe4032 100644
--- a/src/perfetto_cmd/trigger_perfetto.cc
+++ b/src/perfetto_cmd/trigger_perfetto.cc
@@ -22,6 +22,7 @@
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/unix_task_runner.h"
 #include "perfetto/ext/traced/traced.h"
+#include "src/android_stats/statsd_logging_helper.h"
 #include "src/perfetto_cmd/trigger_producer.h"
 
 namespace perfetto {
@@ -65,6 +66,9 @@
     return PrintUsage(argv[0]);
   }
 
+  android_stats::MaybeLogTriggerEvents(
+      PerfettoTriggerAtom::kTriggerPerfettoTrigger, triggers_to_activate);
+
   bool finished_with_success = false;
   base::UnixTaskRunner task_runner;
   TriggerProducer producer(
@@ -76,7 +80,12 @@
       &triggers_to_activate);
   task_runner.Run();
 
-  return finished_with_success ? 0 : 1;
+  if (!finished_with_success) {
+    android_stats::MaybeLogTriggerEvents(
+        PerfettoTriggerAtom::kTriggerPerfettoTriggerFail, triggers_to_activate);
+    return 1;
+  }
+  return 0;
 }
 
 }  // namespace perfetto