store

package
v0.74.0 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTooManyItems = errors.New("too many items")
)

Functions

This section is empty.

Types

type Callback

type Callback func(e *Edge)

type ConnectionType

type ConnectionType string
const (
	Unknown         ConnectionType = ""
	MessagingSystem ConnectionType = "messaging_system"
	Database        ConnectionType = "database"
	VirtualNode     ConnectionType = "virtual_node"
)

type Edge

type Edge struct {
	TraceID                            pcommon.TraceID
	ConnectionType                     ConnectionType
	ServerService, ClientService       string
	ServerLatencySec, ClientLatencySec float64

	// If either the client or the server spans have status code error,
	// the Edge will be considered as failed.
	Failed bool

	// Additional dimension to add to the metrics
	Dimensions map[string]string

	Peer map[string]string
	// contains filtered or unexported fields
}

Edge is an Edge between two nodes in the graph

type Key added in v0.65.0

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

func NewKey added in v0.65.0

func NewKey(tid pcommon.TraceID, sid pcommon.SpanID) Key

type Store

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

func NewStore

func NewStore(ttl time.Duration, maxItems int, onComplete, onExpire Callback) *Store

NewStore creates a Store to build service graphs. The store caches edges, each representing a request between two services. Once an edge is complete its metrics can be collected. Edges that have not found their pair are deleted after ttl time.

func (*Store) Expire

func (s *Store) Expire()

Expire evicts all expired items in the store.

func (*Store) UpsertEdge

func (s *Store) UpsertEdge(key Key, update Callback) (isNew bool, err error)

UpsertEdge fetches an Edge from the store and updates it using the given callback. If the Edge doesn't exist yet, it creates a new one with the default TTL. If the Edge is complete after applying the callback, it's completed and removed.

Jump to

Keyboard shortcuts

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