blob: a47db5fbe35c49e2d76a804c0cc4d7b4458be634 [file] [log] [blame]
syntax = "proto2";
package uprobestats.protos;
message UprobestatsConfig {
// A Task consists of one or more probes that target the same process and are
// activated and deactivated together.
message Task {
// A ProbeConfig defines the spec of a single probe, including which BPF to
// use and where to place the probe.
message ProbeConfig {
// Name of the BPF program and function. E.g.
// prog_BitmapAllocation_uprobe_bitmap_constructor_heap. Note that this
// does not include the full BPF program path.
optional string bpf_name = 1;
// Path to an executable or a library. E.g.
// /system/framework/arm64/boot-framework.oat. This is made a repeated
// paths to allow backup paths to be provided. Sometimes a library may be
// re-compiled by ART and stored in a different location. uprobestats
// would try to place the probe on each of the paths in the order
// specified here until the probe is successfully placed.
repeated string file_paths = 2;
// Full method signature. E.g.
// void android.content.pm.PackageManagerInternal.finishPackageInstall(int, boolean)
optional string method_signature = 3;
// Name of the FD that the BPF program writes to. E.g.
// map_BitmapAllocation_output_buf. Note that this does not include the full file path.
optional string bpf_map = 4;
}
repeated ProbeConfig probe_configs = 1;
// Name of the process to be probed, e.g. system_server.
optional string target_process_name = 2;
// How long the probes should remain active.
optional int32 duration_seconds = 3;
message StatsdLoggingConfig {
optional int64 atom_id = 1;
}
optional StatsdLoggingConfig statsd_logging_config = 5;
}
repeated Task tasks = 1;
}