dbmodel

package
v1.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2019 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DurationIndex represents the flag for indexing by duration.
	DurationIndex = iota

	// ServiceIndex represents the flag for indexing by service.
	ServiceIndex

	// OperationIndex represents the flag for indexing by service-operation.
	OperationIndex
)

Variables

View Source
var DefaultIndexFilter = func(span *Span, index int) bool {
	return true
}

DefaultIndexFilter is a filter that indexes everything.

View Source
var DefaultTagFilter = tagFilterImpl{}

DefaultTagFilter returns a filter that retrieves all tags from span.Tags, span.Logs, and span.Process.

View Source
var ErrTraceIDWrongLength = errors.New("TraceID is not a 128bit integer")

ErrTraceIDWrongLength is an error that occurs when cassandra has a TraceID that's not 128 bits long

Functions

func ToDomain

func ToDomain(dbSpan *Span) (*model.Span, error)

ToDomain converts a database Span to a domain model.Span

Types

type ChainedTagFilter added in v1.1.0

type ChainedTagFilter []TagFilter

ChainedTagFilter applies multiple tag filters in serial fashion.

func NewChainedTagFilter added in v1.1.0

func NewChainedTagFilter(filters ...TagFilter) ChainedTagFilter

NewChainedTagFilter creates a TagFilter from the variadic list of passed TagFilter.

func (ChainedTagFilter) FilterLogFields added in v1.1.0

func (tf ChainedTagFilter) FilterLogFields(span *model.Span, logFields model.KeyValues) model.KeyValues

FilterLogFields calls each FilterLogFields

func (ChainedTagFilter) FilterProcessTags added in v1.1.0

func (tf ChainedTagFilter) FilterProcessTags(span *model.Span, processTags model.KeyValues) model.KeyValues

FilterProcessTags calls each FilterProcessTags.

func (ChainedTagFilter) FilterTags added in v1.1.0

func (tf ChainedTagFilter) FilterTags(span *model.Span, tags model.KeyValues) model.KeyValues

FilterTags calls each FilterTags

type IndexFilter added in v1.6.0

type IndexFilter func(span *Span, index int) bool

IndexFilter filters out any spans that should not be indexed depending on the index specified.

type KeyValue

type KeyValue struct {
	Key          string  `cql:"key"`
	ValueType    string  `cql:"value_type"`
	ValueString  string  `cql:"value_string"`
	ValueBool    bool    `cql:"value_bool"`
	ValueInt64   int64   `cql:"value_long"`   // using more natural column name for Cassandra
	ValueFloat64 float64 `cql:"value_double"` // using more natural column name for Cassandra
	ValueBinary  []byte  `cql:"value_binary"`
}

KeyValue is the UDT representation of a Jaeger KeyValue.

func (*KeyValue) MarshalUDT

func (t *KeyValue) MarshalUDT(name string, info gocql.TypeInfo) ([]byte, error)

MarshalUDT handles marshalling a Tag.

func (*KeyValue) UnmarshalUDT

func (t *KeyValue) UnmarshalUDT(name string, info gocql.TypeInfo, data []byte) error

UnmarshalUDT handles unmarshalling a Tag.

type Log

type Log struct {
	Timestamp int64      `cql:"ts"`
	Fields    []KeyValue `cql:"fields"`
}

Log is the UDT representation of a Jaeger Log.

func (*Log) MarshalUDT

func (l *Log) MarshalUDT(name string, info gocql.TypeInfo) ([]byte, error)

MarshalUDT handles marshalling a Log.

func (*Log) UnmarshalUDT

func (l *Log) UnmarshalUDT(name string, info gocql.TypeInfo, data []byte) error

UnmarshalUDT handles unmarshalling a Log.

type LogFieldsFilter added in v0.9.0

type LogFieldsFilter struct {
	// contains filtered or unexported fields
}

LogFieldsFilter filters all span.Logs.Fields.

func NewLogFieldsFilter added in v0.9.0

func NewLogFieldsFilter() *LogFieldsFilter

NewLogFieldsFilter return a filter that filters all span.Logs.Fields.

func (*LogFieldsFilter) FilterLogFields added in v0.9.0

func (f *LogFieldsFilter) FilterLogFields(span *model.Span, logFields model.KeyValues) model.KeyValues

FilterLogFields implements TagFilter#FilterLogFields

func (LogFieldsFilter) FilterProcessTags added in v0.9.0

func (f LogFieldsFilter) FilterProcessTags(span *model.Span, processTags model.KeyValues) model.KeyValues

