package profiler.proto

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service AgentService

agent_service.proto:24

service CpuService

cpu.proto:24

service EventService

event.proto:24

service GpuService

gpu.proto:10

service GraphicsService

graphics.proto:24

service InternalEventService

internal_event.proto:21

service InternalMemoryService

internal_memory.proto:22

service InternalNetworkService

internal_network.proto:22

service IoService

io.proto:24

service MemoryService

memory.proto:24

service NetworkService

network.proto:24

service ProfilerService

profiler_service.proto:24

message ActivityData

event.proto:100

Used as request type in: InternalEventService.SendActivity

Used as field type in: ActivityDataResponse

message ActivityStateData

event.proto:115

Used in: ActivityData

enum ActivityStateData.ActivityState

event.proto:116

Used in: ActivityStateData

enum AgentAttachResponse.Status

profiler_service.proto:67

Used in: AgentAttachResponse

message AgentConfig

agent_service.proto:40

Proto used for configuring perfd + perfa. The message itself is created and pushed to device from Studio and can be access via profiler::Config::Instance().

message AgentConfig.MemoryConfig

agent_service.proto:41

Used in: AgentConfig

enum AgentStatusResponse.Status

profiler_service.proto:133

Used in: AgentStatusResponse

message AllocatedClass

memory.proto:365

Used in: AllocationContextsResponse, AllocationEvent

message AllocationContextsResponse

memory.proto:355

Used as response type in: MemoryService.GetAllocationContexts, MemoryService.GetLegacyAllocationContexts

message AllocationEvent

memory.proto:489

Proto format for handling O+ allocation data.

Used in: BatchAllocationSample

message AllocationEvent.Allocation

memory.proto:490

Used in: AllocationEvent

message AllocationEvent.Deallocation

memory.proto:528

Used in: AllocationEvent

message AllocationStack

memory.proto:372

Proto format for handling stack data for both pre-O and O+.

Used in: AllocationContextsResponse

message AllocationStack.SmallFrame

memory.proto:393

studio-side only - a smaller proto format to store lazy- loaded stack frame objects. This is used specifically for showing live allocation tracking data (O+ JVMTI), where an app can run up to 2M+ unique frames. Given proto objects do not support null values, each string field in StackFrame holds default values that can add up to hundreds of MBs for these apps.

Used in: SmallFrameWrapper

message AllocationStack.SmallFrameWrapper

memory.proto:406

Wrapper proto for SmallFrame since oneof does not support repeated fields.

Used in: AllocationStack

message AllocationStack.StackFrame

memory.proto:373

Used in: StackFrameWrapper, BatchAllocationSample

message AllocationStack.StackFrameWrapper

memory.proto:400

Wrapper proto for StackFrame since oneof does not support repeated fields.

Used in: AllocationStack

message AllocationsInfo

memory.proto:266

Proto for describing an allocation tracking record. Simliar to HeapDumpInfo, an AllocationsInfo is returned if either the start_time or end_time falls within the requested time window. It is the responsibility of the requester to dedupe a completed info if there was an unfinished info that was previously sent.

Used in: MemoryData, TrackAllocationsResponse

enum AllocationsInfo.Status

memory.proto:267

Used in: AllocationsInfo

enum AppId

profiler.proto:22

message BatchAllocationSample

memory.proto:471

Batched AllocationEvents to minimize number of grpc calls compared to transferring them individually.

Used as request type in: InternalMemoryService.RecordAllocationEvents

Used as response type in: MemoryService.GetAllocations

Used as field type in: MemoryData

enum ChunkRequest.Type

internal_network.proto:46

Used in: ChunkRequest

message CommonData

profiler.proto:30

TODO: Add more essential fields.

Used as request type in: AgentService.HeartBeat

Used as field type in: CpuProfilerData, GpuData, GraphicsData, IoDataResponse.IoData, NetworkProfilerData

message ConnectionData

network.proto:72

Used in: NetworkProfilerData

message ConnectivityData

network.proto:74

Used in: NetworkProfilerData

enum ConnectivityData.NetworkType

network.proto:87

Used in: ConnectivityData

enum ConnectivityData.RadioState

network.proto:75

Used in: ConnectivityData

enum CpuDataRequest.SpecialValues

