gRPC Reference
KprobeService
QueryCausalChain
Returns the causal graph for a transaction, request, or trace identifier stored in the transaction_id field.
rpc QueryCausalChain(QueryCausalChainRequest) returns (QueryCausalChainResponse);
message QueryCausalChainRequest {
string transaction_id = 1;
}
message QueryCausalChainResponse {
repeated KernelEventProto nodes = 1;
repeated CausalEdgeProto edges = 2;
}
QueryEvents
Returns all stored events for a transaction ID in timestamp order.
rpc QueryEvents(QueryEventsRequest) returns (QueryEventsResponse);
message QueryEventsRequest {
string transaction_id = 1;
}
message QueryEventsResponse {
repeated KernelEventProto events = 1;
}
QueryTimeRange
Returns stored events between two nanosecond timestamps.
rpc QueryTimeRange(QueryTimeRangeRequest) returns (QueryTimeRangeResponse);
message QueryTimeRangeRequest {
uint64 from_ns = 1;
uint64 to_ns = 2;
}
message QueryTimeRangeResponse {
repeated KernelEventProto events = 1;
}
StreamEvents
Streams live kernel events from the API broadcast hub.
rpc StreamEvents(StreamEventsRequest) returns (stream StreamEventsResponse);
message StreamEventsRequest {}
message StreamEventsResponse {
KernelEventProto event = 1;
}
ReplayService
StartReplay
Creates a replay session for a transaction/request ID and applies optional timing or failure injection settings.
rpc StartReplay(StartReplayRequest) returns (StartReplayResponse);
message StartReplayRequest {
string transaction_id = 1;
uint64 timeout_override_ns = 2;
double latency_multiplier = 3;
uint64 extra_latency_ns = 4;
string inject_failure_at = 5;
double speed_factor = 6;
}
message StartReplayResponse {
string session_id = 1;
int32 event_count = 2;
string injections = 3;
}
Control
Controls an existing replay session. Valid commands are play, pause, stop, reset, and seek.
rpc Control(ReplayControlRequest) returns (ReplayControlResponse);
message ReplayControlRequest {
string session_id = 1;
string command = 2;
int32 seek_index = 3;
}
message ReplayControlResponse {
string session_id = 1;
string state = 2;
int32 cursor = 3;
}
Status
Returns current replay session state.
rpc Status(ReplayStatusRequest) returns (ReplayStatusResponse);
message ReplayStatusRequest {
string session_id = 1;
}
message ReplayStatusResponse {
string session_id = 1;
string state = 2;
int32 cursor = 3;
int32 event_count = 4;
string injections = 5;
}
WatchReplay
Streams replay events for a session as playback advances.
rpc WatchReplay(WatchReplayRequest) returns (stream WatchReplayResponse);
message WatchReplayRequest {
string session_id = 1;
}
message WatchReplayResponse {
ReplayEventProto event = 1;
string state = 2;
}
Common types
message KernelEventProto {
string event_id = 1;
uint64 timestamp_ns = 2;
uint32 pid = 3;
string event_type = 4;
string transaction_id = 5;
string service_name = 6;
string trace_id = 7;
uint64 duration_ns = 8;
uint32 tid = 9;
uint32 cpu = 10;
string span_id = 11;
}
message CausalEdgeProto {
string from_event_id = 1;
string to_event_id = 2;
string cause_type = 3;
uint64 latency_ns = 4;
string transaction_id = 5;
string service_name = 6;
}
message ReplayEventProto {
string event_id = 1;
uint64 timestamp_ns = 2;
uint32 pid = 3;
string event_type = 4;
string transaction_id = 5;
string service_name = 6;
uint64 duration_ns = 7;
int64 return_value = 8;
int32 index = 9;
}