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;
}