// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package wire type ExportTraceServiceRequest struct { Node *Node `json:"node,omitempty"` Spans []*Span `json:"spans,omitempty"` Resource *Resource `json:"resource,omitempty"` } type Span struct { TraceID []byte `json:"trace_id,omitempty"` SpanID []byte `json:"span_id,omitempty"` TraceState *TraceState `json:"tracestate,omitempty"` ParentSpanID []byte `json:"parent_span_id,omitempty"` Name *TruncatableString `json:"name,omitempty"` Kind SpanKind `json:"kind,omitempty"` StartTime Timestamp `json:"start_time,omitempty"` EndTime Timestamp `json:"end_time,omitempty"` Attributes *Attributes `json:"attributes,omitempty"` StackTrace *StackTrace `json:"stack_trace,omitempty"` TimeEvents *TimeEvents `json:"time_events,omitempty"` Links *Links `json:"links,omitempty"` Status *Status `json:"status,omitempty"` Resource *Resource `json:"resource,omitempty"` SameProcessAsParentSpan bool `json:"same_process_as_parent_span,omitempty"` ChildSpanCount bool `json:"child_span_count,omitempty"` } type TraceState struct { Entries []*TraceStateEntry `json:"entries,omitempty"` } type TraceStateEntry struct { Key string `json:"key,omitempty"` Value string `json:"value,omitempty"` } type SpanKind int32 const ( UnspecifiedSpanKind SpanKind = 0 ServerSpanKind SpanKind = 1 ClientSpanKind SpanKind = 2 ) type TimeEvents struct { TimeEvent []TimeEvent `json:"timeEvent,omitempty"` DroppedAnnotationsCount int32 `json:"dropped_annotations_count,omitempty"` DroppedMessageEventsCount int32 `json:"dropped_message_events_count,omitempty"` } type TimeEvent struct { Time Timestamp `json:"time,omitempty"` MessageEvent *MessageEvent `json:"messageEvent,omitempty"` Annotation *Annotation `json:"annotation,omitempty"` } type Annotation struct { Description *TruncatableString `json:"description,omitempty"` Attributes *Attributes `json:"attributes,omitempty"` } type MessageEvent struct { Type MessageEventType `json:"type,omitempty"` ID uint64 `json:"id,omitempty"` UncompressedSize uint64 `json:"uncompressed_size,omitempty"` CompressedSize uint64 `json:"compressed_size,omitempty"` } type MessageEventType int32 const ( UnspecifiedMessageEvent MessageEventType = iota SentMessageEvent ReceivedMessageEvent ) type TimeEventValue interface { labelTimeEventValue() } func (Annotation) labelTimeEventValue() {} func (MessageEvent) labelTimeEventValue() {} type Links struct { Link []*Link `json:"link,omitempty"` DroppedLinksCount int32 `json:"dropped_links_count,omitempty"` } type Link struct { TraceID []byte `json:"trace_id,omitempty"` SpanID []byte `json:"span_id,omitempty"` Type LinkType `json:"type,omitempty"` Attributes *Attributes `json:"attributes,omitempty"` TraceState *TraceState `json:"tracestate,omitempty"` } type LinkType int32 const ( UnspecifiedLinkType LinkType = 0 ChildLinkType LinkType = 1 ParentLinkType LinkType = 2 ) type Status struct { Code int32 `json:"code,omitempty"` Message string `json:"message,omitempty"` }