...

Package go122

import "internal/trace/event/go122"
Overview
Index

Overview ▾

Constants

const (
    EvNone event.Type = iota // unused

    // Structural events.
    EvEventBatch // start of per-M batch of events [generation, M ID, timestamp, batch length]
    EvStacks     // start of a section of the stack table [...EvStack]
    EvStack      // stack table entry [ID, ...{PC, func string ID, file string ID, line #}]
    EvStrings    // start of a section of the string dictionary [...EvString]
    EvString     // string dictionary entry [ID, length, string]
    EvCPUSamples // start of a section of CPU samples [...EvCPUSample]
    EvCPUSample  // CPU profiling sample [timestamp, M ID, P ID, goroutine ID, stack ID]
    EvFrequency  // timestamp units per sec [freq]

    // Procs.
    EvProcsChange // current value of GOMAXPROCS [timestamp, GOMAXPROCS, stack ID]
    EvProcStart   // start of P [timestamp, P ID, P seq]
    EvProcStop    // stop of P [timestamp]
    EvProcSteal   // P was stolen [timestamp, P ID, P seq, M ID]
    EvProcStatus  // P status at the start of a generation [timestamp, P ID, status]

    // Goroutines.
    EvGoCreate            // goroutine creation [timestamp, new goroutine ID, new stack ID, stack ID]
    EvGoCreateSyscall     // goroutine appears in syscall (cgo callback) [timestamp, new goroutine ID]
    EvGoStart             // goroutine starts running [timestamp, goroutine ID, goroutine seq]
    EvGoDestroy           // goroutine ends [timestamp]
    EvGoDestroySyscall    // goroutine ends in syscall (cgo callback) [timestamp]
    EvGoStop              // goroutine yields its time, but is runnable [timestamp, reason, stack ID]
    EvGoBlock             // goroutine blocks [timestamp, reason, stack ID]
    EvGoUnblock           // goroutine is unblocked [timestamp, goroutine ID, goroutine seq, stack ID]
    EvGoSyscallBegin      // syscall enter [timestamp, P seq, stack ID]
    EvGoSyscallEnd        // syscall exit [timestamp]
    EvGoSyscallEndBlocked // syscall exit and it blocked at some point [timestamp]
    EvGoStatus            // goroutine status at the start of a generation [timestamp, goroutine ID, thread ID, status]

    // STW.
    EvSTWBegin // STW start [timestamp, kind]
    EvSTWEnd   // STW done [timestamp]

    // GC events.
    EvGCActive           // GC active [timestamp, seq]
    EvGCBegin            // GC start [timestamp, seq, stack ID]
    EvGCEnd              // GC done [timestamp, seq]
    EvGCSweepActive      // GC sweep active [timestamp, P ID]
    EvGCSweepBegin       // GC sweep start [timestamp, stack ID]
    EvGCSweepEnd         // GC sweep done [timestamp, swept bytes, reclaimed bytes]
    EvGCMarkAssistActive // GC mark assist active [timestamp, goroutine ID]
    EvGCMarkAssistBegin  // GC mark assist start [timestamp, stack ID]
    EvGCMarkAssistEnd    // GC mark assist done [timestamp]
    EvHeapAlloc          // gcController.heapLive change [timestamp, heap alloc in bytes]
    EvHeapGoal           // gcController.heapGoal() change [timestamp, heap goal in bytes]

    // Annotations.
    EvGoLabel         // apply string label to current running goroutine [timestamp, label string ID]
    EvUserTaskBegin   // trace.NewTask [timestamp, internal task ID, internal parent task ID, name string ID, stack ID]
    EvUserTaskEnd     // end of a task [timestamp, internal task ID, stack ID]
    EvUserRegionBegin // trace.{Start,With}Region [timestamp, internal task ID, name string ID, stack ID]
    EvUserRegionEnd   // trace.{End,With}Region [timestamp, internal task ID, name string ID, stack ID]
    EvUserLog         // trace.Log [timestamp, internal task ID, key string ID, value string ID, stack]

    // Coroutines. Added in Go 1.23.
    EvGoSwitch        // goroutine switch (coroswitch) [timestamp, goroutine ID, goroutine seq]
    EvGoSwitchDestroy // goroutine switch and destroy [timestamp, goroutine ID, goroutine seq]
    EvGoCreateBlocked // goroutine creation (starts blocked) [timestamp, new goroutine ID, new stack ID, stack ID]

    // GoStatus with stack. Added in Go 1.23.
    EvGoStatusStack // goroutine status at the start of a generation, with a stack [timestamp, goroutine ID, M ID, status, stack ID]

    // Batch event for an experimental batch with a custom format. Added in Go 1.23.
    EvExperimentalBatch // start of extra data [experiment ID, generation, M ID, timestamp, batch length, batch data...]
)

Experimental events.

const (

    // Experimental heap span events. Added in Go 1.23.
    EvSpan      event.Type // heap span exists [timestamp, id, npages, type/class]
    EvSpanAlloc            // heap span alloc [timestamp, id, npages, type/class]
    EvSpanFree             // heap span free [timestamp, id]

    // Experimental heap object events. Added in Go 1.23.
    EvHeapObject      // heap object exists [timestamp, id, type]
    EvHeapObjectAlloc // heap object alloc [timestamp, id, type]
    EvHeapObjectFree  // heap object free [timestamp, id]

    // Experimental goroutine stack events. Added in Go 1.23.
    EvGoroutineStack      // stack exists [timestamp, id, order]
    EvGoroutineStackAlloc // stack alloc [timestamp, id, order]
    EvGoroutineStackFree  // stack free [timestamp, id]
)
const (
    // Various format-specific constants.
    MaxBatchSize      = 64 << 10
    MaxFramesPerStack = 128
    MaxStringSize     = 1 << 10
)

Experiments.

const (
    // AllocFree is the alloc-free events experiment.
    AllocFree event.Experiment = 1 + iota
)

func EventString

func EventString(typ event.Type) string

EventString returns the name of a Go 1.22 event.

func Specs

func Specs() []event.Spec

type GoStatus

type GoStatus uint8
const (
    GoBad GoStatus = iota
    GoRunnable
    GoRunning
    GoSyscall
    GoWaiting
)

func (GoStatus) String

func (s GoStatus) String() string

type ProcStatus

type ProcStatus uint8
const (
    ProcBad ProcStatus = iota
    ProcRunning
    ProcIdle
    ProcSyscall
    ProcSyscallAbandoned
)

func (ProcStatus) String

func (s ProcStatus) String() string