Documentation

Overview

Package model describes the internal data model for Trace and Span

Index

Constants

View Source
const (
	// StringType indicates the value is a unicode string
	StringType = ValueType_STRING
	// BoolType indicates the value is a Boolean encoded as int64 number 0 or 1
	BoolType = ValueType_BOOL
	// Int64Type indicates the value is an int64 number
	Int64Type = ValueType_INT64
	// Float64Type indicates the value is a float64 number stored as int64
	Float64Type = ValueType_FLOAT64
	// BinaryType indicates the value is binary blob stored as a byte array
	BinaryType = ValueType_BINARY
)

These constants are kept mostly for backwards compatibility.

View Source
const (
	// SampledFlag is the bit set in Flags in order to define a span as a sampled span
	SampledFlag = Flags(1)
	// DebugFlag is the bit set in Flags in order to define a span as a debug span
	DebugFlag = Flags(2)
	// FirehoseFlag is the bit in Flags in order to define a span as a firehose span
	FirehoseFlag = Flags(8)
)
View Source
const (
	// ChildOf span reference type describes a reference to a parent span
	// that depends on the response from the current (child) span
	ChildOf = SpanRefType_CHILD_OF

	// FollowsFrom span reference type describes a reference to a "parent" span
	// that does not depend on the response from the current (child) span
	FollowsFrom = SpanRefType_FOLLOWS_FROM
)
View Source
const (
	// JaegerDependencyLinkSource describes a dependency diagram that was generated from Jaeger traces.
	JaegerDependencyLinkSource = "jaeger"
)

Variables

View Source
var (
	ErrInvalidLengthModel = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowModel   = fmt.Errorf("proto: integer overflow")
)
View Source
var SpanRefType_name = map[int32]string{
	0: "CHILD_OF",
	1: "FOLLOWS_FROM",
}
View Source
var SpanRefType_value = map[string]int32{
	"CHILD_OF":     0,
	"FOLLOWS_FROM": 1,
}
View Source
var ValueType_name = map[int32]string{
	0: "STRING",
	1: "BOOL",
	2: "INT64",
	3: "FLOAT64",
	4: "BINARY",
}
View Source
var ValueType_value = map[string]int32{
	"STRING":  0,
	"BOOL":    1,
	"INT64":   2,
	"FLOAT64": 3,
	"BINARY":  4,
}

Functions

func DurationAsMicroseconds

func DurationAsMicroseconds(d time.Duration) uint64

DurationAsMicroseconds converts time.Duration to microseconds, which is the format the Duration field is stored in the Span.

func EpochMicrosecondsAsTime

func EpochMicrosecondsAsTime(ts uint64) time.Time

EpochMicrosecondsAsTime converts microseconds since epoch to time.Time value.

func HashCode

func HashCode(o Hashable) (uint64, error)

HashCode calculates a FNV-1a hash code for a Hashable object.

func MicrosecondsAsDuration

func MicrosecondsAsDuration(v uint64) time.Duration

MicrosecondsAsDuration converts duration in microseconds to time.Duration value.

func SortSpan

func SortSpan(span *Span)

SortSpan deep sorts a span: this sorts its tags, logs by timestamp, tags in logs, and tags in process.

func SortTrace

func SortTrace(trace *Trace)

SortTrace deep sorts a trace's spans by SpanID.

func SortTraceIDs

func SortTraceIDs(traceIDs []*TraceID)

SortTraceIDs sorts a list of TraceIDs

func SortTraces

func SortTraces(traces []*Trace)

SortTraces deep sorts a list of traces by TraceID.

func TimeAsEpochMicroseconds

func TimeAsEpochMicroseconds(t time.Time) uint64

TimeAsEpochMicroseconds converts time.Time to microseconds since epoch, which is the format the StartTime field is stored in the Span.

Types

type Batch

