Skip to content

🧬 Database Schema

InfraSight stores all enriched telemetry data in ClickHouse, using two primary tables: tracing_events and network_events. Below you’ll find their schemas and a breakdown of the meaning of each field.

📁 tracing_events Table

Click to show table schema
CREATE TABLE IF NOT EXISTS audit.tracing_events (
  pid UInt32,
  uid UInt32,
  gid UInt32,
  ppid UInt32,
  user_pid UInt32,
  user_ppid UInt32,
  cgroup_id UInt64,
  cgroup_name String,
  comm String,
  filename String,
  monotonic_ts_enter_ns UInt64,
  monotonic_ts_exit_ns UInt64,
  return_code Int64,
  latency_ns UInt64,
  event_type String,
  node_name String,
  user String,
  latency_ms Float64, 
  wall_time_ms Int64,
  wall_time_dt DateTime64(3),
  container_id String,
  container_image String,
  container_labels_json JSON
)
ENGINE = MergeTree()
ORDER BY wall_time_ms;

🔍 Field Descriptions

Field Description
pid Process ID of the event-emitting process
uid User ID under which the process is running
gid Group ID of the process
ppid Parent Process ID
user_pid Userspace PID as seen by the process itself (may differ in containers)
user_ppid Userspace PPID from the process's PID namespace
cgroup_id CGroup ID the process belongs to
cgroup_name Human-readable name or resolved path of the cgroup
comm Command name (basename of the process)
filename Name of the file involved in the syscall (e.g., for open)
monotonic_ts_enter_ns Timestamp (monotonic clock) when the syscall started (in nanoseconds)
monotonic_ts_exit_ns Timestamp when the syscall exited (in nanoseconds)
return_code Return value of the syscall
latency_ns Duration of the syscall in nanoseconds
event_type Type of syscall event (e.g., execve, open, chmod, etc.)
node_name Hostname of the node where the event occurred
user Username resolved from the UID
latency_ms Latency converted to milliseconds
wall_time_ms Wall-clock timestamp (milliseconds since epoch)
wall_time_dt ISO8601-formatted timestamp with millisecond precision
container_id Container ID, if the process is running in a container
container_image Name of the container image, if available
container_labels_json Labels from the container, stored as JSON

🌐 network_events Table

Click to show table schema
CREATE TABLE IF NOT EXISTS audit.network_events (
  pid UInt32,
  uid UInt32,
  gid UInt32,
  ppid UInt32,
  user_pid UInt32,
  user_ppid UInt32,
  cgroup_id UInt64,
  cgroup_name String,
  comm String,

  sa_family String,
  saddr_ipv4 String,
  daddr_ipv4 String,
  sport String,
  dport String,
  saddr_ipv6 String,
  daddr_ipv6 String,

  monotonic_ts_enter_ns UInt64,
  monotonic_ts_exit_ns UInt64,
  return_code Int64,
  latency_ns UInt64,

  event_type String,
  node_name String,
  user String,

  latency_ms Float64,
  wall_time_ms Int64,
  wall_time_dt DateTime64(3),

  container_id String,
  container_image String,
  container_labels_json JSON
)
ENGINE = MergeTree()
ORDER BY wall_time_ms;

🔍 Field Descriptions

Includes all common fields described above, plus:

Field Description
sa_family Socket address family (e.g., AF_INET, AF_INET6, AF_UNIX)
saddr_ipv4 Source IPv4 address (if applicable)
daddr_ipv4 Destination IPv4 address (if applicable)
sport Source port
dport Destination port
saddr_ipv6 Source IPv6 address (if applicable)
daddr_ipv6 Destination IPv6 address (if applicable)