Performance TracerEvent Schema

Performance Tracer Event Schema

Performance Tracer events represent low-level execution activity captured while a Kubling request is being processed, delegated to external sources, or interacting with internal engine components such as the buffer manager.

All events share a common envelope:

PerformanceEvent:
  runId: string
  queryId: string
  vdbName: string
  vdbVersion: string
  timestamp: long # monotonic time in nanoseconds
  type: EventType

runId identifies a tracer execution run. It is resolved once per process from PERF_TRACER_RUN_ID; if the variable is not present, Kubling generates a random 16-character alphanumeric identifier.

timestamp is generated using system’s nanoTime(). Because this is a monotonic clock, timestamps should be interpreted as relative measurements inside the same execution run rather than as wall-clock time.

Request activity events

REQUEST_START:
  extends: PerformanceEvent

Request events represent transport-level internal processing activity.

REQUEST_START marks initialization of internal request processing and can be used to correlate subsequent execution activity.

Query lifecycle events

QUERY_START:
  extends: PerformanceEvent
  sql: string
 
QUERY_END:
  extends: PerformanceEvent
  success: boolean
  error: string | null

Query lifecycle events represent the high-level execution boundaries of a command submitted to Kubling.

QUERY_START captures the SQL representation of the incoming command.

QUERY_END marks completion of the execution lifecycle and records whether the operation completed successfully. If execution fails, the associated error information is attached.

Source lifecycle events

SOURCE_START:
  extends: PerformanceEvent
  connectorName: string
  tupleSourceId: string
 
SOURCE_END:
  extends: PerformanceEvent
  connectorName: string
  tupleSourceId: string
  rowsReturned: long
  rowsRead: long
  duration: long

Source lifecycle events describe the engine-side lifecycle of tuple sources used during query execution.

SOURCE_START marks initialization of a source instance.

SOURCE_END marks completion and records execution statistics including rows read, rows returned, and total duration.

Source execution events

SOURCE_EXECUTION_START:
  extends: PerformanceEvent
  connectorName: string
  datasourceName: string
  tupleSourceId: string
  commandPushed: string
  sourceCommandType: SourceCommandType
 
SOURCE_EXECUTION_END:
  extends: PerformanceEvent
  connectorName: string
  datasourceName: string
  tupleSourceId: string
  rowsRead: long | null
  rowsReturned: long | null
  sourceReadDurationNanos: long | null
  sourceCommandType: SourceCommandType

Source execution events describe work performed inside datasource’s translators and adapters.

SOURCE_EXECUTION_START records initiation of an execution operation and captures the pushed command.

SOURCE_EXECUTION_END records execution statistics such as rows read, rows returned, and source read duration.

Supported source command types:

SourceCommandType:
  - QUERY
  - INSERT
  - UPDATE
  - DELETE

Buffer events

BUFFER_EVENT:
  extends: PerformanceEvent
  bufferEventType: BufferEventType
  bytes: long
  elements: long

Buffer events describe activity within the buffer manager.

bytes represents the amount of data involved in the operation.

elements represents the number of affected elements or pages depending on the implementation path emitting the event.

Supported buffer event types:

BufferEventType:
  - READ
  - LOGICAL_WRITE
  - LOGICAL_READ
  - PHYSICAL_WRITE
  - SPILL

Where:

EventDescription
READRead operation against the buffer
LOGICAL_WRITELogical insertion or update of buffer contents
LOGICAL_READLogical access to existing contents
PHYSICAL_WRITEData persisted to underlying storage
SPILLMemory contents moved to secondary storage

Conceptual event hierarchy

PerformanceEvent:
  shared_fields:
    - runId
    - queryId
    - vdbName
    - vdbVersion
    - timestamp
    - type
 
  request_activity:
    - RequestStartEvent
 
  query_lifecycle:
    - QueryStartEvent
    - QueryEndEvent
 
  source_lifecycle:
    - SourceStartEvent
    - SourceEndEvent
 
  source_execution:
    - SourceExecutionStartEvent
    - SourceExecutionEndEvent
 
  buffer_activity:
    - BufferEvent

Interpretation model

A query execution produces a complete sequence of Performance Tracer events representing the execution path observed by Kubling.

Events are emitted in temporal order and collectively describe the progression of a request through different execution stages.

Typical event families include:

  • REQUEST_START
    Marks initialization of transport-level request processing.

  • QUERY_START and QUERY_END
    Represent logical query execution boundaries.

  • SOURCE_START and SOURCE_END
    Represent the lifecycle of engine-side tuple sources.

  • SOURCE_EXECUTION_*
    Represent execution activity inside datasource translators and adapters.

  • BUFFER_EVENT
    Represent interactions with the buffer manager.

Not all executions necessarily involve every event family. For example, a query may execute without external datasource interactions or without generating buffer activity.

Events should be interpreted as a continuous execution timeline and correlated using shared identifiers.

Primary correlation fields:

correlation:
  primary:
    - runId
    - queryId
    - vdbName
    - vdbVersion
 
  source_specific:
    - connectorName
    - datasourceName
    - tupleSourceId

This correlation model allows reconstruction of the complete execution flow of a request, from transport initialization through datasource activity and internal engine processing.