type Batch struct {
	Spans                []*Span  `protobuf:"bytes,1,rep,name=spans,proto3" json:"spans,omitempty"`
	Process              *Process `protobuf:"bytes,2,opt,name=process,proto3" json:"process,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Note that both Span and Batch may contain a Process. This is different from the Thrift model which was only used for transport, because Proto model is also used by the backend as the domain model, where once a batch is received it is split into individual spans which are all processed independently, and therefore they all need a Process. As far as on-the-wire semantics, both Batch and Spans in the same message may contain their own instances of Process, with span.Process taking priority over batch.Process.

func (*Batch) Descriptor

func (*Batch) Descriptor() ([]byte, []int)

func (*Batch) GetProcess

func (m *Batch) GetProcess() *Process

func (*Batch) GetSpans

func (m *Batch) GetSpans() []*Span

func (*Batch) Marshal

func (m *Batch) Marshal() (dAtA []byte, err error)

func (*Batch) MarshalTo

func (m *Batch) MarshalTo(dAtA []byte) (int, error)

func (*Batch) ProtoMessage

func (*Batch) ProtoMessage()

func (*Batch) Reset

func (m *Batch) Reset()

func (*Batch) Size

func (m *Batch) Size() (n int)

func (*Batch) String

func (m *Batch) String() string

func (*Batch) Unmarshal

func (m *Batch) Unmarshal(dAtA []byte) error

func (*Batch) XXX_DiscardUnknown

func (m *Batch) XXX_DiscardUnknown()

func (*Batch) XXX_Marshal

func (m *Batch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Batch) XXX_Merge

func (m *Batch) XXX_Merge(src proto.Message)

func (*Batch) XXX_Size

func (m *Batch) XXX_Size() int

func (*Batch) XXX_Unmarshal

func (m *Batch) XXX_Unmarshal(b []byte) error
type DependencyLink struct {
	Parent               string   `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	Child                string   `protobuf:"bytes,2,opt,name=child,proto3" json:"child,omitempty"`
	CallCount            uint64   `protobuf:"varint,3,opt,name=call_count,json=callCount,proto3" json:"call_count,omitempty"`
	Source               string   `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (DependencyLink) ApplyDefaults

func (d DependencyLink) ApplyDefaults() DependencyLink

ApplyDefaults applies defaults to the DependencyLink.

func (*DependencyLink) Descriptor

func (*DependencyLink) Descriptor() ([]byte, []int)

func (*DependencyLink) GetCallCount

func (m *DependencyLink) GetCallCount() uint64

func (*DependencyLink) GetChild

func (m *DependencyLink) GetChild() string

func (*DependencyLink) GetParent

func (m *DependencyLink) GetParent() string

func (*DependencyLink) GetSource

func (m *DependencyLink) GetSource() string

func (*DependencyLink) Marshal

func (m *DependencyLink) Marshal() (dAtA []byte, err error)

func (*DependencyLink) MarshalTo

func (m *DependencyLink) MarshalTo(dAtA []byte) (int, error)

func (*DependencyLink) ProtoMessage

func (*DependencyLink) ProtoMessage()

func (*DependencyLink) Reset

func (m *DependencyLink) Reset()

func (*DependencyLink) Size

func (m *DependencyLink) Size() (n int)

func (*DependencyLink) String

func (m *DependencyLink) String() string

func (*DependencyLink) Unmarshal

func (m *DependencyLink) Unmarshal(dAtA []byte) error

func (*DependencyLink) XXX_DiscardUnknown

func (m *DependencyLink) XXX_DiscardUnknown()

func (*DependencyLink) XXX_Marshal

func (m *DependencyLink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DependencyLink) XXX_Merge

func (m *DependencyLink) XXX_Merge(src proto.Message)

func (*DependencyLink) XXX_Size

func (m *DependencyLink) XXX_Size() int

func (*DependencyLink) XXX_Unmarshal

func (m *DependencyLink) XXX_Unmarshal(b []byte) error

type Flags

type Flags uint32

Flags is a bit map of flags for a span

func (Flags) IsDebug

func (f Flags) IsDebug() bool

IsDebug returns true if the Flags denote debugging Debugging can be useful in testing tracing availability or correctness

func (Flags) IsFirehoseEnabled

func (f Flags) IsFirehoseEnabled() bool

IsFirehoseEnabled returns true if firehose is enabled Firehose is used to decide whether to index a span or not

func (Flags) IsSampled

func (f Flags) IsSampled() bool

IsSampled returns true if the Flags denote sampling

func (*Flags) SetDebug

func (f *Flags) SetDebug()

SetDebug set the Flags as sampled

func (*Flags) SetFirehose

func (f *Flags) SetFirehose()

SetFirehose set the Flags as firehose enabled

func (*Flags) SetSampled

func (f *Flags) SetSampled()

SetSampled sets the Flags as sampled

type Hashable

type Hashable interface {
	Hash(w io.Writer) error
}

Hashable interface is for type that can participate in a hash computation by writing their data into io.Writer, which is usually an instance of hash.Hash.

type KeyValue

type KeyValue struct {
	Key                  string    `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	VType                ValueType `protobuf:"varint,2,opt,name=v_type,json=vType,proto3,enum=jaeger.api_v2.ValueType" json:"v_type,omitempty"`
	VStr                 string    `protobuf:"bytes,3,opt,name=v_str,json=vStr,proto3" json:"v_str,omitempty"`
	VBool                bool      `protobuf:"varint,4,opt,name=v_bool,json=vBool,proto3" json:"v_bool,omitempty"`
	VInt64               int64     `protobuf:"varint,5,opt,name=v_int64,json=vInt64,proto3" json:"v_int64,omitempty"`
	VFloat64             float64   `protobuf:"fixed64,6,opt,name=v_float64,json=vFloat64,proto3" json:"v_float64,omitempty"`
	VBinary              []byte    `protobuf:"bytes,7,opt,name=v_binary,json=vBinary,proto3" json:"v_binary,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func Binary

func Binary(key string, value []byte) KeyValue

Binary creates a Binary-typed KeyValue

func Bool

func Bool(key string, value bool) KeyValue

Bool creates a Bool-typed KeyValue

func Float64

func Float64(key string, value float64) KeyValue

Float64 creates a Float64-typed KeyValue

func Int64

func Int64(key string, value int64) KeyValue

Int64 creates a Int64-typed KeyValue

func String

func String(key string, value string) KeyValue

String creates a String-typed KeyValue

func (*KeyValue) AsString

func (kv *KeyValue) AsString() string

AsString returns a string representation of the value.

func (*KeyValue) AsStringLossy

func (kv *KeyValue) AsStringLossy() string

AsStringLossy returns a potentially lossy string representation of the value.

func (*KeyValue) Binary

func (kv *KeyValue) Binary() []byte

Binary returns the blob ([]byte) value stored in this KeyValue or nil if it stores a different type. The caller must check VType before using this method.

func (*KeyValue) Bool

func (kv *KeyValue) Bool() bool

Bool returns the Boolean value stored in this KeyValue or false if it stores a different type. The caller must check VType before using this method.

func (*KeyValue) Compare

func (this *KeyValue) Compare(that interface{}) int

func (*KeyValue) Descriptor

func (*KeyValue) Descriptor() ([]byte, []int)

func (*KeyValue) Equal

func (this *KeyValue) Equal(that interface{}) bool

func (*KeyValue) Float64

func (kv *KeyValue) Float64() float64

Float64 returns the Float64 value stored in this KeyValue or 0 if it stores a different type. The caller must check VType before using this method.

func (*KeyValue) GetKey

func (m *KeyValue) GetKey() string

func (*KeyValue) GetVBinary

func (m *KeyValue) GetVBinary() []byte

func (*KeyValue) GetVBool

func (m *KeyValue) GetVBool() bool

func (*KeyValue) GetVFloat64

func (m *KeyValue) GetVFloat64() float64

func (*KeyValue) GetVInt64

func (m *KeyValue) GetVInt64() int64

func (*KeyValue) GetVStr

func (m *KeyValue) GetVStr() string

func (*KeyValue) GetVType

func (m *KeyValue) GetVType() ValueType

func (KeyValue) Hash

func (kv KeyValue) Hash(w io.Writer) error

Hash implements Hash from Hashable.

func (*KeyValue) Int64

func (kv *KeyValue) Int64() int64

Int64 returns the Int64 value stored in this KeyValue or 0 if it stores a different type. The caller must check VType before using this method.

func (*KeyValue) IsLess

func (kv *KeyValue) IsLess(two *KeyValue) bool

IsLess compares KeyValue object with another KeyValue. The order is based first on the keys, then on type, and finally on the value.

func (*KeyValue) Marshal

func (m *KeyValue) Marshal() (dAtA []byte, err error)

func (*KeyValue) MarshalTo

func (m *KeyValue) MarshalTo(dAtA []byte) (int, error)

func (*KeyValue) ProtoMessage

func (*KeyValue) ProtoMessage()

func (*KeyValue) Reset

func (m *KeyValue) Reset()

func (*KeyValue) Size

func (m *KeyValue) Size() (n int)

func (*KeyValue) String

func (m *KeyValue) String() string

func (*KeyValue) Unmarshal

func (m *KeyValue) Unmarshal(dAtA []byte) error

func (*KeyValue) Value

func (kv *KeyValue) Value() interface{}

Value returns typed values stored in KeyValue as interface{}.

func (*KeyValue) XXX_DiscardUnknown

func (m *KeyValue) XXX_DiscardUnknown()

func (*KeyValue) XXX_Marshal

func (m *KeyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*KeyValue) XXX_Merge

func (m *KeyValue) XXX_Merge(src proto.Message)

func (*KeyValue) XXX_Size

func (m *KeyValue) XXX_Size() int

func (*KeyValue) XXX_Unmarshal

func (m *KeyValue) XXX_Unmarshal(b []byte) error

type KeyValues

type KeyValues []KeyValue

KeyValues is a type alias that exposes convenience functions like Sort, FindByKey.

func (KeyValues) Equal

func (kvs KeyValues) Equal(other KeyValues) bool

Equal compares KeyValues with another list. Both lists must be already sorted.

func (KeyValues) FindByKey

func (kvs KeyValues) FindByKey(key string) (KeyValue, bool)

FindByKey scans the list of key-values searching for the first one with the given key. Returns found tag and a boolean flag indicating if the search was successful.

func (KeyValues) Hash

func (kvs KeyValues) Hash(w io.Writer) error

Hash implements Hash from Hashable.

func (KeyValues) Len

func (kvs KeyValues) Len() int

func (KeyValues) Less

func (kvs KeyValues) Less(i, j int) bool

func (KeyValues) Sort

func (kvs KeyValues) Sort()

Sort does in-place sorting of KeyValues, then by value type, then by value.

func (KeyValues) Swap

func (kvs KeyValues) Swap(i, j int)

type Log

type Log struct {
	Timestamp            time.Time  `protobuf:"bytes,1,opt,name=timestamp,proto3,stdtime" json:"timestamp"`
	Fields               []KeyValue `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (*Log) Descriptor

func (*Log) Descriptor() ([]byte, []int)

func (*Log) GetFields

func (m *Log) GetFields() []KeyValue

func (*Log) GetTimestamp

func (m *Log) GetTimestamp() time.Time

func (*Log) Marshal

func (m *Log) Marshal() (dAtA []byte, err error)

func (*Log) MarshalTo

func (m *Log) MarshalTo(dAtA []byte) (int, error)

func (*Log) ProtoMessage

func (*Log) ProtoMessage()

func (*Log) Reset

func (m *Log) Reset()

func (*Log) Size

func (m *Log) Size() (n int)

func (*Log) String

func (m *Log) String() string

func (*Log) Unmarshal

func (m *Log) Unmarshal(dAtA []byte) error

func (*Log) XXX_DiscardUnknown

func (m *Log) XXX_DiscardUnknown()

func (*Log) XXX_Marshal

func (m *Log) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Log) XXX_Merge