cpu.proto:140

message CpuProfilerData

cpu.proto:260

CPU data of a given app process.

Used in: CpuDataResponse

enum CpuProfilerType

cpu.proto:75

Used in: CpuProfilingAppStartRequest, CpuProfilingAppStopRequest, GetTraceResponse, TraceInfo

message CpuProfilingAppStartRequest

cpu.proto:190

Request profiling of app (identified by its process id |process_id|) to start. INSTRUMENTED is support only when ART is the profiler.

Used as request type in: CpuService.StartProfilingApp

Used as field type in: ProfilingStateResponse

enum CpuProfilingAppStartRequest.Mode

cpu.proto:193

Used in: CpuProfilingAppStartRequest

enum CpuProfilingAppStartResponse.Status

cpu.proto:209

Used in: CpuProfilingAppStartResponse

enum CpuProfilingAppStopResponse.Status

cpu.proto:227

Used in: CpuProfilingAppStopResponse

enum CpuStartResponse.Status

cpu.proto:163

Used in: CpuStartResponse

enum CpuStopResponse.Status

cpu.proto:179

Used in: CpuStopResponse

message CpuUsageData

cpu.proto:279

CPU usage data of an app process and the entire system at a given point. CPU usage data is most valuable when app data is combined with system data, e.g., showing the CPU usage percentage number. One data consumer (e.g., an Android Studio instance) would request an app's data, and another consumer (e.g., another Android Studio instance) would request another app's. Both of them need system data. Therefore, we put system data together with every piece of app specific data. The absolute values of fields in this message are not very interesting. The difference of two instances is more useful. It can show the system- wide CPU utilization percentage and an app's CPU utilization percentage. The values of the fields may overflow their type, but the usefulness stays the same.

Used in: CpuProfilerData

message Device

profiler_service.proto:149

Used in: DeviceProcesses, GetDevicesResponse

enum Device.State

profiler_service.proto:150

Used in: Device

message DeviceProcesses

profiler_service.proto:144

message DumpDataRequest

memory.proto:232

Used as request type in: MemoryService.GetHeapDump, MemoryService.GetLegacyAllocationDump

message DumpDataResponse

memory.proto:238

Used as response type in: MemoryService.GetHeapDump, MemoryService.GetLegacyAllocationDump

enum DumpDataResponse.Status

memory.proto:239

Used in: DumpDataResponse

message EmptyEventResponse

internal_event.proto:31

Used as response type in: InternalEventService.SendActivity, InternalEventService.SendSystem

(message has no fields)

message EmptyMemoryReply

internal_memory.proto:71

Used as response type in: InternalMemoryService.RecordAllocStats, InternalMemoryService.RecordAllocationEvents, InternalMemoryService.RecordGcStats

(message has no fields)

message EmptyNetworkReply

internal_network.proto:98

Used as response type in: InternalNetworkService.RegisterHttpData, InternalNetworkService.SendChunk, InternalNetworkService.SendHttpEvent, InternalNetworkService.SendHttpRequest, InternalNetworkService.SendHttpResponse, InternalNetworkService.TrackThread

(message has no fields)

message EncodedAllocationStack

memory.proto:432

Proto format for storing and transmitting O+ stack data efficiently. The |stack_id| field uniquely identifies a stack within an app, each |method_id| is referenced by AllocationStack.StackFrame which contains detailed info about the method.

Used in: BatchAllocationSample

message EventDataRequest

event.proto:142

Used as request type in: EventService.GetActivityData, EventService.GetSystemData

enum EventDataRequest.EventType

event.proto:143

Used in: EventDataRequest

enum EventStartResponse.Status

event.proto:47

Used in: EventStartResponse

enum EventStopResponse.Status

event.proto:61

Used in: EventStopResponse

message FragmentData

event.proto:138

Used in: ActivityData

message FrameStats

graphics.proto:94

Framestats of a SurfaceView frame.

Used in: GraphicsData

enum GetThreadsResponse.State

cpu.proto:299

Used in: ThreadActivity, ThreadSnapshot.Snapshot

message GetThreadsResponse.Thread

cpu.proto:331

TODO: unify with Thread

Used in: GetThreadsResponse

message GetThreadsResponse.ThreadActivity

