package traceviewer
import "internal/trace/traceviewer"
Index ¶
- Constants
- func BuildProfile(prof []ProfileRecord) *profile.Profile
- func MMUHandlerFunc(ranges []Range, f MutatorUtilFunc) http.HandlerFunc
- func MainHandler(views []View) http.Handler
- func SVGProfileHandlerFunc(f ProfileFunc) http.HandlerFunc
- func StaticHandler() http.Handler
- func TraceHandler() http.Handler
- func WalkStackFrames(allFrames map[string]format.Frame, id int, fn func(id int))
- type ArrowEvent
- type AsyncSliceEvent
- type Emitter
- func NewEmitter(c TraceConsumer, rangeStart, rangeEnd time.Duration) *Emitter
- func (e *Emitter) Arrow(a ArrowEvent)
- func (e *Emitter) AsyncSlice(s AsyncSliceEvent)
- func (e *Emitter) Err() error
- func (e *Emitter) Event(ev *format.Event)
- func (e *Emitter) Flush()
- func (e *Emitter) Focus(id uint64)
- func (e *Emitter) Gomaxprocs(v uint64)
- func (e *Emitter) GoroutineTransition(ts time.Duration, from, to GState)
- func (e *Emitter) HeapAlloc(ts time.Duration, v uint64)
- func (e *Emitter) HeapGoal(ts time.Duration, v uint64)
- func (e *Emitter) IncThreadStateCount(ts time.Duration, state ThreadState, delta int64)
- func (e *Emitter) Instant(i InstantEvent)
- func (e *Emitter) OptionalEvent(ev *format.Event)
- func (e *Emitter) Resource(id uint64, name string)
- func (e *Emitter) SetResourceFilter(filter func(uint64) bool)
- func (e *Emitter) SetResourceType(name string)
- func (e *Emitter) Slice(s SliceEvent)
- func (e *Emitter) Stack(stk []*trace.Frame) int
- func (e *Emitter) Task(id uint64, name string, sortIndex int)
- func (e *Emitter) TaskArrow(a ArrowEvent)
- func (e *Emitter) TaskSlice(s SliceEvent)
- type GState
- type InstantEvent
- type Mode
- type MutatorUtilFunc
- type ProfileFunc
- type ProfileRecord
- type Range
- type SliceEvent
- type ThreadState
- type TimeHistogram
- func (h *TimeHistogram) Add(d time.Duration)
- func (h *TimeHistogram) BucketMin(bucket int) time.Duration
- func (h *TimeHistogram) ToHTML(urlmaker func(min, max time.Duration) string) template.HTML
- type TraceConsumer
- func SplittingTraceConsumer(max int) (*splitter, TraceConsumer)
- func ViewerDataTraceConsumer(w io.Writer, startIdx, endIdx int64) TraceConsumer
- type View
- type ViewType
Constants ¶
const CommonStyle = "" /* 882 byte string literal not displayed */
Functions ¶
func BuildProfile ¶
func BuildProfile(prof []ProfileRecord) *profile.Profile
func MMUHandlerFunc ¶
func MMUHandlerFunc(ranges []Range, f MutatorUtilFunc) http.HandlerFunc
func MainHandler ¶
func SVGProfileHandlerFunc ¶
func SVGProfileHandlerFunc(f ProfileFunc) http.HandlerFunc
SVGProfileHandlerFunc serves pprof-like profile generated by prof as svg.
func StaticHandler ¶
func TraceHandler ¶
func WalkStackFrames ¶
WalkStackFrames calls fn for id and all of its parent frames from allFrames.
Types ¶
type ArrowEvent ¶
type ArrowEvent struct { Name string Start time.Duration End time.Duration FromResource uint64 FromStack int ToResource uint64 }
type AsyncSliceEvent ¶
type AsyncSliceEvent struct { SliceEvent Category string Scope string TaskColorIndex uint64 // Take on the same color as the task with this ID. }
type Emitter ¶
type Emitter struct {
// contains filtered or unexported fields
}
func NewEmitter ¶
func NewEmitter(c TraceConsumer, rangeStart, rangeEnd time.Duration) *Emitter
NewEmitter returns a new Emitter that writes to c. The rangeStart and rangeEnd args are used for splitting large traces.
func (*Emitter) Arrow ¶
func (e *Emitter) Arrow(a ArrowEvent)
func (*Emitter) AsyncSlice ¶
func (e *Emitter) AsyncSlice(s AsyncSliceEvent)
func (*Emitter) Err ¶
Err returns an error if the emitter is in an invalid state.
func (*Emitter) Event ¶
func (*Emitter) Flush ¶
func (e *Emitter) Flush()
func (*Emitter) Focus ¶
func (*Emitter) Gomaxprocs ¶
func (*Emitter) GoroutineTransition ¶
func (*Emitter) HeapAlloc ¶
func (*Emitter) HeapGoal ¶
func (*Emitter) IncThreadStateCount ¶
func (e *Emitter) IncThreadStateCount(ts time.Duration, state ThreadState, delta int64)
func (*Emitter) Instant ¶
func (e *Emitter) Instant(i InstantEvent)
func (*Emitter) OptionalEvent ¶
OptionalEvent emits ev if it's within the time range of the consumer, i.e. the selected trace split range.
func (*Emitter) Resource ¶
func (*Emitter) SetResourceFilter ¶
func (*Emitter) SetResourceType ¶
func (*Emitter) Slice ¶
func (e *Emitter) Slice(s SliceEvent)
func (*Emitter) Stack ¶
Stack emits the given frames and returns a unique id for the stack. No pointers to the given data are being retained beyond the call to Stack.
func (*Emitter) Task ¶
func (*Emitter) TaskArrow ¶
func (e *Emitter) TaskArrow(a ArrowEvent)
func (*Emitter) TaskSlice ¶
func (e *Emitter) TaskSlice(s SliceEvent)
type GState ¶
type GState int
type InstantEvent ¶
type InstantEvent struct { Ts time.Duration Name string Category string Resource uint64 Stack int Arg any }
type Mode ¶
type Mode int
const ( ModeGoroutineOriented Mode = 1 << iota ModeTaskOriented ModeThreadOriented // Mutually exclusive with ModeGoroutineOriented. )
type MutatorUtilFunc ¶
type MutatorUtilFunc func(trace.UtilFlags) ([][]trace.MutatorUtil, error)
type ProfileFunc ¶
type ProfileFunc func(r *http.Request) ([]ProfileRecord, error)
type ProfileRecord ¶
type Range ¶
func (Range) URL ¶
type SliceEvent ¶
type SliceEvent struct { Name string Ts time.Duration Dur time.Duration Resource uint64 Stack int EndStack int Arg any }
type ThreadState ¶
type ThreadState int
const ( ThreadStateInSyscall ThreadState = iota ThreadStateInSyscallRuntime ThreadStateRunning )
type TimeHistogram ¶
TimeHistogram is an high-dynamic-range histogram for durations.
func (*TimeHistogram) Add ¶
func (h *TimeHistogram) Add(d time.Duration)
Add adds a single sample to the histogram.
func (*TimeHistogram) BucketMin ¶
func (h *TimeHistogram) BucketMin(bucket int) time.Duration
BucketMin returns the minimum duration value for a provided bucket.
func (*TimeHistogram) ToHTML ¶
ToHTML renders the histogram as HTML.
type TraceConsumer ¶
type TraceConsumer struct { ConsumeTimeUnit func(unit string) ConsumeViewerEvent func(v *format.Event, required bool) ConsumeViewerFrame func(key string, f format.Frame) Flush func() }
func SplittingTraceConsumer ¶
func SplittingTraceConsumer(max int) (*splitter, TraceConsumer)
func ViewerDataTraceConsumer ¶
func ViewerDataTraceConsumer(w io.Writer, startIdx, endIdx int64) TraceConsumer
ViewerDataTraceConsumer returns a TraceConsumer that writes to w. The startIdx and endIdx are used for splitting large traces. They refer to indexes in the traceEvents output array, not the events in the trace input.
type View ¶
func (View) URL ¶
type ViewType ¶
type ViewType string
Source Files ¶
emitter.go histogram.go http.go mmu.go pprof.go
- Version
- v1.24.1 (latest)
- Published
- Feb 27, 2025
- Platform
- windows/amd64
- Imports
- 20 packages
- Last checked
- 29 seconds ago –
Tools for package owners.