func (m *Log) XXX_Merge(src proto.Message)

func (*Log) XXX_Size

func (m *Log) XXX_Size() int

func (*Log) XXX_Unmarshal

func (m *Log) XXX_Unmarshal(b []byte) error

type Process

type Process struct {
	ServiceName          string     `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
	Tags                 []KeyValue `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func NewProcess

func NewProcess(serviceName string, tags []KeyValue) *Process

NewProcess creates a new Process for given serviceName and tags. The tags are sorted in place and kept in the same array/slice, in order to store the Process in a canonical form that is relied upon by the Equal and Hash functions.

func (*Process) Descriptor

func (*Process) Descriptor() ([]byte, []int)

func (*Process) Equal

func (p *Process) Equal(other *Process) bool

Equal compares Process object with another Process.

func (*Process) GetServiceName

func (m *Process) GetServiceName() string

func (*Process) GetTags

func (m *Process) GetTags() []KeyValue

func (*Process) Hash

func (p *Process) Hash(w io.Writer) (err error)

Hash implements Hash from Hashable.

func (*Process) Marshal

func (m *Process) Marshal() (dAtA []byte, err error)

func (*Process) MarshalTo

func (m *Process) MarshalTo(dAtA []byte) (int, error)

func (*Process) ProtoMessage

func (*Process) ProtoMessage()

func (*Process) Reset

func (m *Process) Reset()

func (*Process) Size

func (m *Process) Size() (n int)

func (*Process) String

func (m *Process) String() string

func (*Process) Unmarshal

func (m *Process) Unmarshal(dAtA []byte) error

func (*Process) XXX_DiscardUnknown

func (m *Process) XXX_DiscardUnknown()

func (*Process) XXX_Marshal

func (m *Process) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Process) XXX_Merge