cpu.proto:325

Used in: Thread

message GetThreadsResponse.ThreadSnapshot

cpu.proto:315

Snapshot of the threads that were alive at a given moment.

Used in: GetThreadsResponse

message GetThreadsResponse.ThreadSnapshot.Snapshot

cpu.proto:316

Used in: ThreadSnapshot

enum GetTraceResponse.Status

cpu.proto:125

TODO: add more status as needed.

Used in: GetTraceResponse

message GpuData

gpu.proto:28

Used in: GpuDataResponse

enum GpuStartResponse.Status

gpu.proto:39

Used in: GpuStartResponse

enum GpuStopResponse.Status

gpu.proto:55

Used in: GpuStopResponse

message GraphicsData

graphics.proto:88

Graphics data of a SurfaceView frame.

Used in: GraphicsDataResponse

enum GraphicsStartResponse.Status

graphics.proto:64

Used in: GraphicsStartResponse

enum GraphicsStopResponse.Status

graphics.proto:79

Used in: GraphicsStopResponse

message HeapDumpInfo

memory.proto:205

Proto for describing a heap dump record. A HeapDumpInfo is returned if either the start_time or end_time falls within the requested time window. e.g. An info can be returned across multiple requests: 1. When a heap dump is first triggered with start_time specified. 2. When the heap dump completes/fails with end_time specified. It is the responsibility of the requester to dedupe a completed info if there was an unfinished info that was previously sent.

Used in: ListHeapDumpInfosResponse, MemoryData, TriggerHeapDumpResponse

message HttpConnectionData

network.proto:179

An HTTP connection represents the full lifetime of a single HTTP request / response network communication.

Used in: HttpRangeResponse

enum HttpDetailsRequest.Type

network.proto:201

Used in: HttpDetailsRequest

message HttpDetailsResponse.AccessingThreads

network.proto:272

Used in: HttpDetailsResponse

message HttpDetailsResponse.Body

network.proto:258

Used in: HttpDetailsResponse

message HttpDetailsResponse.Request

network.proto:238

Used in: HttpDetailsResponse

message HttpDetailsResponse.Response

network.proto:250

Used in: HttpDetailsResponse

enum HttpEventRequest.Event

internal_network.proto:61

Used in: HttpEventRequest

message IoDataResponse.FileData

io.proto:92

Contains for each file operated on in this period, when it was opened, closed, written to or read from.

Used in: IoData

message IoDataResponse.FileData.FileSession

io.proto:104

A FileSession represents a session of operating on a file from when it was opened until it is closed. e.g. {open, read, read, write, read, close}

Used in: FileData

message IoDataResponse.FileData.FileSession.IoSystemCall

io.proto:106

Corresponds to a single write/read system call

Used in: FileSession

enum IoDataResponse.FileData.TimestampPosition

io.proto:93

message IoDataResponse.IoData

io.proto:136

Used in: IoDataResponse

message IoDataResponse.SpeedData

io.proto:129

Contains the current overall speed of writing/reading

Used in: IoData

enum IoDataResponse.Status

io.proto:78

Used in: IoDataResponse

enum IoDataResponse.Type

io.proto:84

Used in: FileData.FileSession.IoSystemCall, SpeedData

enum IoStartResponse.Status

io.proto:47

Used in: IoStartResponse

enum IoStopResponse.Status

io.proto:62

Used in: IoStopResponse

message JavaThread

network.proto:169

Thread information obtained from Java, which is different from the thread data we would obtain from a JNI context. See also: https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html

Used in: HttpDetailsResponse.AccessingThreads, JavaThreadRequest

message LegacyAllocationEvent

memory.proto:330

Used in: LegacyAllocationEventsResponse

enum LegacyAllocationEventsResponse.Status

memory.proto:319

Used in: LegacyAllocationEventsResponse

message MemoryControlRequest.DisableTracking

internal_memory.proto:44

Used in: MemoryControlRequest

message MemoryControlRequest.EnableTracking

internal_memory.proto:40

Used in: MemoryControlRequest

message MemoryControlRequest.ResumeTracking

internal_memory.proto:50

Used in: MemoryControlRequest

(message has no fields)

message MemoryControlRequest.SuspendTracking