func (LogFieldsFilter) FilterTags added in v0.9.0

func (f LogFieldsFilter) FilterTags(span *model.Span, tags model.KeyValues) model.KeyValues

type Process

type Process struct {
	ServiceName string     `cql:"service_name"`
	Tags        []KeyValue `cql:"tags"`
}

Process is the UDT representation of a Jaeger Process.

func (*Process) MarshalUDT

func (p *Process) MarshalUDT(name string, info gocql.TypeInfo) ([]byte, error)

MarshalUDT handles marshalling a Process.

func (*Process) UnmarshalUDT

func (p *Process) UnmarshalUDT(name string, info gocql.TypeInfo, data []byte) error

UnmarshalUDT handles unmarshalling a Process.

type Span

type Span struct {
	TraceID       TraceID
	SpanID        int64
	ParentID      int64 // deprecated
	OperationName string
	Flags         int32
	StartTime     int64
	Duration      int64
	Tags          []KeyValue
	Logs          []Log
	Refs          []SpanRef
	Process       Process
	ServiceName   string
	SpanHash      int64
}

Span is the database representation of a span.

func FromDomain

func FromDomain(span *model.Span) *Span

FromDomain converts a domain model.Span to a database Span

type SpanRef

type SpanRef struct {
	RefType string  `cql:"ref_type"`
	TraceID TraceID `cql:"trace_id"`
	SpanID  int64   `cql:"span_id"`
}

SpanRef is the UDT representation of a Jaeger Span Reference.

func (*SpanRef) MarshalUDT

func (s *SpanRef) MarshalUDT(name string, info gocql.TypeInfo) ([]byte, error)

MarshalUDT handles marshalling a SpanRef.

func (*SpanRef) UnmarshalUDT

func (s *SpanRef) UnmarshalUDT(name string, info gocql.TypeInfo, data []byte) error

UnmarshalUDT handles unmarshalling a SpanRef.

type TagFilter added in v0.9.0

type TagFilter interface {
	FilterProcessTags(span *model.Span, processTags model.KeyValues) model.KeyValues
	FilterTags(span *model.Span, tags model.KeyValues) model.KeyValues
	FilterLogFields(span *model.Span, logFields model.KeyValues) model.KeyValues
}

TagFilter filters out any tags that should not be indexed.

type TagInsertion

type TagInsertion struct {
	ServiceName string
	TagKey      string
	TagValue    string
}

TagInsertion contains the items necessary to insert a tag for a given span

func GetAllUniqueTags

func GetAllUniqueTags(span *model.Span, tagFilter TagFilter) []TagInsertion

GetAllUniqueTags creates a list of all unique tags from a set of filtered tags.

func (TagInsertion) String

func (t TagInsertion) String() string

type TraceID

type TraceID [16]byte

TraceID is a serializable form of model.TraceID

func TraceIDFromDomain

func TraceIDFromDomain(traceID model.TraceID) TraceID

TraceIDFromDomain converts domain TraceID into serializable DB representation.

func (TraceID) MarshalCQL

func (t TraceID) MarshalCQL(info gocql.TypeInfo) ([]byte, error)

MarshalCQL handles marshaling DBTraceID (e.g. in SpanRef)

func (TraceID) String

func (dbTraceID TraceID) String() string

String returns hex string representation of the trace ID.

func (TraceID) ToDomain

func (dbTraceID TraceID) ToDomain() model.TraceID

ToDomain converts trace ID from db-serializable form to domain TradeID

func (*TraceID) UnmarshalCQL

func (t *TraceID) UnmarshalCQL(info gocql.TypeInfo, data []byte) error

UnmarshalCQL handles unmarshaling DBTraceID (e.g. in SpanRef)

type UniqueTraceIDs

type UniqueTraceIDs map[TraceID]struct{}

UniqueTraceIDs is a set of unique dbmodel TraceIDs, implemented via map.

func IntersectTraceIDs

func IntersectTraceIDs(uniqueTraceIdsList []UniqueTraceIDs) UniqueTraceIDs

IntersectTraceIDs takes a list of UniqueTraceIDs and intersects them.

func UniqueTraceIDsFromList

func UniqueTraceIDsFromList(traceIDs []TraceID) UniqueTraceIDs

UniqueTraceIDsFromList Takes a list of traceIDs and returns the unique set

func (UniqueTraceIDs) Add

func (u UniqueTraceIDs) Add(traceID TraceID)

Add adds a traceID to the existing map

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL