Documentation ¶
Index ¶
- Constants
- Variables
- func LabelsByProfiles(lset labels.Labels, c *ProfilingConfig) []labels.Labels
- func NewDeltaAppender(appender pyroscope.Appender, labels labels.Labels) pyroscope.Appender
- type Arguments
- type Component
- type CustomProfilingTarget
- type DeltaProfiler
- type Manager
- func (m *Manager) ApplyConfig(cfg Arguments) error
- func (m *Manager) Run(tsets <-chan map[string][]*targetgroup.Group)
- func (m *Manager) Stop()
- func (m *Manager) TargetsActive() map[string][]*Target
- func (m *Manager) TargetsAll() map[string][]*Target
- func (m *Manager) TargetsDropped() map[string][]*Target
- type Options
- type ProfilingConfig
- type ProfilingTarget
- type Target
- func (t *Target) Clone() *Target
- func (t *Target) DiscoveredLabels() labels.Labels
- func (t *Target) Hash() uint64
- func (t *Target) Health() TargetHealth
- func (t *Target) Labels() labels.Labels
- func (t *Target) LastError() error
- func (t *Target) LastScrape() time.Time
- func (t *Target) LastScrapeDuration() time.Duration
- func (t *Target) Params() url.Values
- func (t *Target) SetDiscoveredLabels(l labels.Labels)
- func (t *Target) String() string
- func (t *Target) URL() string
- type TargetHealth
- type Targets
Constants ¶
const ( ProfilePath = "__profile_path__" ProfileName = "__name__" )
Variables ¶
var DefaultArguments = NewDefaultArguments()
var DefaultProfilingConfig = ProfilingConfig{ Memory: ProfilingTarget{ Enabled: true, Path: "/debug/pprof/allocs", }, Block: ProfilingTarget{ Enabled: true, Path: "/debug/pprof/block", }, Goroutine: ProfilingTarget{ Enabled: true, Path: "/debug/pprof/goroutine", }, Mutex: ProfilingTarget{ Enabled: true, Path: "/debug/pprof/mutex", }, ProcessCPU: ProfilingTarget{ Enabled: true, Path: "/debug/pprof/profile", Delta: true, }, FGProf: ProfilingTarget{ Enabled: false, Path: "/debug/fgprof", Delta: true, }, GoDeltaProfMemory: ProfilingTarget{ Enabled: false, Path: "/debug/pprof/delta_heap", }, GoDeltaProfMutex: ProfilingTarget{ Enabled: false, Path: "/debug/pprof/delta_mutex", }, GoDeltaProfBlock: ProfilingTarget{ Enabled: false, Path: "/debug/pprof/delta_block", }, }
Functions ¶
func LabelsByProfiles ¶
func LabelsByProfiles(lset labels.Labels, c *ProfilingConfig) []labels.Labels
LabelsByProfiles returns the labels for a given ProfilingConfig.
Types ¶
type Arguments ¶
type Arguments struct { Targets []discovery.Target `alloy:"targets,attr"` ForwardTo []pyroscope.Appendable `alloy:"forward_to,attr"` // The job name to override the job label with. JobName string `alloy:"job_name,attr,optional"` // A set of query parameters with which the target is scraped. Params url.Values `alloy:"params,attr,optional"` // How frequently to scrape the targets of this scrape config. ScrapeInterval time.Duration `alloy:"scrape_interval,attr,optional"` // The timeout for scraping targets of this config. ScrapeTimeout time.Duration `alloy:"scrape_timeout,attr,optional"` // The URL scheme with which to fetch metrics from targets. Scheme string `alloy:"scheme,attr,optional"` // The duration for a profile to be scrapped. DeltaProfilingDuration time.Duration `alloy:"delta_profiling_duration,attr,optional"` HTTPClientConfig component_config.HTTPClientConfig `alloy:",squash"` ProfilingConfig ProfilingConfig `alloy:"profiling_config,block,optional"` Clustering cluster.ComponentBlock `alloy:"clustering,block,optional"` }
Arguments holds values which are used to configure the pprof.scrape component.
func NewDefaultArguments ¶
func NewDefaultArguments() Arguments
NewDefaultArguments create the default settings for a scrape job.
func (*Arguments) SetToDefault ¶
func (arg *Arguments) SetToDefault()
SetToDefault implements syntax.Defaulter.
type Component ¶
type Component struct {
// contains filtered or unexported fields
}
Component implements the pprof.scrape component.
func (*Component) DebugInfo ¶
func (c *Component) DebugInfo() interface{}
DebugInfo implements component.DebugComponent.
func (*Component) NotifyClusterChange ¶
func (c *Component) NotifyClusterChange()
NotifyClusterChange implements component.ClusterComponent.
type CustomProfilingTarget ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func (*Manager) ApplyConfig ¶
ApplyConfig resets the manager's target providers and job configurations as defined by the new cfg.
func (*Manager) Run ¶
func (m *Manager) Run(tsets <-chan map[string][]*targetgroup.Group)
Run receives and saves target set updates and triggers the scraping loops reloading. Reloading happens in the background so that it doesn't block receiving targets updates.
func (*Manager) TargetsActive ¶
TargetsActive returns the active targets currently being scraped.
func (*Manager) TargetsAll ¶
TargetsAll returns active and dropped targets grouped by job_name.
func (*Manager) TargetsDropped ¶
TargetsDropped returns the dropped targets during relabelling.
type Options ¶ added in v1.1.0
type Options struct { // Optional HTTP client options to use when scraping. HTTPClientOptions []config_util.HTTPClientOption }
type ProfilingConfig ¶
type ProfilingConfig struct { Memory ProfilingTarget `alloy:"profile.memory,block,optional"` Block ProfilingTarget `alloy:"profile.block,block,optional"` Goroutine ProfilingTarget `alloy:"profile.goroutine,block,optional"` Mutex ProfilingTarget `alloy:"profile.mutex,block,optional"` ProcessCPU ProfilingTarget `alloy:"profile.process_cpu,block,optional"` FGProf ProfilingTarget `alloy:"profile.fgprof,block,optional"` GoDeltaProfMemory ProfilingTarget `alloy:"profile.godeltaprof_memory,block,optional"` GoDeltaProfMutex ProfilingTarget `alloy:"profile.godeltaprof_mutex,block,optional"` GoDeltaProfBlock ProfilingTarget `alloy:"profile.godeltaprof_block,block,optional"` Custom []CustomProfilingTarget `alloy:"profile.custom,block,optional"` PprofPrefix string `alloy:"path_prefix,attr,optional"` }
func (*ProfilingConfig) AllTargets ¶
func (cfg *ProfilingConfig) AllTargets() map[string]ProfilingTarget
AllTargets returns the set of all standard and custom profiling targets, regardless of whether they're enabled. The key in the map indicates the name of the target.
func (*ProfilingConfig) SetToDefault ¶
func (cfg *ProfilingConfig) SetToDefault()
SetToDefault implements syntax.Defaulter.
type ProfilingTarget ¶
type Target ¶
type Target struct {
// contains filtered or unexported fields
}
Target refers to a singular HTTP or HTTPS endpoint.
func (*Target) DiscoveredLabels ¶
DiscoveredLabels returns a copy of the target's labels before any processing.
func (*Target) Hash ¶
Hash returns an identifying hash for the target, based on public labels and the URL.
func (*Target) Health ¶
func (t *Target) Health() TargetHealth
Health returns the last known health state of the target.
func (*Target) Labels ¶
Labels returns the set of all public labels of the target. Callers must not modify the returned labels.
func (*Target) LastScrape ¶
LastScrape returns the time of the last scrape.
func (*Target) LastScrapeDuration ¶
LastScrapeDuration returns how long the last scrape of the target took.
func (*Target) SetDiscoveredLabels ¶
SetDiscoveredLabels sets new DiscoveredLabels.
type TargetHealth ¶
type TargetHealth string
TargetHealth describes the health state of a target.
const ( HealthUnknown TargetHealth = "unknown" HealthGood TargetHealth = "up" HealthBad TargetHealth = "down" )
The possible health states of a target based on the last performed scrape.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
internal
|
|
fastdelta
Package fastdelta tries to match up samples between two pprof profiles and take their difference.
|
Package fastdelta tries to match up samples between two pprof profiles and take their difference. |
pproflite
Package pproflite implements zero-allocation pprof encoding and decoding.
|
Package pproflite implements zero-allocation pprof encoding and decoding. |