dbmodel

package
v1.23.0 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2021 License: Apache-2.0 Imports: 6 Imported by: 30

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 ExactMatchTagFilter added in v1.16.0

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

ExactMatchTagFilter filters out all tags in its tags slice

func NewBlacklistFilter added in v1.16.0

func NewBlacklistFilter(tags []string) ExactMatchTagFilter

NewBlacklistFilter is a convenience method for creating a blacklist ExactMatchTagFilter

func NewWhitelistFilter added in v1.16.0

func NewWhitelistFilter(tags []string) ExactMatchTagFilter

NewWhitelistFilter is a convenience method for creating a whitelist ExactMatchTagFilter

func (ExactMatchTagFilter) FilterLogFields added in v1.16.0

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

FilterLogFields implements TagFilter

func (ExactMatchTagFilter) FilterProcessTags added in v1.16.0

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

FilterProcessTags implements TagFilter

func (ExactMatchTagFilter) FilterTags added in v1.16.0

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

FilterTags implements TagFilter

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"` // microseconds since epoch
	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 Operation added in v1.16.0

type Operation struct {
	ServiceName   string
	SpanKind      string
	OperationName string
}

Operation defines schema for records saved in operation_names_v2 table

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 // microseconds since epoch
	Duration      int64 // microseconds
	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 TagFilterDropAll added in v1.16.0

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

TagFilterDropAll filters all fields of a given type.

func NewTagFilterDropAll added in v1.16.0

func NewTagFilterDropAll(dropTags bool, dropProcessTags bool, dropLogs bool) *TagFilterDropAll

NewTagFilterDropAll return a filter that filters all of the specified type

func (*TagFilterDropAll) FilterLogFields added in v1.16.0

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

FilterLogFields implements TagFilter

func (*TagFilterDropAll) FilterProcessTags added in v1.16.0

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

FilterProcessTags implements TagFilter

func (*TagFilterDropAll) FilterTags added in v1.16.0

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

FilterTags implements TagFilter

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