ObjectStackObjectStack

Tracing

Tracing protocol schemas

Tracing Protocol - Distributed Tracing & Observability

Comprehensive distributed tracing based on OpenTelemetry standards:

  • Trace context propagation

  • Span creation and management

  • Sampling strategies

  • Integration with tracing backends (Jaeger, Zipkin, etc.)

  • W3C Trace Context standard compliance

Source: packages/spec/src/system/tracing.zod.ts

TypeScript Usage

import { OpenTelemetryCompatibility, OtelExporterType, SamplingDecision, SamplingStrategyType, Span, SpanAttributeValue, SpanAttributes, SpanEvent, SpanKind, SpanLink, SpanStatus, TraceContext, TraceContextPropagation, TraceFlags, TracePropagationFormat, TraceSamplingConfig, TraceState, TracingConfig } from '@objectstack/spec/system';
import type { OpenTelemetryCompatibility, OtelExporterType, SamplingDecision, SamplingStrategyType, Span, SpanAttributeValue, SpanAttributes, SpanEvent, SpanKind, SpanLink, SpanStatus, TraceContext, TraceContextPropagation, TraceFlags, TracePropagationFormat, TraceSamplingConfig, TraceState, TracingConfig } from '@objectstack/spec/system';

// Validate data
const result = OpenTelemetryCompatibility.parse(data);

OpenTelemetryCompatibility

OpenTelemetry compatibility configuration

Properties

PropertyTypeRequiredDescription
sdkVersionstringoptionalOTel SDK version
exporterObjectExporter configuration
resourceObjectResource attributes
instrumentationObjectoptional
semanticConventionsVersionstringoptionalSemantic conventions version

OtelExporterType

OpenTelemetry exporter type

Allowed Values

  • otlp_http
  • otlp_grpc
  • jaeger
  • zipkin
  • console
  • datadog
  • honeycomb
  • lightstep
  • newrelic
  • custom

SamplingDecision

Sampling decision

Allowed Values

  • drop
  • record_only
  • record_and_sample

SamplingStrategyType

Sampling strategy type

Allowed Values

  • always_on
  • always_off
  • trace_id_ratio
  • rate_limiting
  • parent_based
  • probability
  • composite
  • custom

Span

OpenTelemetry span

Properties

PropertyTypeRequiredDescription
contextObjectTrace context
namestringSpan name
kindEnum<'internal' | 'server' | 'client' | 'producer' | 'consumer'>Span kind
startTimestringSpan start time
endTimestringoptionalSpan end time
durationnumberoptionalDuration in milliseconds
statusObjectoptional
attributesRecord<string, string | number | boolean | string[] | number[] | boolean[]>Span attributes
eventsObject[]
linksObject[]
resourceRecord<string, string | number | boolean | string[] | number[] | boolean[]>optionalResource attributes
instrumentationLibraryObjectoptional

SpanAttributeValue

Span attribute value

Union Options

This schema accepts one of the following structures:

Option 1

Type: string


Option 2

Type: number


Option 3

Type: boolean


Option 4

Type: string[]


Option 5

Type: number[]


Option 6

Type: boolean[]




SpanEvent

Span event

Properties

PropertyTypeRequiredDescription
namestringEvent name
timestampstringEvent timestamp
attributesRecord<string, string | number | boolean | string[] | number[] | boolean[]>optionalEvent attributes

SpanKind

Span kind

Allowed Values

  • internal
  • server
  • client
  • producer
  • consumer

Span link

Properties

PropertyTypeRequiredDescription
contextObjectLinked trace context
attributesRecord<string, string | number | boolean | string[] | number[] | boolean[]>optionalLink attributes

SpanStatus

Span status

Allowed Values

  • unset
  • ok
  • error

TraceContext

Trace context (W3C Trace Context)

Properties

PropertyTypeRequiredDescription
traceIdstringTrace ID (32 hex chars)
spanIdstringSpan ID (16 hex chars)
traceFlagsintegerTrace flags bitmap
traceStateObjectoptionalTrace state
parentSpanIdstringoptionalParent span ID (16 hex chars)
sampledboolean
remoteboolean

TraceContextPropagation

Trace context propagation

Properties

PropertyTypeRequiredDescription
formatsEnum<'w3c' | 'b3' | 'b3_multi' | 'jaeger' | 'xray' | 'ottrace' | 'custom'>[]
extractboolean
injectboolean
headersObjectoptional
baggageObjectoptional


TracePropagationFormat

Trace propagation format

Allowed Values

  • w3c
  • b3
  • b3_multi
  • jaeger
  • xray
  • ottrace
  • custom

TraceSamplingConfig

Trace sampling configuration

Properties

PropertyTypeRequiredDescription
typeEnum<'always_on' | 'always_off' | 'trace_id_ratio' | 'rate_limiting' | 'parent_based' | 'probability' | 'composite' | 'custom'>Sampling strategy
rationumberoptionalSample ratio (0-1)
rateLimitnumberoptionalTraces per second
parentBasedObjectoptional
compositeObject[]optional
rulesObject[]
customSamplerIdstringoptionalCustom sampler identifier

TraceState

Trace state

Properties

PropertyTypeRequiredDescription
entriesRecord<string, string>Trace state entries

TracingConfig

Tracing configuration

Properties

PropertyTypeRequiredDescription
namestringConfiguration name (snake_case, max 64 chars)
labelstringDisplay label
enabledboolean
samplingObjectTrace sampling configuration
propagationObjectTrace context propagation
openTelemetryObjectoptionalOpenTelemetry compatibility configuration
spanLimitsObjectoptional
traceIdGeneratorEnum<'random' | 'uuid' | 'custom'>
customTraceIdGeneratorIdstringoptionalCustom generator identifier
performanceObjectoptional

On this page