Record incident details into the trace

This patch records incident details from statsd (config id, config uid
and alert id) into the trace (together with the full trace
configuration) so they can be cross-correlated.

Bug: 73627502
Change-Id: Ib552a8b5977bc39f0b9e37dc79011d4d26eab65e
diff --git a/Android.bp b/Android.bp
index da39ea9..de7759d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -20,6 +20,7 @@
   srcs: [
     ":perfetto_protos_perfetto_common_common_gen",
     ":perfetto_protos_perfetto_config_config_gen",
+    ":perfetto_protos_perfetto_config_config_zero_gen",
     ":perfetto_protos_perfetto_ipc_ipc_gen",
     ":perfetto_protos_perfetto_trace_chrome_lite_gen",
     ":perfetto_protos_perfetto_trace_chrome_zero_gen",
@@ -98,6 +99,7 @@
   generated_headers: [
     "perfetto_protos_perfetto_common_common_gen_headers",
     "perfetto_protos_perfetto_config_config_gen_headers",
+    "perfetto_protos_perfetto_config_config_zero_gen_headers",
     "perfetto_protos_perfetto_ipc_ipc_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -126,6 +128,7 @@
   srcs: [
     ":perfetto_protos_perfetto_common_common_gen",
     ":perfetto_protos_perfetto_config_config_gen",
+    ":perfetto_protos_perfetto_config_config_zero_gen",
     ":perfetto_protos_perfetto_ipc_ipc_gen",
     ":perfetto_protos_perfetto_trace_chrome_lite_gen",
     ":perfetto_protos_perfetto_trace_chrome_zero_gen",
@@ -193,6 +196,7 @@
   generated_headers: [
     "perfetto_protos_perfetto_common_common_gen_headers",
     "perfetto_protos_perfetto_config_config_gen_headers",
+    "perfetto_protos_perfetto_config_config_zero_gen_headers",
     "perfetto_protos_perfetto_ipc_ipc_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -243,6 +247,7 @@
   srcs: [
     ":perfetto_protos_perfetto_common_common_gen",
     ":perfetto_protos_perfetto_config_config_gen",
+    ":perfetto_protos_perfetto_config_config_zero_gen",
     ":perfetto_protos_perfetto_ipc_ipc_gen",
     ":perfetto_protos_perfetto_trace_chrome_lite_gen",
     ":perfetto_protos_perfetto_trace_chrome_zero_gen",
@@ -333,6 +338,7 @@
   generated_headers: [
     "perfetto_protos_perfetto_common_common_gen_headers",
     "perfetto_protos_perfetto_config_config_gen_headers",
+    "perfetto_protos_perfetto_config_config_zero_gen_headers",
     "perfetto_protos_perfetto_ipc_ipc_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -447,6 +453,61 @@
   ],
 }
 
+// GN target: //protos/perfetto/config:config_zero_gen
+genrule {
+  name: "perfetto_protos_perfetto_config_config_zero_gen",
+  srcs: [
+    "protos/perfetto/config/chrome/chrome_config.proto",
+    "protos/perfetto/config/data_source_config.proto",
+    "protos/perfetto/config/data_source_descriptor.proto",
+    "protos/perfetto/config/ftrace/ftrace_config.proto",
+    "protos/perfetto/config/test_config.proto",
+    "protos/perfetto/config/trace_config.proto",
+  ],
+  tools: [
+    "aprotoc",
+    "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
+  ],
+  cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
+  out: [
+    "external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.cc",
+    "external/perfetto/protos/perfetto/config/data_source_config.pbzero.cc",
+    "external/perfetto/protos/perfetto/config/data_source_descriptor.pbzero.cc",
+    "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.cc",
+    "external/perfetto/protos/perfetto/config/test_config.pbzero.cc",
+    "external/perfetto/protos/perfetto/config/trace_config.pbzero.cc",
+  ],
+}
+
+// GN target: //protos/perfetto/config:config_zero_gen
+genrule {
+  name: "perfetto_protos_perfetto_config_config_zero_gen_headers",
+  srcs: [
+    "protos/perfetto/config/chrome/chrome_config.proto",
+    "protos/perfetto/config/data_source_config.proto",
+    "protos/perfetto/config/data_source_descriptor.proto",
+    "protos/perfetto/config/ftrace/ftrace_config.proto",
+    "protos/perfetto/config/test_config.proto",
+    "protos/perfetto/config/trace_config.proto",
+  ],
+  tools: [
+    "aprotoc",
+    "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
+  ],
+  cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
+  out: [
+    "external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.h",
+    "external/perfetto/protos/perfetto/config/data_source_config.pbzero.h",
+    "external/perfetto/protos/perfetto/config/data_source_descriptor.pbzero.h",
+    "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.h",
+    "external/perfetto/protos/perfetto/config/test_config.pbzero.h",
+    "external/perfetto/protos/perfetto/config/trace_config.pbzero.h",
+  ],
+  export_include_dirs: [
+    "protos",
+  ],
+}
+
 // GN target: //protos/perfetto/ipc:ipc_gen
 genrule {
   name: "perfetto_protos_perfetto_ipc_ipc_gen",
@@ -3029,6 +3090,7 @@
   srcs: [
     ":perfetto_protos_perfetto_common_common_gen",
     ":perfetto_protos_perfetto_config_config_gen",
+    ":perfetto_protos_perfetto_config_config_zero_gen",
     ":perfetto_protos_perfetto_ipc_ipc_gen",
     ":perfetto_protos_perfetto_trace_chrome_lite_gen",
     ":perfetto_protos_perfetto_trace_chrome_zero_gen",
@@ -3094,6 +3156,7 @@
   generated_headers: [
     "perfetto_protos_perfetto_common_common_gen_headers",
     "perfetto_protos_perfetto_config_config_gen_headers",
+    "perfetto_protos_perfetto_config_config_zero_gen_headers",
     "perfetto_protos_perfetto_ipc_ipc_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -3110,6 +3173,7 @@
   export_generated_headers: [
     "perfetto_protos_perfetto_common_common_gen_headers",
     "perfetto_protos_perfetto_config_config_gen_headers",
+    "perfetto_protos_perfetto_config_config_zero_gen_headers",
     "perfetto_protos_perfetto_ipc_ipc_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
@@ -3136,6 +3200,7 @@
 cc_library_static {
   name: "perfetto_trace_protos",
   srcs: [
+    ":perfetto_protos_perfetto_config_config_gen",
     ":perfetto_protos_perfetto_trace_chrome_lite_gen",
     ":perfetto_protos_perfetto_trace_filesystem_lite_gen",
     ":perfetto_protos_perfetto_trace_ftrace_lite_gen",
@@ -3151,6 +3216,7 @@
     "include",
   ],
   generated_headers: [
+    "perfetto_protos_perfetto_config_config_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
     "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
     "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
@@ -3158,6 +3224,7 @@
     "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
   ],
   export_generated_headers: [
+    "perfetto_protos_perfetto_config_config_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
     "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
     "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
@@ -3179,6 +3246,7 @@
   srcs: [
     ":perfetto_protos_perfetto_common_common_gen",
     ":perfetto_protos_perfetto_config_config_gen",
+    ":perfetto_protos_perfetto_config_config_zero_gen",
     ":perfetto_protos_perfetto_ipc_ipc_gen",
     ":perfetto_protos_perfetto_trace_chrome_lite_gen",
     ":perfetto_protos_perfetto_trace_chrome_zero_gen",
@@ -3327,6 +3395,7 @@
   generated_headers: [
     "perfetto_protos_perfetto_common_common_gen_headers",
     "perfetto_protos_perfetto_config_config_gen_headers",
+    "perfetto_protos_perfetto_config_config_zero_gen_headers",
     "perfetto_protos_perfetto_ipc_ipc_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",