Documentation ¶
Overview ¶
Package profile provides a representation of profile.proto and methods to encode/decode profiles in this format.
Index ¶
- Variables
- type Function
- type Line
- type Location
- type Mapping
- type Profile
- func (p *Profile) Aggregate(inlineFrame, function, filename, linenumber, address bool) error
- func (p *Profile) CheckValid() error
- func (p *Profile) Copy() *Profile
- func (p *Profile) HasFileLines() bool
- func (p *Profile) HasFunctions() bool
- func (p *Profile) ParseMemoryMap(rd io.Reader) error
- func (p *Profile) Scale(ratio float64)
- func (p *Profile) ScaleN(ratios []float64) error
- func (p *Profile) String() string
- func (p *Profile) Write(w io.Writer) error
- func (p *Profile) WriteUncompressed(w io.Writer) error
- type Sample
- type ValueType
Constants ¶
This section is empty.
Variables ¶
var ( // LegacyHeapAllocated instructs the heapz parsers to use the // allocated memory stats instead of the default in-use memory. Note // that tcmalloc doesn't provide all allocated memory, only in-use // stats. LegacyHeapAllocated bool )
Functions ¶
This section is empty.
Types ¶
type Function ¶
type Function struct { ID uint64 Name string SystemName string Filename string StartLine int64 // contains filtered or unexported fields }
Function corresponds to Profile.Function
type Location ¶
type Location struct { ID uint64 Mapping *Mapping Address uint64 Line []Line // contains filtered or unexported fields }
Location corresponds to Profile.Location
type Mapping ¶
type Mapping struct { ID uint64 Start uint64 Limit uint64 Offset uint64 File string BuildID string HasFunctions bool HasFilenames bool HasLineNumbers bool HasInlineFrames bool // contains filtered or unexported fields }
Mapping corresponds to Profile.Mapping
func (*Mapping) Unsymbolizable ¶
Unsymbolizable returns true if a mapping points to a binary for which locations can't be symbolized in principle, at least now. Examples are "[vdso]", [vsyscall]" and some others, see the code.
type Profile ¶
type Profile struct { SampleType []*ValueType DefaultSampleType string Sample []*Sample Mapping []*Mapping Location []*Location Function []*Function Comments []string DropFrames string KeepFrames string TimeNanos int64 DurationNanos int64 PeriodType *ValueType Period int64 // contains filtered or unexported fields }
Profile is an in-memory representation of profile.proto.
func Parse ¶
Parse parses a profile and checks for its validity. The input may be a gzip-compressed encoded protobuf or one of many legacy profile formats which may be unsupported in the future.
func ParseTracebacks ¶
ParseTracebacks parses a set of tracebacks and returns a newly populated profile. It will accept any text file and generate a Profile out of it with any hex addresses it can identify, including a process map if it can recognize one. Each sample will include a tag "source" with the addresses recognized in string format.
func ParseUncompressed ¶
ParseUncompressed parses an uncompressed protobuf into a profile.
func (*Profile) Aggregate ¶
Aggregate merges the locations in the profile into equivalence classes preserving the request attributes. It also updates the samples to point to the merged locations.
func (*Profile) CheckValid ¶
CheckValid tests whether the profile is valid. Checks include, but are not limited to:
- len(Profile.Sample[n].value) == len(Profile.value_unit)
- Sample.id has a corresponding Profile.Location
func (*Profile) HasFileLines ¶
HasFileLines determines if all locations in this profile have symbolized file and line number information.
func (*Profile) HasFunctions ¶
HasFunctions determines if all locations in this profile have symbolized function information.
func (*Profile) ParseMemoryMap ¶
ParseMemoryMap parses a memory map in the format of /proc/self/maps, and overrides the mappings in the current profile. It renumbers the samples and locations in the profile correspondingly.
func (*Profile) String ¶
String dumps a text representation of a profile. Intended mainly for debugging purposes.