v.io: v.io/x/ref/runtime/internal/vtrace Index | Files

package vtrace

import "v.io/x/ref/runtime/internal/vtrace"

Package vtrace implements the Trace and Span interfaces in v.io/v23/vtrace. We also provide internal utilities for migrating trace information across RPC calls.


Package Files

logger.go store.go vtrace.go

func GetVTraceLevel Uses

func GetVTraceLevel(ctx *context.T) int

SetVTraceLevel returns the vtrace level This value is used to determine which log messages are sent as part of the vtrace output.

func Init Uses

func Init(ctx *context.T, opts flags.VtraceFlags) (*context.T, error)

Init initializes vtrace and attaches some state to the context. This should be called by the runtimes initialization function.

type Logger Uses

type Logger struct{}

func (*Logger) FlushLog Uses

func (v *Logger) FlushLog()

func (*Logger) InfoDepth Uses

func (*Logger) InfoDepth(ctx *context.T, depth int, args ...interface{})

func (*Logger) InfoStack Uses

func (*Logger) InfoStack(ctx *context.T, all bool)

func (*Logger) VDepth Uses

func (*Logger) VDepth(ctx *context.T, depth int, level int) bool

func (*Logger) VIDepth Uses

func (v *Logger) VIDepth(ctx *context.T, depth int, level int) context.Logger

type Store Uses

type Store struct {
    // contains filtered or unexported fields

Store implements a store for traces. The idea is to keep all the information we have about some subset of traces that pass through the server. For now we just implement an LRU cache, so the least recently started/finished/annotated traces expire after some maximum trace count is reached. TODO(mattr): LRU is the wrong policy in the long term, we should try to keep some diverse set of traces and allow users to specifically tell us to capture a specific trace. LRU will work OK for many testing scenarios and low volume applications.

func NewStore Uses

func NewStore(opts flags.VtraceFlags) (*Store, error)

NewStore creates a new store according to the passed in opts.

func (*Store) ForceCollect Uses

func (s *Store) ForceCollect(id uniqueid.Id, level int)

func (*Store) Merge Uses

func (s *Store) Merge(t vtrace.Response)

Merge merges a vtrace.Response into the current store.

func (*Store) TraceRecord Uses

func (s *Store) TraceRecord(id uniqueid.Id) *vtrace.TraceRecord

TraceRecord returns a TraceRecord for a given Id. Returns nil if the given id is not present.

func (*Store) TraceRecords Uses

func (s *Store) TraceRecords() []vtrace.TraceRecord

TraceRecords returns TraceRecords for all traces saved in the store.

Package vtrace imports 11 packages (graph) and is imported by 5 packages. Updated 2020-10-22. Refresh now. Tools for package owners.