dbmodel

package
v0.0.0-...-2a2fe1c Latest Latest
Warning

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

Go to latest
Published: Aug 19, 2022 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

type ChainedTagFilter []TagFilter

ChainedTagFilter applies multiple tag filters in serial fashion.

func NewChainedTagFilter

func NewChainedTagFilter(filters ...TagFilter) ChainedTagFilter

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

func (ChainedTagFilter) FilterLogFields

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

FilterLogFields calls each FilterLogFields

func (ChainedTagFilter) FilterProcessTags

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

FilterProcessTags calls each FilterProcessTags.

func (ChainedTagFilter) FilterTags

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

FilterTags calls each FilterTags

type ExactMatchTagFilter

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

ExactMatchTagFilter filters out all tags in its tags slice

func NewBlacklistFilter

func NewBlacklistFilter(tags []string) ExactMatchTagFilter

NewBlacklistFilter is a convenience method for creating a blacklist ExactMatchTagFilter

func NewWhitelistFilter

func NewWhitelistFilter(tags []string) ExactMatchTagFilter

NewWhitelistFilter is a convenience method for creating a whitelist ExactMatchTagFilter

func (ExactMatchTagFilter) FilterLogFields

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

FilterLogFields implements TagFilter

func (ExactMatchTagFilter) FilterProcessTags

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

FilterProcessTags implements TagFilter

func (ExactMatchTagFilter) FilterTags

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

FilterTags implements TagFilter

type IndexFilter

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

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

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

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

TagFilterDropAll filters all fields of a given type.

func NewTagFilterDropAll

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

NewTagFilterDropAll return a filter that filters all of the specified type

func (*TagFilterDropAll) FilterLogFields

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

FilterLogFields implements TagFilter

func (*TagFilterDropAll) FilterProcessTags

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

FilterProcessTags implements TagFilter

func (*TagFilterDropAll) FilterTags

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