perfetto: Add guardrails to perfetto_cmd
Add two guardrails to perfetto_cmd:
1) Can't trace if the last trace is less than 5mins ago.
2) Can't upload more than 10mb in a 24h period.
Bug: 73052379
Bug: 73053053
Change-Id: I6742b52510ae7a4e8a2b5c41648dd94566a37b33
diff --git a/Android.bp b/Android.bp
index 9c6a192..0d2d31f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -136,6 +136,7 @@
":perfetto_protos_perfetto_trace_ps_zero_gen",
":perfetto_protos_perfetto_trace_zero_gen",
":perfetto_src_ipc_wire_protocol_gen",
+ ":perfetto_src_perfetto_cmd_protos_gen",
"src/base/android_task_runner.cc",
"src/base/file_utils.cc",
"src/base/page_allocator.cc",
@@ -152,6 +153,7 @@
"src/ipc/unix_socket.cc",
"src/perfetto_cmd/main.cc",
"src/perfetto_cmd/perfetto_cmd.cc",
+ "src/perfetto_cmd/rate_limiter.cc",
"src/protozero/message.cc",
"src/protozero/message_handle.cc",
"src/protozero/proto_utils.cc",
@@ -201,6 +203,7 @@
"perfetto_protos_perfetto_trace_ps_zero_gen_headers",
"perfetto_protos_perfetto_trace_zero_gen_headers",
"perfetto_src_ipc_wire_protocol_gen_headers",
+ "perfetto_src_perfetto_cmd_protos_gen_headers",
],
defaults: [
"perfetto_defaults",
@@ -2872,6 +2875,39 @@
],
}
+// GN target: //src/perfetto_cmd:protos_gen
+genrule {
+ name: "perfetto_src_perfetto_cmd_protos_gen",
+ srcs: [
+ "src/perfetto_cmd/perfetto_cmd_state.proto",
+ ],
+ tools: [
+ "aprotoc",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto/ $(in)",
+ out: [
+ "external/perfetto/src/perfetto_cmd/perfetto_cmd_state.pb.cc",
+ ],
+}
+
+// GN target: //src/perfetto_cmd:protos_gen
+genrule {
+ name: "perfetto_src_perfetto_cmd_protos_gen_headers",
+ srcs: [
+ "src/perfetto_cmd/perfetto_cmd_state.proto",
+ ],
+ tools: [
+ "aprotoc",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto/ $(in)",
+ out: [
+ "external/perfetto/src/perfetto_cmd/perfetto_cmd_state.pb.h",
+ ],
+ export_include_dirs: [
+ ".",
+ ],
+}
+
// GN target: //src/protozero/protoc_plugin:protoc_plugin(//gn/standalone/toolchain:gcc_like_host)
cc_binary_host {
name: "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
@@ -3154,6 +3190,7 @@
":perfetto_src_ftrace_reader_ftrace_reader_test_messages_zero_gen",
":perfetto_src_ipc_test_messages_gen",
":perfetto_src_ipc_wire_protocol_gen",
+ ":perfetto_src_perfetto_cmd_protos_gen",
":perfetto_src_protozero_testing_messages_lite_gen",
":perfetto_src_protozero_testing_messages_zero_gen",
"src/base/android_task_runner.cc",
@@ -3209,6 +3246,9 @@
"src/ipc/test/ipc_integrationtest.cc",
"src/ipc/unix_socket.cc",
"src/ipc/unix_socket_unittest.cc",
+ "src/perfetto_cmd/perfetto_cmd.cc",
+ "src/perfetto_cmd/rate_limiter.cc",
+ "src/perfetto_cmd/rate_limiter_unittest.cc",
"src/process_stats/file_utils.cc",
"src/process_stats/procfs_utils.cc",
"src/protozero/message.cc",
@@ -3255,6 +3295,8 @@
"src/tracing/core/trace_packet_unittest.cc",
"src/tracing/core/trace_writer_impl.cc",
"src/tracing/core/trace_writer_impl_unittest.cc",
+ "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
+ "src/tracing/ipc/posix_shared_memory.cc",
"src/tracing/ipc/posix_shared_memory_unittest.cc",
"src/tracing/test/aligned_buffer_test.cc",
"src/tracing/test/fake_packet.cc",
@@ -3292,6 +3334,7 @@
"perfetto_src_ftrace_reader_ftrace_reader_test_messages_zero_gen_headers",
"perfetto_src_ipc_test_messages_gen_headers",
"perfetto_src_ipc_wire_protocol_gen_headers",
+ "perfetto_src_perfetto_cmd_protos_gen_headers",
"perfetto_src_protozero_testing_messages_lite_gen_headers",
"perfetto_src_protozero_testing_messages_zero_gen_headers",
],