You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document describes the JSON profile format accepted by the AWS CodeGuru
Profiler PostAgentProfile API. No formal public schema exists; this
reference is based on the open-source
Python agent
and the
AWS thread-state documentation.
Overview
Encoding: JSON (Content-Type: application/json)
Structure: Recursive call tree where children is a JSON object (map), not an array
Counts: Self-time only, stored at leaf nodes (not cumulative)
Self-time sample counts by counter type. Only present at leaf nodes. Multiple counter types can coexist.
children
{string: node}
Child frames keyed by frame name. Omitted when empty.
file
string
Source file path (optional, not emitted by profile-bee)
line
[int]
Line number or [start, end] range (optional)
Important: children is an object, not an array
Children are keyed by frame name in a JSON object. This allows the backend
to efficiently merge profiles from multiple agents. Using an array would
break the merge algorithm.
Counter Types
The counts keys correspond to thread states. The CodeGuru console uses
these to populate different visualization views:
Key
Meaning
CPU View
Latency View
RUNNABLE
Thread actively executing on CPU
Yes
Yes
BLOCKED
Thread blocked on a monitor/lock
Yes
Yes
NATIVE
Thread running native (JNI/FFI) code
Yes
Yes
WAITING
Thread in wait/join (unbounded)
No
Yes
TIMED_WAITING
Thread in timed wait/sleep
No
Yes
IDLE
Thread parked/idle (daemon, pool waiter)
No
No
WALL_TIME
Generic wall-clock (Python agent default)
Yes
Yes
CodeGuru Console Views
CPU view shows: RUNNABLE + BLOCKED + NATIVE
Latency view shows: everything exceptIDLE
Custom view lets you pick any combination of counter types