pyroscope

package
v0.7.2 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Labels = pprof.Labels
View Source
var StandardLogger = &standardLoggerImpl{}

Functions

func TagWrapper

func TagWrapper(ctx context.Context, labels LabelSet, cb func(context.Context))

Types

type Config

type Config struct {
	ApplicationName        string // e.g backend.purchases
	Tags                   map[string]string
	ServerAddress          string // e.g http://pyroscope.services.internal:4040
	AuthToken              string // specify this token when using pyroscope cloud
	BasicAuthUser          string // http basic auth user
	BasicAuthPassword      string // http basic auth password
	TenantID               string // specify TenantId when using phlare multi-tenancy
	SampleRate             uint32 // todo this one is not used
	UploadRate             time.Duration
	Logger                 Logger
	ProfileTypes           []ProfileType
	DisableGCRuns          bool // this will disable automatic runtime.GC runs between getting the heap profiles
	DisableAutomaticResets bool // disable automatic profiler reset every 10 seconds. Reset manually by calling Flush method
	// Deprecated: the field is ignored and does nothing
	DisableCumulativeMerge bool
	HTTPHeaders            map[string]string
}

type LabelSet

type LabelSet = pprof.LabelSet

type Logger added in v0.2.0

type Logger interface {
	Infof(_ string, _ ...interface{})
	Debugf(_ string, _ ...interface{})
	Errorf(_ string, _ ...interface{})
}

Logger is an interface that library users can use It is based on logrus, but much smaller — That's because we don't want library users to have to implement all of the logrus's methods

type ProfileType added in v0.2.0

type ProfileType string
const (
	ProfileCPU           ProfileType = "cpu"
	ProfileInuseObjects  ProfileType = "inuse_objects"
	ProfileAllocObjects  ProfileType = "alloc_objects"
	ProfileInuseSpace    ProfileType = "inuse_space"
	ProfileAllocSpace    ProfileType = "alloc_space"
	ProfileGoroutines    ProfileType = "goroutines"
	ProfileMutexCount    ProfileType = "mutex_count"
	ProfileMutexDuration ProfileType = "mutex_duration"
	ProfileBlockCount    ProfileType = "block_count"
	ProfileBlockDuration ProfileType = "block_duration"
	DefaultSampleRate                = 100
)

type Profiler

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

func Start

func Start(cfg Config) (*Profiler, error)

Start starts continuously profiling go code

func (*Profiler) Flush added in v0.4.0

func (p *Profiler) Flush(wait bool)

Flush resets current profiling session. if wait is true, also waits for all profiles to be uploaded synchronously

func (*Profiler) Stop

func (p *Profiler) Stop() error

Stop stops continuous profiling session and uploads the remaining profiling data

type Session added in v0.3.0

type Session struct {
	DisableAutomaticResets bool
	// contains filtered or unexported fields
}

func NewSession added in v0.3.0

func NewSession(c SessionConfig) (*Session, error)

func (*Session) Start added in v0.3.0

func (ps *Session) Start() error

func (*Session) Stop added in v0.3.0

func (ps *Session) Stop()

type SessionConfig added in v0.3.0

type SessionConfig struct {
	Upstream               upstream.Upstream
	Logger                 Logger
	AppName                string
	Tags                   map[string]string
	ProfilingTypes         []ProfileType
	DisableGCRuns          bool
	DisableAutomaticResets bool
	// Deprecated: the field is ignored and does nothing
	DisableCumulativeMerge bool
	SampleRate             uint32
	UploadRate             time.Duration
}

Jump to

Keyboard shortcuts

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