1syntax = "proto2"; 2 3package uprobestats.protos; 4 5message UprobestatsConfig { 6 7 // A Task consists of one or more probes that target the same process and are 8 // activated and deactivated together. 9 message Task { 10 11 // A ProbeConfig defines the spec of a single probe, including which BPF to 12 // use and where to place the probe. 13 message ProbeConfig { 14 15 // Name of the BPF program and function. E.g. 16 // prog_BitmapAllocation_uprobe_bitmap_constructor_heap. Note that this 17 // does not include the full BPF program path. 18 optional string bpf_name = 1; 19 20 // Path to an executable or a library. E.g. 21 // /system/framework/arm64/boot-framework.oat. This is made a repeated 22 // paths to allow backup paths to be provided. Sometimes a library may be 23 // re-compiled by ART and stored in a different location. uprobestats 24 // would try to place the probe on each of the paths in the order 25 // specified here until the probe is successfully placed. 26 repeated string file_paths = 2; 27 28 // Full method signature. E.g. 29 // void android.content.pm.PackageManagerInternal.finishPackageInstall(int, boolean) 30 optional string method_signature = 3; 31 32 // Name of the FD that the BPF program writes to. E.g. 33 // map_BitmapAllocation_output_buf. Note that this does not include the full file path. 34 optional string bpf_map = 4; 35 } 36 37 repeated ProbeConfig probe_configs = 1; 38 39 // Name of the process to be probed, e.g. system_server. 40 optional string target_process_name = 2; 41 42 // How long the probes should remain active. 43 optional int32 duration_seconds = 3; 44 45 message StatsdLoggingConfig { 46 optional int64 atom_id = 1; 47 } 48 optional StatsdLoggingConfig statsd_logging_config = 5; 49 50 } 51 52 repeated Task tasks = 1; 53} 54