internal_memory.proto:48

Used in: MemoryControlRequest

(message has no fields)

message MemoryData

memory.proto:162

Used as response type in: MemoryService.GetData, MemoryService.GetJvmtiData

message MemoryData.AllocStatsSample

memory.proto:174

Used in: AllocStatsRequest, MemoryData

message MemoryData.GcStatsSample

memory.proto:180

Used in: GcStatsRequest, MemoryData

message MemoryData.MemorySample

memory.proto:163

Used in: MemoryData

message MemoryRequest

memory.proto:155

Used as request type in: MemoryService.GetData, MemoryService.GetJvmtiData

enum MemoryStartResponse.Status

memory.proto:103

Used in: MemoryStartResponse

enum MemoryStopResponse.Status

memory.proto:117

Used in: MemoryStopResponse

enum NetworkDataRequest.SpecialValues

network.proto:96

enum NetworkDataRequest.Type

network.proto:102

Used in: NetworkDataRequest

message NetworkProfilerData

network.proto:55

Used in: NetworkDataResponse

message Process

profiler_service.proto:172

Used in: DeviceProcesses, GetProcessesResponse

enum Process.State

profiler_service.proto:173

Used in: Process

enum ResumeTrackAllocationsResponse.Status

memory.proto:146

Used in: ResumeTrackAllocationsResponse

message Session

profiler.proto:36

Used in: AgentAttachRequest, AgentStatusRequest, AllocationContextsRequest, AllocationSnapshotRequest, BytesRequest, CommonData, CpuDataRequest, CpuProfilingAppStartRequest, CpuProfilingAppStopRequest, CpuStartRequest, CpuStopRequest, DumpDataRequest, EventDataRequest, EventStartRequest, EventStopRequest, ForceGarbageCollectionRequest, GetProcessesRequest, GetThreadsRequest, GetTraceInfoRequest, GetTraceRequest, GpuDataRequest, GpuStartRequest, GpuStopRequest, GraphicsDataRequest, GraphicsStartRequest, GraphicsStopRequest, HttpDetailsRequest, HttpRangeRequest, IoDataRequest, IoStartRequest, IoStopRequest, LegacyAllocationContextsRequest, LegacyAllocationEventsRequest, ListDumpInfosRequest, MemoryRequest, MemoryStartRequest, MemoryStopRequest, NetworkDataRequest, NetworkStartRequest, NetworkStopRequest, ProfilingStateRequest, ResumeTrackAllocationsRequest, SaveTraceInfoRequest, StackFrameInfoRequest, SuspendTrackAllocationsRequest, TimeRequest, TrackAllocationsRequest, TriggerHeapDumpRequest, VersionRequest

enum SocketType

agent_service.proto:32

Used in: AgentConfig

message SpeedData

network.proto:67

TODO: Break these up into their own messages (since tx and rx speeds can have unique timestamps), unless the error we get by combining them in the same message ends up being too subtle to matter

Used in: NetworkProfilerData

enum SuspendTrackAllocationsResponse.Status

memory.proto:131

Used in: SuspendTrackAllocationsResponse

message SystemData

event.proto:79

TODO: Add support for KeyEvents, and ButtonEvents. The current setup allows for only touch.

Used as request type in: InternalEventService.SendSystem

Used as field type in: SystemDataResponse

enum SystemData.SystemEventType

event.proto:81

Each system event message is associated with one event type.

Used in: SystemData

message Thread

cpu.proto:99

Used in: TraceInfo

message ThreadInfo

memory.proto:445

Proto format for storing and transmitting O+ thread data. JVMTI provides an API to get a thread's name but not id. To avoid sending too much duplicated string datas, we encode thread names to id manually and resolve them on Studio-side.

Used in: AllocationContextsResponse, BatchAllocationSample

message TraceInfo

cpu.proto:107

A TraceInfo contains the information regarding a trace and should be returned if its time overlaps with the one defined in a GetTraceInfoRequest.

Used in: GetTraceInfoResponse, SaveTraceInfoRequest

enum TrackAllocationsResponse.Status

memory.proto:281

Used in: TrackAllocationsResponse

enum TriggerHeapDumpResponse.Status

memory.proto:219

Used in: TriggerHeapDumpResponse