Skip to content

Storage Schema Reference

canardstack reads the tables written by duckdb-otlp.

TableEvent time columnSignal
otlp_logstime_unix_nanoOTLP log records
otlp_tracesstart_time_unix_nanoOTLP spans
otlp_metrics_gaugetime_unix_nanoOTLP gauge datapoints
otlp_metrics_sumtime_unix_nanoOTLP sum datapoints

Required columns include:

time_unix_nano, observed_time_unix_nano, trace_id, span_id, service_name,
service_namespace, service_instance_id, severity_number, severity_text,
event_name, body, resource_attributes, scope_name, scope_version,
scope_attributes, log_attributes, dropped_attributes_count, flags

Required columns include:

start_time_unix_nano, duration_time_unix_nano, trace_id, span_id,
parent_span_id, trace_state, service_name, service_namespace,
service_instance_id, name, kind, status_code, status_status_message,
resource_attributes, scope_name, scope_version, scope_attributes,
span_attributes, events_json, links_json, dropped_attributes_count,
dropped_events_count, dropped_links_count, flags

Required columns include:

time_unix_nano, start_time_unix_nano, name, description, unit, int_value,
double_value, service_name, service_namespace, service_instance_id,
resource_attributes, scope_name, scope_version, scope_attributes,
metric_attributes, flags, exemplars_json

Required columns include all gauge metric columns plus:

aggregation_temporality, is_monotonic

Trace and span IDs are lowercase hex strings. Attribute columns are JSON strings. There are no canardstack-owned ingested_at or source_format columns.