Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrTooManyItems = errors.New("too many items")
)
Functions ¶
This section is empty.
Types ¶
type CompleteCallback ¶
type ConnectionType ¶
type ConnectionType string
const ( Unknown ConnectionType = "" MessagingSystem ConnectionType = "messaging_system" Database ConnectionType = "database" )
type Edge ¶
type Edge struct { Key Key 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 PeerService string // contains filtered or unexported fields }
Edge is an Edge between two nodes in the graph
type ExpireCallback ¶
type ExpireCallback func(e *Edge)
type Key ¶
type Key struct {
// contains filtered or unexported fields
}
func (*Key) SpanIDIsEmpty ¶
type RescheduleCallback ¶
type RescheduleCallback func(e *Edge)
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
func NewStore ¶
func NewStore(ttl time.Duration, maxItems int, onComplete CompleteCallback, onExpire ExpireCallback, onReschedule RescheduleCallback) *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) UpsertEdge ¶
func (s *Store) UpsertEdge(key Key, update UpdateCallback) (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.
type UpdateCallback ¶
type UpdateCallback func(e *Edge)
Click to show internal directories.
Click to hide internal directories.