Documentation ¶
Index ¶
- Variables
- func ParseGroups(r io.Reader, cb func(name []byte, val int)) error
- func ParseIndividualLines(r io.Reader, cb func(name []byte, val int)) error
- func ParseTrie(r io.Reader, cb func(name []byte, val int)) error
- type Function
- func (*Function) Descriptor() ([]byte, []int)deprecated
- func (x *Function) GetFilename() int64
- func (x *Function) GetId() uint64
- func (x *Function) GetName() int64
- func (x *Function) GetStartLine() int64
- func (x *Function) GetSystemName() int64
- func (*Function) ProtoMessage()
- func (x *Function) ProtoReflect() protoreflect.Message
- func (x *Function) Reset()
- func (x *Function) String() string
- type Label
- func (*Label) Descriptor() ([]byte, []int)deprecated
- func (x *Label) GetKey() int64
- func (x *Label) GetNum() int64
- func (x *Label) GetNumUnit() int64
- func (x *Label) GetStr() int64
- func (*Label) ProtoMessage()
- func (x *Label) ProtoReflect() protoreflect.Message
- func (x *Label) Reset()
- func (x *Label) String() string
- type Line
- type Location
- func (*Location) Descriptor() ([]byte, []int)deprecated
- func (x *Location) GetAddress() uint64
- func (x *Location) GetId() uint64
- func (x *Location) GetIsFolded() bool
- func (x *Location) GetLine() []*Line
- func (x *Location) GetMappingId() uint64
- func (*Location) ProtoMessage()
- func (x *Location) ProtoReflect() protoreflect.Message
- func (x *Location) Reset()
- func (x *Location) String() string
- type Mapping
- func (*Mapping) Descriptor() ([]byte, []int)deprecated
- func (x *Mapping) GetBuildId() int64
- func (x *Mapping) GetFileOffset() uint64
- func (x *Mapping) GetFilename() int64
- func (x *Mapping) GetHasFilenames() bool
- func (x *Mapping) GetHasFunctions() bool
- func (x *Mapping) GetHasInlineFrames() bool
- func (x *Mapping) GetHasLineNumbers() bool
- func (x *Mapping) GetId() uint64
- func (x *Mapping) GetMemoryLimit() uint64
- func (x *Mapping) GetMemoryStart() uint64
- func (*Mapping) ProtoMessage()
- func (x *Mapping) ProtoReflect() protoreflect.Message
- func (x *Mapping) Reset()
- func (x *Mapping) String() string
- type Profile
- func (*Profile) Descriptor() ([]byte, []int)deprecated
- func (x *Profile) Get(sampleType string, cb func(name []byte, val int)) error
- func (x *Profile) GetComment() []int64
- func (x *Profile) GetDefaultSampleType() int64
- func (x *Profile) GetDropFrames() int64
- func (x *Profile) GetDurationNanos() int64
- func (x *Profile) GetFunction() []*Function
- func (x *Profile) GetKeepFrames() int64
- func (x *Profile) GetLocation() []*Location
- func (x *Profile) GetMapping() []*Mapping
- func (x *Profile) GetPeriod() int64
- func (x *Profile) GetPeriodType() *ValueType
- func (x *Profile) GetSample() []*Sample
- func (x *Profile) GetSampleType() []*ValueType
- func (x *Profile) GetStringTable() []string
- func (x *Profile) GetTimeNanos() int64
- func (*Profile) ProtoMessage()
- func (x *Profile) ProtoReflect() protoreflect.Message
- func (x *Profile) Reset()
- func (x *Profile) String() string
- type Sample
- func (*Sample) Descriptor() ([]byte, []int)deprecated
- func (x *Sample) GetLabel() []*Label
- func (x *Sample) GetLocationId() []uint64
- func (x *Sample) GetValue() []int64
- func (*Sample) ProtoMessage()
- func (x *Sample) ProtoReflect() protoreflect.Message
- func (x *Sample) Reset()
- func (x *Sample) String() string
- type ValueType
Constants ¶
This section is empty.
Variables ¶
View Source
var File_pkg_convert_profile_proto protoreflect.FileDescriptor
Functions ¶
func ParseGroups ¶
format: stack-trace-foo 1 stack-trace-bar 2
func ParseIndividualLines ¶
format: stack-trace-foo stack-trace-bar stack-trace-bar
Types ¶
type Function ¶ added in v0.0.30
type Function struct { // Unique nonzero id for the function. Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // Name of the function, in human-readable form if available. Name int64 `protobuf:"varint,2,opt,name=name,proto3" json:"name,omitempty"` // Index into string table // Name of the function, as identified by the system. // For instance, it can be a C++ mangled name. SystemName int64 `protobuf:"varint,3,opt,name=system_name,json=systemName,proto3" json:"system_name,omitempty"` // Index into string table // Source file containing the function. Filename int64 `protobuf:"varint,4,opt,name=filename,proto3" json:"filename,omitempty"` // Index into string table // Line number in source file. StartLine int64 `protobuf:"varint,5,opt,name=start_line,json=startLine,proto3" json:"start_line,omitempty"` // contains filtered or unexported fields }
func (*Function) Descriptor
deprecated
added in
v0.0.30
func (*Function) GetFilename ¶ added in v0.0.30
func (*Function) GetStartLine ¶ added in v0.0.30
func (*Function) GetSystemName ¶ added in v0.0.30
func (*Function) ProtoMessage ¶ added in v0.0.30
func (*Function) ProtoMessage()
func (*Function) ProtoReflect ¶ added in v0.0.30
func (x *Function) ProtoReflect() protoreflect.Message
type Label ¶ added in v0.0.30
type Label struct { Key int64 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"` // Index into string table // At most one of the following must be present Str int64 `protobuf:"varint,2,opt,name=str,proto3" json:"str,omitempty"` // Index into string table Num int64 `protobuf:"varint,3,opt,name=num,proto3" json:"num,omitempty"` // Should only be present when num is present. // Specifies the units of num. // Use arbitrary string (for example, "requests") as a custom count unit. // If no unit is specified, consumer may apply heuristic to deduce the unit. // Consumers may also interpret units like "bytes" and "kilobytes" as memory // units and units like "seconds" and "nanoseconds" as time units, // and apply appropriate unit conversions to these. NumUnit int64 `protobuf:"varint,4,opt,name=num_unit,json=numUnit,proto3" json:"num_unit,omitempty"` // Index into string table // contains filtered or unexported fields }
func (*Label) Descriptor
deprecated
added in
v0.0.30
func (*Label) GetNumUnit ¶ added in v0.0.30
func (*Label) ProtoMessage ¶ added in v0.0.30
func (*Label) ProtoMessage()
func (*Label) ProtoReflect ¶ added in v0.0.30
func (x *Label) ProtoReflect() protoreflect.Message
type Line ¶ added in v0.0.30
type Line struct { // The id of the corresponding profile.Function for this line. FunctionId uint64 `protobuf:"varint,1,opt,name=function_id,json=functionId,proto3" json:"function_id,omitempty"` // Line number in source code. Line int64 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"` // contains filtered or unexported fields }
func (*Line) Descriptor
deprecated
added in
v0.0.30
func (*Line) GetFunctionId ¶ added in v0.0.30
func (*Line) ProtoMessage ¶ added in v0.0.30
func (*Line) ProtoMessage()
func (*Line) ProtoReflect ¶ added in v0.0.30
func (x *Line) ProtoReflect() protoreflect.Message
type Location ¶ added in v0.0.30
type Location struct { // Unique nonzero id for the location. A profile could use // instruction addresses or any integer sequence as ids. Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // The id of the corresponding profile.Mapping for this location. // It can be unset if the mapping is unknown or not applicable for // this profile type. MappingId uint64 `protobuf:"varint,2,opt,name=mapping_id,json=mappingId,proto3" json:"mapping_id,omitempty"` // The instruction address for this location, if available. It // should be within [Mapping.memory_start...Mapping.memory_limit] // for the corresponding mapping. A non-leaf address may be in the // middle of a call instruction. It is up to display tools to find // the beginning of the instruction if necessary. Address uint64 `protobuf:"varint,3,opt,name=address,proto3" json:"address,omitempty"` // Multiple line indicates this location has inlined functions, // where the last entry represents the caller into which the // preceding entries were inlined. // // E.g., if memcpy() is inlined into printf: // line[0].function_name == "memcpy" // line[1].function_name == "printf" Line []*Line `protobuf:"bytes,4,rep,name=line,proto3" json:"line,omitempty"` // Provides an indication that multiple symbols map to this location's // address, for example due to identical code folding by the linker. In that // case the line information above represents one of the multiple // symbols. This field must be recomputed when the symbolization state of the // profile changes. IsFolded bool `protobuf:"varint,5,opt,name=is_folded,json=isFolded,proto3" json:"is_folded,omitempty"` // contains filtered or unexported fields }
Describes function and line table debug information.
func (*Location) Descriptor
deprecated
added in
v0.0.30
func (*Location) GetAddress ¶ added in v0.0.30
func (*Location) GetIsFolded ¶ added in v0.0.30
func (*Location) GetMappingId ¶ added in v0.0.30
func (*Location) ProtoMessage ¶ added in v0.0.30
func (*Location) ProtoMessage()
func (*Location) ProtoReflect ¶ added in v0.0.30
func (x *Location) ProtoReflect() protoreflect.Message
type Mapping ¶ added in v0.0.30
type Mapping struct { // Unique nonzero id for the mapping. Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // Address at which the binary (or DLL) is loaded into memory. MemoryStart uint64 `protobuf:"varint,2,opt,name=memory_start,json=memoryStart,proto3" json:"memory_start,omitempty"` // The limit of the address range occupied by this mapping. MemoryLimit uint64 `protobuf:"varint,3,opt,name=memory_limit,json=memoryLimit,proto3" json:"memory_limit,omitempty"` // Offset in the binary that corresponds to the first mapped address. FileOffset uint64 `protobuf:"varint,4,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"` // The object this entry is loaded from. This can be a filename on // disk for the main binary and shared libraries, or virtual // abstractions like "[vdso]". Filename int64 `protobuf:"varint,5,opt,name=filename,proto3" json:"filename,omitempty"` // Index into string table // A string that uniquely identifies a particular program version // with high probability. E.g., for binaries generated by GNU tools, // it could be the contents of the .note.gnu.build-id field. BuildId int64 `protobuf:"varint,6,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"` // Index into string table // The following fields indicate the resolution of symbolic info. HasFunctions bool `protobuf:"varint,7,opt,name=has_functions,json=hasFunctions,proto3" json:"has_functions,omitempty"` HasFilenames bool `protobuf:"varint,8,opt,name=has_filenames,json=hasFilenames,proto3" json:"has_filenames,omitempty"` HasLineNumbers bool `protobuf:"varint,9,opt,name=has_line_numbers,json=hasLineNumbers,proto3" json:"has_line_numbers,omitempty"` HasInlineFrames bool `protobuf:"varint,10,opt,name=has_inline_frames,json=hasInlineFrames,proto3" json:"has_inline_frames,omitempty"` // contains filtered or unexported fields }
func (*Mapping) Descriptor
deprecated
added in
v0.0.30
func (*Mapping) GetBuildId ¶ added in v0.0.30
func (*Mapping) GetFileOffset ¶ added in v0.0.30
func (*Mapping) GetFilename ¶ added in v0.0.30
func (*Mapping) GetHasFilenames ¶ added in v0.0.30
func (*Mapping) GetHasFunctions ¶ added in v0.0.30
func (*Mapping) GetHasInlineFrames ¶ added in v0.0.30
func (*Mapping) GetHasLineNumbers ¶ added in v0.0.30
func (*Mapping) GetMemoryLimit ¶ added in v0.0.30
func (*Mapping) GetMemoryStart ¶ added in v0.0.30
func (*Mapping) ProtoMessage ¶ added in v0.0.30
func (*Mapping) ProtoMessage()
func (*Mapping) ProtoReflect ¶ added in v0.0.30
func (x *Mapping) ProtoReflect() protoreflect.Message
type Profile ¶ added in v0.0.30
type Profile struct { // A description of the samples associated with each Sample.value. // For a cpu profile this might be: // [["cpu","nanoseconds"]] or [["wall","seconds"]] or [["syscall","count"]] // For a heap profile, this might be: // [["allocations","count"], ["space","bytes"]], // If one of the values represents the number of events represented // by the sample, by convention it should be at index 0 and use // sample_type.unit == "count". SampleType []*ValueType `protobuf:"bytes,1,rep,name=sample_type,json=sampleType,proto3" json:"sample_type,omitempty"` // The set of samples recorded in this profile. Sample []*Sample `protobuf:"bytes,2,rep,name=sample,proto3" json:"sample,omitempty"` // Mapping from address ranges to the image/binary/library mapped // into that address range. mapping[0] will be the main binary. Mapping []*Mapping `protobuf:"bytes,3,rep,name=mapping,proto3" json:"mapping,omitempty"` // Useful program location Location []*Location `protobuf:"bytes,4,rep,name=location,proto3" json:"location,omitempty"` // Functions referenced by locations Function []*Function `protobuf:"bytes,5,rep,name=function,proto3" json:"function,omitempty"` // A common table for strings referenced by various messages. // string_table[0] must always be "". StringTable []string `protobuf:"bytes,6,rep,name=string_table,json=stringTable,proto3" json:"string_table,omitempty"` // frames with Function.function_name fully matching the following // regexp will be dropped from the samples, along with their successors. DropFrames int64 `protobuf:"varint,7,opt,name=drop_frames,json=dropFrames,proto3" json:"drop_frames,omitempty"` // Index into string table. // frames with Function.function_name fully matching the following // regexp will be kept, even if it matches drop_functions. KeepFrames int64 `protobuf:"varint,8,opt,name=keep_frames,json=keepFrames,proto3" json:"keep_frames,omitempty"` // Index into string table. // Time of collection (UTC) represented as nanoseconds past the epoch. TimeNanos int64 `protobuf:"varint,9,opt,name=time_nanos,json=timeNanos,proto3" json:"time_nanos,omitempty"` // Duration of the profile, if a duration makes sense. DurationNanos int64 `protobuf:"varint,10,opt,name=duration_nanos,json=durationNanos,proto3" json:"duration_nanos,omitempty"` // The kind of events between sampled ocurrences. // e.g [ "cpu","cycles" ] or [ "heap","bytes" ] PeriodType *ValueType `protobuf:"bytes,11,opt,name=period_type,json=periodType,proto3" json:"period_type,omitempty"` // The number of events between sampled occurrences. Period int64 `protobuf:"varint,12,opt,name=period,proto3" json:"period,omitempty"` // Freeform text associated to the profile. Comment []int64 `protobuf:"varint,13,rep,packed,name=comment,proto3" json:"comment,omitempty"` // Indices into string table. // Index into the string table of the type of the preferred sample // value. If unset, clients should default to the last sample value. DefaultSampleType int64 `protobuf:"varint,14,opt,name=default_sample_type,json=defaultSampleType,proto3" json:"default_sample_type,omitempty"` // contains filtered or unexported fields }
func ParsePprof ¶ added in v0.0.30
format is pprof. See https://github.com/google/pprof/blob/master/proto/profile.proto
func (*Profile) Descriptor
deprecated
added in
v0.0.30
func (*Profile) GetComment ¶ added in v0.0.30
func (*Profile) GetDefaultSampleType ¶ added in v0.0.30
func (*Profile) GetDropFrames ¶ added in v0.0.30
func (*Profile) GetDurationNanos ¶ added in v0.0.30
func (*Profile) GetFunction ¶ added in v0.0.30
func (*Profile) GetKeepFrames ¶ added in v0.0.30
func (*Profile) GetLocation ¶ added in v0.0.30
func (*Profile) GetMapping ¶ added in v0.0.30
func (*Profile) GetPeriodType ¶ added in v0.0.30
func (*Profile) GetSampleType ¶ added in v0.0.30
func (*Profile) GetStringTable ¶ added in v0.0.30
func (*Profile) GetTimeNanos ¶ added in v0.0.30
func (*Profile) ProtoMessage ¶ added in v0.0.30
func (*Profile) ProtoMessage()
func (*Profile) ProtoReflect ¶ added in v0.0.30
func (x *Profile) ProtoReflect() protoreflect.Message
type Sample ¶ added in v0.0.30
type Sample struct { // The ids recorded here correspond to a Profile.location.id. // The leaf is at location_id[0]. LocationId []uint64 `protobuf:"varint,1,rep,packed,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` // The type and unit of each value is defined by the corresponding // entry in Profile.sample_type. All samples must have the same // number of values, the same as the length of Profile.sample_type. // When aggregating multiple samples into a single sample, the // result has a list of values that is the element-wise sum of the // lists of the originals. Value []int64 `protobuf:"varint,2,rep,packed,name=value,proto3" json:"value,omitempty"` // label includes additional context for this sample. It can include // things like a thread id, allocation size, etc Label []*Label `protobuf:"bytes,3,rep,name=label,proto3" json:"label,omitempty"` // contains filtered or unexported fields }
Each Sample records values encountered in some program context. The program context is typically a stack trace, perhaps augmented with auxiliary information like the thread-id, some indicator of a higher level request being handled etc.
func (*Sample) Descriptor
deprecated
added in
v0.0.30
func (*Sample) GetLocationId ¶ added in v0.0.30
func (*Sample) ProtoMessage ¶ added in v0.0.30
func (*Sample) ProtoMessage()
func (*Sample) ProtoReflect ¶ added in v0.0.30
func (x *Sample) ProtoReflect() protoreflect.Message
type ValueType ¶ added in v0.0.30
type ValueType struct { Type int64 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` // Index into string table. Unit int64 `protobuf:"varint,2,opt,name=unit,proto3" json:"unit,omitempty"` // Index into string table. // contains filtered or unexported fields }
ValueType describes the semantics and measurement units of a value.
func (*ValueType) Descriptor
deprecated
added in
v0.0.30
func (*ValueType) ProtoMessage ¶ added in v0.0.30
func (*ValueType) ProtoMessage()
func (*ValueType) ProtoReflect ¶ added in v0.0.30
func (x *ValueType) ProtoReflect() protoreflect.Message
Click to show internal directories.
Click to hide internal directories.