func (m *Process) XXX_Merge(src proto.Message)

func (*Process) XXX_Size

func (m *Process) XXX_Size() int

func (*Process) XXX_Unmarshal

func (m *Process) XXX_Unmarshal(b []byte) error

type Span

type Span struct {
	TraceID              TraceID       `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3,customtype=TraceID" json:"trace_id"`
	SpanID               SpanID        `protobuf:"bytes,2,opt,name=span_id,json=spanId,proto3,customtype=SpanID" json:"span_id"`
	OperationName        string        `protobuf:"bytes,3,opt,name=operation_name,json=operationName,proto3" json:"operation_name,omitempty"`
	References           []SpanRef     `protobuf:"bytes,4,rep,name=references,proto3" json:"references"`
	Flags                Flags         `protobuf:"varint,5,opt,name=flags,proto3,customtype=Flags" json:"flags"`
	StartTime            time.Time     `protobuf:"bytes,6,opt,name=start_time,json=startTime,proto3,stdtime" json:"start_time"`
	Duration             time.Duration `protobuf:"bytes,7,opt,name=duration,proto3,stdduration" json:"duration"`
	Tags                 []KeyValue    `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags"`
	Logs                 []Log         `protobuf:"bytes,9,rep,name=logs,proto3" json:"logs"`
	Process              *Process      `protobuf:"bytes,10,opt,name=process,proto3" json:"process,omitempty"`
	ProcessID            string        `protobuf:"bytes,11,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"`
	Warnings             []string      `protobuf:"bytes,12,rep,name=warnings,proto3" json:"warnings,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (*Span) Descriptor

func (*Span) Descriptor() ([]byte, []int)

func (*Span) GetDuration

func (m *Span) GetDuration() time.Duration

func (*Span) GetLogs

func (m *Span) GetLogs() []Log

func (*Span) GetOperationName

func (m *Span) GetOperationName() string

func (*Span) GetProcess

func (m *Span) GetProcess() *Process

func (*Span) GetProcessID

func (m *Span) GetProcessID() string

func (*Span) GetReferences

func (m *Span) GetReferences() []SpanRef

func (*Span) GetSamplerType

func (s *Span) GetSamplerType() string

GetSamplerType returns the sampler type for span

func (*Span) GetSpanKind

func (s *Span) GetSpanKind() (spanKind string, found bool)

GetSpanKind returns value of `span.kind` tag and whether the tag can be found

func (*Span) GetStartTime

func (m *Span) GetStartTime() time.Time

func (*Span) GetTags

func (m *Span) GetTags() []KeyValue

func (*Span) GetWarnings

func (m *Span) GetWarnings() []string

func (*Span) HasSpanKind

func (s *Span) HasSpanKind(kind ext.SpanKindEnum) bool

HasSpanKind returns true if the span has a `span.kind` tag set to `kind`.

func (*Span) Hash

func (s *Span) Hash(w io.Writer) (err error)

Hash implements Hash from Hashable.

func (*Span) IsRPCClient

func (s *Span) IsRPCClient() bool

IsRPCClient returns true if the span represents a client side of an RPC, as indicated by the `span.kind` tag set to `client`.

func (*Span) IsRPCServer

func (s *Span) IsRPCServer() bool

IsRPCServer returns true if the span represents a server side of an RPC, as indicated by the `span.kind` tag set to `server`.

func (*Span) Marshal

func (m *Span) Marshal() (dAtA []byte, err error)

func (*Span) MarshalTo

func (m *Span) MarshalTo(dAtA []byte) (int, error)

func (*Span) NormalizeTimestamps

func (s *Span) NormalizeTimestamps()

NormalizeTimestamps changes all timestamps in this span to UTC.

func (*Span) ParentSpanID

func (s *Span) ParentSpanID() SpanID

ParentSpanID returns ID of a parent span if it exists. It searches for the first child-of reference pointing to the same trace ID.

func (*Span) ProtoMessage

func (*Span) ProtoMessage()

func (*Span) ReplaceParentID

func (s *Span) ReplaceParentID(newParentID SpanID)

ReplaceParentID replaces span ID in the parent span reference. See also ParentSpanID.

func (*Span) Reset

func (m *Span) Reset()

func (*Span) Size

func (m *Span) Size() (n int)

func (*Span) String

func (m *Span) String() string

func (*Span) Unmarshal

func (m *Span) Unmarshal(dAtA []byte) error

func (*Span) XXX_DiscardUnknown

func (m *Span) XXX_DiscardUnknown()

func (*Span) XXX_Marshal

func (m *Span) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Span) XXX_Merge

func (m *Span) XXX_Merge(src proto.Message)

func (*Span) XXX_Size

func (m *Span) XXX_Size() int

func (*Span) XXX_Unmarshal

func (m *Span) XXX_Unmarshal(b []byte) error

type SpanID

type SpanID uint64

SpanID is a random 64bit identifier for a span

func NewSpanID

func NewSpanID(v uint64) SpanID

NewSpanID creates a new SpanID from a 64bit unsigned int.

func SpanIDFromBytes

func SpanIDFromBytes(data []byte) (SpanID, error)

SpanIDFromBytes creates a SpandID from list of bytes

func SpanIDFromString

func SpanIDFromString(s string) (SpanID, error)

SpanIDFromString creates a SpanID from a hexadecimal string

func (SpanID) MarshalJSON

func (s SpanID) MarshalJSON() ([]byte, error)

MarshalJSON converts span id into a base64 string enclosed in quotes. Used by protobuf JSON serialization. Example: {1} => "AAAAAAAAAAE=".

func (SpanID) MarshalText

func (s SpanID) MarshalText() ([]byte, error)

MarshalText is called by encoding/json, which we do not want people to use.

func (*SpanID) MarshalTo

func (s *SpanID) MarshalTo(data []byte) (n int, err error)

MarshalTo converts span ID into a binary representation. Called by protobuf serialization.

func (*SpanID) Size

func (s *SpanID) Size() int

Size returns the size of this datum in protobuf. It is always 8 bytes.

func (SpanID) String

func (s SpanID) String() string

func (*SpanID) Unmarshal

func (s *SpanID) Unmarshal(data []byte) error

Unmarshal inflates span ID from a binary representation. Called by protobuf serialization.

func (*SpanID) UnmarshalJSON

func (s *SpanID) UnmarshalJSON(data []byte) error

UnmarshalJSON inflates span id from base64 string, possibly enclosed in quotes. User by protobuf JSON serialization.

There appears to be a bug in gogoproto, as this function is only called for numeric values. https://github.com/gogo/protobuf/issues/411#issuecomment-393856837

func (*SpanID) UnmarshalJSONPB

func (s *SpanID) UnmarshalJSONPB(_ *jsonpb.Unmarshaler, b []byte) error

UnmarshalJSONPB inflates span id from base64 string, possibly enclosed in quotes. User by protobuf JSON serialization.

TODO: can be removed once this ticket is fixed:

https://github.com/gogo/protobuf/issues/411#issuecomment-393856837

func (*SpanID) UnmarshalText

func (s *SpanID) UnmarshalText(text []byte) error

UnmarshalText is called by encoding/json, which we do not want people to use.

type SpanRef

type SpanRef struct {
	TraceID              TraceID     `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3,customtype=TraceID" json:"trace_id"`
	SpanID               SpanID      `protobuf:"bytes,2,opt,name=span_id,json=spanId,proto3,customtype=SpanID" json:"span_id"`
	RefType              SpanRefType `protobuf:"varint,3,opt,name=ref_type,json=refType,proto3,enum=jaeger.api_v2.SpanRefType" json:"ref_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func MaybeAddParentSpanID

func MaybeAddParentSpanID(traceID TraceID, parentSpanID SpanID, refs []SpanRef) []SpanRef

MaybeAddParentSpanID adds non-zero parentSpanID to refs as a child-of reference. We no longer store ParentSpanID in the domain model, but the data in the database or other formats might still have these IDs without representing them in the References, so this converts parent IDs to canonical reference format.

func NewChildOfRef

func NewChildOfRef(traceID TraceID, spanID SpanID) SpanRef

NewChildOfRef creates a new child-of span reference.

func NewFollowsFromRef

func NewFollowsFromRef(traceID TraceID, spanID SpanID) SpanRef

NewFollowsFromRef creates a new follows-from span reference.

func (*SpanRef) Descriptor

func (*SpanRef) Descriptor() ([]byte, []int)

func (*SpanRef) GetRefType

func (m *SpanRef) GetRefType() SpanRefType

func (*SpanRef) Marshal

func (m *SpanRef) Marshal() (dAtA []byte, err error)

func (*SpanRef) MarshalTo

func (m *SpanRef) MarshalTo(dAtA []byte) (int, error)

func (*SpanRef) ProtoMessage

func (*SpanRef) ProtoMessage()

func (*SpanRef) Reset

func (m *SpanRef) Reset()

func (*SpanRef) Size

func (m *SpanRef) Size() (n int)

func (*SpanRef) String

func (m *SpanRef) String() string

func (*SpanRef) Unmarshal

func (m *SpanRef) Unmarshal(dAtA []byte) error

func (*SpanRef) XXX_DiscardUnknown

func (m *SpanRef) XXX_DiscardUnknown()

func (*SpanRef) XXX_Marshal

func (m *SpanRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SpanRef) XXX_Merge

func (m *SpanRef) XXX_Merge(src proto.Message)

func (*SpanRef) XXX_Size

func (m *SpanRef) XXX_Size() int

func (*SpanRef) XXX_Unmarshal

func (m *SpanRef) XXX_Unmarshal(b []byte) error

type SpanRefType

type SpanRefType int32
const (
	SpanRefType_CHILD_OF     SpanRefType = 0
	SpanRefType_FOLLOWS_FROM SpanRefType = 1
)

func (SpanRefType) EnumDescriptor

func (SpanRefType) EnumDescriptor() ([]byte, []int)

func (SpanRefType) String

func (x SpanRefType) String() string

type Trace

type Trace struct {
	Spans                []*Span                `protobuf:"bytes,1,rep,name=spans,proto3" json:"spans,omitempty"`
	ProcessMap           []Trace_ProcessMapping `protobuf:"bytes,2,rep,name=process_map,json=processMap,proto3" json:"process_map"`
	Warnings             []string               `protobuf:"bytes,3,rep,name=warnings,proto3" json:"warnings,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (*Trace) Descriptor

func (*Trace) Descriptor() ([]byte, []int)

func (*Trace) FindSpanByID

func (t *Trace) FindSpanByID(id SpanID) *Span

FindSpanByID looks for a span with given span ID and returns the first one it finds (search order is unspecified), or nil if no spans have that ID.

func (*Trace) GetProcessMap

func (m *Trace) GetProcessMap() []Trace_ProcessMapping

func (*Trace) GetSpans

func (m *Trace) GetSpans() []*Span

func (*Trace) GetWarnings

func (m *Trace) GetWarnings() []string

func (*Trace) Marshal

func (m *Trace) Marshal() (dAtA []byte, err error)

func (*Trace) MarshalTo

func (m *Trace) MarshalTo(dAtA []byte) (int, error)

func (*Trace) NormalizeTimestamps

func (t *Trace) NormalizeTimestamps()

NormalizeTimestamps changes all timestamps in this trace to UTC.

func (*Trace) ProtoMessage

func (*Trace) ProtoMessage()

func (*Trace) Reset

func (m *Trace) Reset()

func (*Trace) Size

func (m *Trace) Size() (n int)

func (*Trace) String

func (m *Trace) String() string

func (*Trace) Unmarshal

func (m *Trace) Unmarshal(dAtA []byte) error

func (*Trace) XXX_DiscardUnknown

func (m *Trace) XXX_DiscardUnknown()

func (*Trace) XXX_Marshal

func (m *Trace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Trace) XXX_Merge

func (m *Trace) XXX_Merge(src proto.Message)

func (*Trace) XXX_Size

func (m *Trace) XXX_Size() int

func (*Trace) XXX_Unmarshal

func (m *Trace) XXX_Unmarshal(b []byte) error

type TraceID

type TraceID struct {
	Low  uint64 `json:"lo"`
	High uint64 `json:"hi"`
}

TraceID is a random 128bit identifier for a trace

func NewTraceID

func NewTraceID(high, low uint64) TraceID

NewTraceID creates a new TraceID from two 64bit unsigned ints.

func TraceIDFromBytes

func TraceIDFromBytes(data []byte) (TraceID, error)

TraceIDFromBytes creates a TraceID from list of bytes

func TraceIDFromString

func TraceIDFromString(s string) (TraceID, error)

TraceIDFromString creates a TraceID from a hexadecimal string

func (TraceID) MarshalJSON

func (t TraceID) MarshalJSON() ([]byte, error)

MarshalJSON converts trace id into a base64 string enclosed in quotes. Used by protobuf JSON serialization. Example: {high:2, low:1} => "AAAAAAAAAAIAAAAAAAAAAQ==".

func (TraceID) MarshalText

func (t TraceID) MarshalText() ([]byte, error)

MarshalText is called by encoding/json, which we do not want people to use.

func (*TraceID) MarshalTo

func (t *TraceID) MarshalTo(data []byte) (n int, err error)

MarshalTo converts trace ID into a binary representation. Called by protobuf serialization.

func (*TraceID) Size

func (t *TraceID) Size() int

Size returns the size of this datum in protobuf. It is always 16 bytes.

func (TraceID) String

func (t TraceID) String() string

func (*TraceID) Unmarshal

func (t *TraceID) Unmarshal(data []byte) error

Unmarshal inflates this trace ID from binary representation. Called by protobuf serialization.

func (*TraceID) UnmarshalJSON

func (t *TraceID) UnmarshalJSON(data []byte) error

UnmarshalJSON inflates trace id from base64 string, possibly enclosed in quotes. User by protobuf JSON serialization.

func (*TraceID) UnmarshalText

func (t *TraceID) UnmarshalText(text []byte) error

UnmarshalText is called by encoding/json, which we do not want people to use.

type Trace_ProcessMapping

type Trace_ProcessMapping struct {
	ProcessID            string   `protobuf:"bytes,1,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"`
	Process              Process  `protobuf:"bytes,2,opt,name=process,proto3" json:"process"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Trace_ProcessMapping) Descriptor

func (*Trace_ProcessMapping) Descriptor() ([]byte, []int)

func (*Trace_ProcessMapping) GetProcess

func (m *Trace_ProcessMapping) GetProcess() Process

func (*Trace_ProcessMapping) GetProcessID

func (m *Trace_ProcessMapping) GetProcessID() string

func (*Trace_ProcessMapping) Marshal

func (m *Trace_ProcessMapping) Marshal() (dAtA []byte, err error)

func (*Trace_ProcessMapping) MarshalTo

func (m *Trace_ProcessMapping) MarshalTo(dAtA []byte) (int, error)

func (*Trace_ProcessMapping) ProtoMessage

func (*Trace_ProcessMapping) ProtoMessage()

func (*Trace_ProcessMapping) Reset

func (m *Trace_ProcessMapping) Reset()

func (*Trace_ProcessMapping) Size

func (m *Trace_ProcessMapping) Size() (n int)

func (*Trace_ProcessMapping) String

func (m *Trace_ProcessMapping) String() string

func (*Trace_ProcessMapping) Unmarshal

func (m *Trace_ProcessMapping) Unmarshal(dAtA []byte) error

func (*Trace_ProcessMapping) XXX_DiscardUnknown

func (m *Trace_ProcessMapping) XXX_DiscardUnknown()

func (*Trace_ProcessMapping) XXX_Marshal

func (m *Trace_ProcessMapping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Trace_ProcessMapping) XXX_Merge

func (m *Trace_ProcessMapping) XXX_Merge(src proto.Message)

func (*Trace_ProcessMapping) XXX_Size

func (m *Trace_ProcessMapping) XXX_Size() int

func (*Trace_ProcessMapping) XXX_Unmarshal

func (m *Trace_ProcessMapping) XXX_Unmarshal(b []byte) error

type ValueType

type ValueType int32
const (
	ValueType_STRING  ValueType = 0
	ValueType_BOOL    ValueType = 1
	ValueType_INT64   ValueType = 2
	ValueType_FLOAT64 ValueType = 3
	ValueType_BINARY  ValueType = 4
)

func (ValueType) EnumDescriptor

func (ValueType) EnumDescriptor() ([]byte, []int)

func (ValueType) String

func (x ValueType) String() string

Directories

Path Synopsis
Package adjuster contains various adjusters for model.Trace.
Package adjuster contains various adjusters for model.Trace.
Package converter contains various utilities for converting model.Trace to/from other data modes, like Thrift, or UI JSON.
Package converter contains various utilities for converting model.Trace to/from other data modes, like Thrift, or UI JSON.
json
Package json allows converting model.Trace to external JSON data model.
Package json allows converting model.Trace to external JSON data model.
thrift
Package thrift allows converting model.Trace to/from various thrift models.
Package thrift allows converting model.Trace to/from various thrift models.
thrift/jaeger
Package jaeger allows converting model.Trace to/from jaeger.thrift model.
Package jaeger allows converting model.Trace to/from jaeger.thrift model.
thrift/zipkin
Package zipkin allows converting model.Trace to/from zipkin.thrift model.
Package zipkin allows converting model.Trace to/from zipkin.thrift model.
Package json defines the external JSON representation for Jaeger traces.
Package json defines the external JSON representation for Jaeger traces.