CRUD Traces
CRUD operations create, read, update and delete traces.
bydbctl is the command line tool in examples.
Trace is designed for distributed tracing data. It groups spans by trace ID for efficient trace-level queries.
Create operation
Create operation adds a new trace to the database’s metadata registry repository. If the trace does not currently exist, create operation will create the schema.
Examples of creating
A trace belongs to a unique group. We should create such a group with a catalog CATALOG_TRACE
before creating a trace.
bydbctl group create -f - <<EOF
metadata:
name: sw_trace
catalog: CATALOG_TRACE
resource_opts:
shard_num: 2
segment_interval:
unit: UNIT_DAY
num: 1
ttl:
unit: UNIT_DAY
num: 7
EOF
The group creates two shards to store trace data. Every one day, it would create a segment.
The data in this group will keep 7 days.
Then, below command will create a new trace:
bydbctl trace create -f - <<EOF
metadata:
name: sw
group: sw_trace
tags:
- name: trace_id
type: TAG_TYPE_STRING
- name: state
type: TAG_TYPE_INT
- name: service_id
type: TAG_TYPE_STRING
- name: service_instance_id
type: TAG_TYPE_STRING
- name: endpoint_id
type: TAG_TYPE_STRING
- name: duration
type: TAG_TYPE_INT
- name: span_id
type: TAG_TYPE_STRING
- name: timestamp
type: TAG_TYPE_TIMESTAMP
trace_id_tag_name: trace_id
span_id_tag_name: span_id
timestamp_tag_name: timestamp
EOF
The trace_id_tag_name, span_id_tag_name and timestamp_tag_name fields are required. They specify which tags hold the trace ID, span ID and timestamp respectively. The database engine uses trace_id_tag_name to group spans into traces.
Get operation
Get(Read) operation gets a trace’s schema.
Examples of getting
bydbctl trace get -g sw_trace -n sw
Update operation
Update operation updates a trace’s schema.
Examples of updating
bydbctl is the command line tool to update a trace in this example.
bydbctl trace update -f - <<EOF
metadata:
name: sw
group: sw_trace
tags:
- name: trace_id
type: TAG_TYPE_STRING
- name: state
type: TAG_TYPE_INT
- name: service_id
type: TAG_TYPE_STRING
- name: service_instance_id
type: TAG_TYPE_STRING
- name: endpoint_id
type: TAG_TYPE_STRING
- name: duration
type: TAG_TYPE_INT
- name: span_id
type: TAG_TYPE_STRING
- name: timestamp
type: TAG_TYPE_TIMESTAMP
- name: service_name
type: TAG_TYPE_STRING
trace_id_tag_name: trace_id
span_id_tag_name: span_id
timestamp_tag_name: timestamp
EOF
You can only append new tags to a trace. You can’t change or remove existing tags. The order of tags is immutable.
Delete operation
Delete operation deletes a trace’s schema.
Examples of deleting
bydbctl is the command line tool to delete a trace in this example.
bydbctl trace delete -g sw_trace -n sw
List operation
List operation list all traces in a group.
Examples of listing
bydbctl trace list -g sw_trace