Documentation ¶
Index ¶
- Constants
- Variables
- func CRImportCheckpoint(ctx context.Context, dir, containerId string) error
- func CopyFile(src, dstFolder string) error
- func CreateContainer(ctrState *map[string]interface{}, ctrConfig *types.ContainerConfig, db *DB, ...) error
- func GenSampleConfig() string
- func GenerateJWT(id string, skey string) (*string, error)
- func GetAllCtrsBucket(tx *bolt.Tx) (*bolt.Bucket, error)
- func GetCtrBucket(tx *bolt.Tx) (*bolt.Bucket, error)
- func GetIDBucket(tx *bolt.Tx) (*bolt.Bucket, error)
- func GetLogger() zerolog.Logger
- func GetNamesBucket(tx *bolt.Tx) (*bolt.Bucket, error)
- func GetPid(processName string) (int32, error)
- func GetProcessName(pid int32) (*string, error)
- func GetProcessSimilarity(processName string, processes []*ps.Process) (int32, error)
- func GetVolBucket(tx *bolt.Tx) (*bolt.Bucket, error)
- func InitOtel(ctx context.Context, version string) (shutdown func(context.Context) error, err error)
- func JSONDeepCopy(from, to interface{}) error
- func NewFromFile(path string) (*rspec.Spec, envCache, error)
- func NewFromTemplate(r io.Reader) (*rspec.Spec, envCache, error)
- func ReadJSONFile(v interface{}, dir, file string) (string, error)
- func SendFile(socket *os.File, file *os.File) error
- func SendRawFd(socket *os.File, msg string, fd uintptr) error
- func StartPprofServer()
- func TarFolder(srcFolder, destTar string) error
- func TarGzFolder(srcFolder, destTar string) error
- func TarLZ4Folder(srcFolder, destTar string) error
- func UntarFolder(srcTar, destFolder string) error
- func UntarGzFolder(srcTarGz, destFolder string) error
- func WriteJSON(w io.Writer, v interface{}) error
- func WriteJSONFile(v interface{}, dir, file string) (string, error)
- type CedanaStore
- func (cs *CedanaStore) CompleteMultiPartUpload(ctx context.Context, uploadResp UploadResponse, cid string) error
- func (cs *CedanaStore) CreateMultiPartUpload(ctx context.Context, fullSize int64) (*UploadResponse, string, error)
- func (cs *CedanaStore) FullMultipartUpload(ctx context.Context, checkpointPath string) (*UploadResponse, error)
- func (cs *CedanaStore) GetCheckpoint(ctx context.Context, cid string) (*string, error)
- func (cs *CedanaStore) ListCheckpoints(ctx context.Context) (*[]CheckpointMeta, error)
- func (cs *CedanaStore) PushCheckpoint(ctx context.Context, filepath string) error
- func (cs *CedanaStore) StartMultiPartUpload(ctx context.Context, cid string, uploadResp *UploadResponse, ...) error
- type CheckpointMeta
- type Client
- type Config
- type ConfigClient
- type Connection
- type Criu
- func (c *Criu) Cleanup()
- func (c *Criu) Dump(opts *rpc.CriuOpts, nfy *Notify) (*rpc.CriuResp, error)
- func (c *Criu) GetCriuVersion() (int, error)
- func (c *Criu) IsCriuAtLeast(version int) (bool, error)
- func (c *Criu) PreDump(opts *rpc.CriuOpts, nfy *Notify) (*rpc.CriuResp, error)
- func (c *Criu) Prepare() error
- func (c *Criu) Restore(opts *rpc.CriuOpts, nfy *Notify) (*rpc.CriuResp, error)
- func (c *Criu) SetCriuPath(path string)
- type DB
- 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 MockStore
- type Notify
- func (n Notify) NetworkLock() error
- func (n Notify) NetworkUnlock() error
- func (n Notify) PostDump() error
- func (n Notify) PostRestore(pid int32) error
- func (n Notify) PostResume() error
- func (n Notify) PostSetupNamespaces() error
- func (n Notify) PreDump() error
- func (n Notify) PreRestore() error
- func (n Notify) PreResume() error
- func (n Notify) SetupNamespaces(pid int32) error
- type NotifyFunc
- type OperationType
- type Profile
- func (*Profile) Descriptor() ([]byte, []int)deprecated
- 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 S3Store
- 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 SharedStorage
- type Store
- type Timings
- type UploadResponse
- type ValueType
Constants ¶
const MaxNameLen = 4096
const (
StorePath = "/var/lib/containers/storage/overlay-containers"
)
Variables ¶
var ( IDRegistryBkt = []byte(idRegistryName) NameRegistryBkt = []byte(nameRegistryName) CtrBkt = []byte(ctrName) AllCtrsBkt = []byte(allCtrsName) PodBkt = []byte(podName) AllPodsBkt = []byte(allPodsName) VolBkt = []byte(volName) AllVolsBkt = []byte(allVolsName) ExecBkt = []byte(execName) AliasesBkt = []byte(aliasesName) RuntimeConfigBkt = []byte(runtimeConfigName) DependenciesBkt = []byte(dependenciesName) VolDependenciesBkt = []byte(volCtrDependencies) NetworksBkt = []byte(networksName) VolCtrsBkt = []byte(volumeCtrsName) ExitCodeBkt = []byte(exitCodeName) ExitCodeTimeStampBkt = []byte(exitCodeTimeStampName) ConfigKey = []byte(configName) StateKey = []byte(stateName) NetNSKey = []byte(netNSName) ContainersBkt = []byte(containersName) PodIDKey = []byte(podIDName) StaticDirKey = []byte(staticDirName) TmpDirKey = []byte(tmpDirName) RunRootKey = []byte(runRootName) GraphRootKey = []byte(graphRootName) GraphDriverKey = []byte(graphDriverName) OsKey = []byte(osName) VolPathKey = []byte(volPathName) )
var File_profile_proto protoreflect.FileDescriptor
Functions ¶
func CRImportCheckpoint ¶ added in v0.8.0
CRImportCheckpoint it the function which imports the information from checkpoint tarball and re-creates the container from that information
func CreateContainer ¶ added in v0.8.0
func GenSampleConfig ¶ added in v0.8.9
func GenSampleConfig() string
func GetProcessName ¶
func GetProcessSimilarity ¶
func InitOtel ¶ added in v0.9.9
func InitOtel(ctx context.Context, version string) (shutdown func(context.Context) error, err error)
setupOTelSDK bootstraps the OpenTelemetry pipeline. If it does not return an error, make sure to call shutdown for proper cleanup.
func JSONDeepCopy ¶ added in v0.8.0
func JSONDeepCopy(from, to interface{}) error
func NewFromTemplate ¶ added in v0.8.0
func ReadJSONFile ¶ added in v0.8.0
func SendFile ¶ added in v0.9.5
SendFile sends a file over the given AF_UNIX socket. file.Name() is also included so that if the other end uses RecvFile, the file will have the same name information.
func SendRawFd ¶ added in v0.9.5
SendRawFd sends a specific file descriptor over the given AF_UNIX socket.
func StartPprofServer ¶ added in v0.8.1
func StartPprofServer()
func TarGzFolder ¶ added in v0.9.2
func TarLZ4Folder ¶ added in v0.9.2
func UntarFolder ¶ added in v0.9.2
func UntarGzFolder ¶ added in v0.9.2
func WriteJSON ¶ added in v0.9.5
WriteJSON writes the provided struct v to w using standard json marshaling without a trailing newline. This is used instead of json.Encoder because there might be a problem in json decoder in some cases, see: https://github.com/docker/docker/issues/14203#issuecomment-174177790
func WriteJSONFile ¶ added in v0.8.0
Types ¶
type CedanaStore ¶
type CedanaStore struct {
// contains filtered or unexported fields
}
For pushing and pulling from a cedana managed endpoint
func NewCedanaStore ¶ added in v0.8.0
func NewCedanaStore(cfg *Config, tracer trace.Tracer) *CedanaStore
func (*CedanaStore) CompleteMultiPartUpload ¶ added in v0.8.0
func (cs *CedanaStore) CompleteMultiPartUpload(ctx context.Context, uploadResp UploadResponse, cid string) error
func (*CedanaStore) CreateMultiPartUpload ¶ added in v0.8.0
func (cs *CedanaStore) CreateMultiPartUpload(ctx context.Context, fullSize int64) (*UploadResponse, string, error)
func (*CedanaStore) FullMultipartUpload ¶ added in v0.9.5
func (cs *CedanaStore) FullMultipartUpload(ctx context.Context, checkpointPath string) (*UploadResponse, error)
func (*CedanaStore) GetCheckpoint ¶
func (*CedanaStore) ListCheckpoints ¶
func (cs *CedanaStore) ListCheckpoints(ctx context.Context) (*[]CheckpointMeta, error)
TODO NR - unimplemented stubs for now
func (*CedanaStore) PushCheckpoint ¶
func (cs *CedanaStore) PushCheckpoint(ctx context.Context, filepath string) error
func (*CedanaStore) StartMultiPartUpload ¶ added in v0.8.0
func (cs *CedanaStore) StartMultiPartUpload(ctx context.Context, cid string, uploadResp *UploadResponse, checkpointPath string) error
type CheckpointMeta ¶
type Config ¶
type Config struct { Client Client `json:"client" mapstructure:"client"` Connection Connection `json:"connection" mapstructure:"connection"` }
func InitConfig ¶
type ConfigClient ¶
type ConfigClient struct { Client Client `json:"client"` Connection Connection `json:"connection"` }
func LoadOverrides ¶
func LoadOverrides(cdir string) (*ConfigClient, error)
type Connection ¶
type Criu ¶ added in v0.8.0
type Criu struct {
// contains filtered or unexported fields
}
Code for interfacing with CRIU. We could use go-criu, but there are certain limitations in the abstractions presented. Most of the code found here is lifted from https://github.com/checkpoint-restore/go-criu/blob/master/main.go.
func (*Criu) GetCriuVersion ¶ added in v0.8.0
func (*Criu) IsCriuAtLeast ¶ added in v0.8.0
IsCriuAtLeast checks if the version is at least the same as the parameter version
func (*Criu) SetCriuPath ¶ added in v0.8.0
type DB ¶ added in v0.8.0
func (*DB) GetContainerConfigFromDB ¶ added in v0.8.0
func (*DB) GetContainerStateDB ¶ added in v0.8.0
func (*DB) SetNewDbConn ¶ added in v0.8.0
type Function ¶ added in v0.6.9
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.6.9
func (*Function) GetFilename ¶ added in v0.6.9
func (*Function) GetStartLine ¶ added in v0.6.9
func (*Function) GetSystemName ¶ added in v0.6.9
func (*Function) ProtoMessage ¶ added in v0.6.9
func (*Function) ProtoMessage()
func (*Function) ProtoReflect ¶ added in v0.6.9
func (x *Function) ProtoReflect() protoreflect.Message
type Label ¶ added in v0.6.9
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.6.9
func (*Label) GetNumUnit ¶ added in v0.6.9
func (*Label) ProtoMessage ¶ added in v0.6.9
func (*Label) ProtoMessage()
func (*Label) ProtoReflect ¶ added in v0.6.9
func (x *Label) ProtoReflect() protoreflect.Message
type Line ¶ added in v0.6.9
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.6.9
func (*Line) GetFunctionId ¶ added in v0.6.9
func (*Line) ProtoMessage ¶ added in v0.6.9
func (*Line) ProtoMessage()
func (*Line) ProtoReflect ¶ added in v0.6.9
func (x *Line) ProtoReflect() protoreflect.Message
type Location ¶ added in v0.6.9
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.6.9
func (*Location) GetAddress ¶ added in v0.6.9
func (*Location) GetIsFolded ¶ added in v0.6.9
func (*Location) GetMappingId ¶ added in v0.6.9
func (*Location) ProtoMessage ¶ added in v0.6.9
func (*Location) ProtoMessage()
func (*Location) ProtoReflect ¶ added in v0.6.9
func (x *Location) ProtoReflect() protoreflect.Message
type Mapping ¶ added in v0.6.9
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.6.9
func (*Mapping) GetBuildId ¶ added in v0.6.9
func (*Mapping) GetFileOffset ¶ added in v0.6.9
func (*Mapping) GetFilename ¶ added in v0.6.9
func (*Mapping) GetHasFilenames ¶ added in v0.6.9
func (*Mapping) GetHasFunctions ¶ added in v0.6.9
func (*Mapping) GetHasInlineFrames ¶ added in v0.6.9
func (*Mapping) GetHasLineNumbers ¶ added in v0.6.9
func (*Mapping) GetMemoryLimit ¶ added in v0.6.9
func (*Mapping) GetMemoryStart ¶ added in v0.6.9
func (*Mapping) ProtoMessage ¶ added in v0.6.9
func (*Mapping) ProtoMessage()
func (*Mapping) ProtoReflect ¶ added in v0.6.9
func (x *Mapping) ProtoReflect() protoreflect.Message
type MockStore ¶
type MockStore struct {
// contains filtered or unexported fields
}
func (*MockStore) GetCheckpoint ¶
func (*MockStore) ListCheckpoints ¶
func (ms *MockStore) ListCheckpoints(ctx context.Context) (*[]CheckpointMeta, error)
func (*MockStore) PushCheckpoint ¶
type Notify ¶
type Notify struct { Logger *zerolog.Logger PreDumpFunc NotifyFunc PostDumpFunc NotifyFunc PreRestoreFunc NotifyFunc PreResumeFunc NotifyFunc }
func (Notify) PostSetupNamespaces ¶
PostSetupNamespaces NoNotify
func (Notify) PreRestore ¶
func (Notify) SetupNamespaces ¶
SetupNamespaces NoNotify
type NotifyFunc ¶ added in v0.9.5
type OperationType ¶ added in v0.9.3
type OperationType string
const ( CriuCheckpointOp OperationType = "checkpoint" CriuRestoreOp OperationType = "restore" CompressOp OperationType = "compress" DecompressOp OperationType = "decompress" UploadOp OperationType = "upload" DownloadOp OperationType = "download" )
type Profile ¶ added in v0.6.9
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"` // Locations referenced by samples. 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_frames. 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 occurrences. // 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"` // Free-form text associated with the profile. The text is displayed as is // to the user by the tools that read profiles (e.g. by pprof). This field // should not be used to store any machine-readable information, it is only // for human-friendly content. The profile must stay functional if this field // is cleaned. 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 (*Profile) Descriptor
deprecated
added in
v0.6.9
func (*Profile) GetComment ¶ added in v0.6.9
func (*Profile) GetDefaultSampleType ¶ added in v0.6.9
func (*Profile) GetDropFrames ¶ added in v0.6.9
func (*Profile) GetDurationNanos ¶ added in v0.6.9
func (*Profile) GetFunction ¶ added in v0.6.9
func (*Profile) GetKeepFrames ¶ added in v0.6.9
func (*Profile) GetLocation ¶ added in v0.6.9
func (*Profile) GetMapping ¶ added in v0.6.9
func (*Profile) GetPeriodType ¶ added in v0.6.9
func (*Profile) GetSampleType ¶ added in v0.6.9
func (*Profile) GetStringTable ¶ added in v0.6.9
func (*Profile) GetTimeNanos ¶ added in v0.6.9
func (*Profile) ProtoMessage ¶ added in v0.6.9
func (*Profile) ProtoMessage()
func (*Profile) ProtoReflect ¶ added in v0.6.9
func (x *Profile) ProtoReflect() protoreflect.Message
type S3Store ¶
type S3Store struct { }
func (*S3Store) GetCheckpoint ¶
func (*S3Store) PushCheckpoint ¶
type Sample ¶ added in v0.6.9
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. // // NOTE: While possible, having multiple values for the same label key is // strongly discouraged and should never be used. Most tools (e.g. pprof) do // not have good (or any) support for multi-value labels. And an even more // discouraged case is having a string label and a numeric label of the same // name on a sample. Again, possible to express, but should not be used. 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.6.9
func (*Sample) GetLocationId ¶ added in v0.6.9
func (*Sample) ProtoMessage ¶ added in v0.6.9
func (*Sample) ProtoMessage()
func (*Sample) ProtoReflect ¶ added in v0.6.9
func (x *Sample) ProtoReflect() protoreflect.Message
type SharedStorage ¶
type SharedStorage struct {
}type Store ¶
type Store interface { GetCheckpoint(ctx context.Context, cid string) (*string, error) // returns filepath to downloaded chekcpoint PushCheckpoint(ctx context.Context, filepath string) error ListCheckpoints(ctx context.Context) (*[]CheckpointMeta, error) // fix }
Abstraction for storing and retreiving checkpoints
type Timings ¶ added in v0.9.3
type Timings struct {
// contains filtered or unexported fields
}
func NewTimings ¶ added in v0.9.3
func NewTimings() *Timings
func (*Timings) Start ¶ added in v0.9.3
func (t *Timings) Start(name OperationType)
func (*Timings) Stop ¶ added in v0.9.3
func (t *Timings) Stop(name OperationType)
type UploadResponse ¶ added in v0.8.0
type ValueType ¶ added in v0.6.9
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.6.9
func (*ValueType) ProtoMessage ¶ added in v0.6.9
func (*ValueType) ProtoMessage()
func (*ValueType) ProtoReflect ¶ added in v0.6.9
func (x *ValueType) ProtoReflect() protoreflect.Message