github.com/pyroscope-io/pyroscope@v0.37.3-0.20230725203016-5f6947968bd0/pkg/storage/tree/profile.pb.go (about)

     1  // Copyright 2016 Google Inc. All Rights Reserved.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Profile is a common stacktrace profile format.
    16  //
    17  // Measurements represented with this format should follow the
    18  // following conventions:
    19  //
    20  // - Consumers should treat unset optional fields as if they had been
    21  //   set with their default value.
    22  //
    23  // - When possible, measurements should be stored in "unsampled" form
    24  //   that is most useful to humans.  There should be enough
    25  //   information present to determine the original sampled values.
    26  //
    27  // - On-disk, the serialized proto must be gzip-compressed.
    28  //
    29  // - The profile is represented as a set of samples, where each sample
    30  //   references a sequence of locations, and where each location belongs
    31  //   to a mapping.
    32  // - There is a N->1 relationship from sample.location_id entries to
    33  //   locations. For every sample.location_id entry there must be a
    34  //   unique Location with that id.
    35  // - There is an optional N->1 relationship from locations to
    36  //   mappings. For every nonzero Location.mapping_id there must be a
    37  //   unique Mapping with that id.
    38  
    39  // Code generated by protoc-gen-go. DO NOT EDIT.
    40  // versions:
    41  // 	protoc-gen-go v1.27.1
    42  // 	protoc        v3.19.1
    43  // source: profile.proto
    44  
    45  package tree
    46  
    47  import (
    48  	reflect "reflect"
    49  	sync "sync"
    50  
    51  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    52  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    53  )
    54  
    55  const (
    56  	// Verify that this generated code is sufficiently up-to-date.
    57  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    58  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    59  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    60  )
    61  
    62  type Profile struct {
    63  	state         protoimpl.MessageState
    64  	sizeCache     protoimpl.SizeCache
    65  	unknownFields protoimpl.UnknownFields
    66  
    67  	// A description of the samples associated with each Sample.value.
    68  	// For a cpu profile this might be:
    69  	//   [["cpu","nanoseconds"]] or [["wall","seconds"]] or [["syscall","count"]]
    70  	// For a heap profile, this might be:
    71  	//   [["allocations","count"], ["space","bytes"]],
    72  	// If one of the values represents the number of events represented
    73  	// by the sample, by convention it should be at index 0 and use
    74  	// sample_type.unit == "count".
    75  	SampleType []*ValueType `protobuf:"bytes,1,rep,name=sample_type,json=sampleType,proto3" json:"sample_type,omitempty"`
    76  	// The set of samples recorded in this profile.
    77  	Sample []*Sample `protobuf:"bytes,2,rep,name=sample,proto3" json:"sample,omitempty"`
    78  	// Mapping from address ranges to the image/binary/library mapped
    79  	// into that address range.  mapping[0] will be the main binary.
    80  	Mapping []*Mapping `protobuf:"bytes,3,rep,name=mapping,proto3" json:"mapping,omitempty"`
    81  	// Useful program location
    82  	Location []*Location `protobuf:"bytes,4,rep,name=location,proto3" json:"location,omitempty"`
    83  	// Functions referenced by locations
    84  	Function []*Function `protobuf:"bytes,5,rep,name=function,proto3" json:"function,omitempty"`
    85  	// A common table for strings referenced by various messages.
    86  	// string_table[0] must always be "".
    87  	StringTable []string `protobuf:"bytes,6,rep,name=string_table,json=stringTable,proto3" json:"string_table,omitempty"`
    88  	// frames with Function.function_name fully matching the following
    89  	// regexp will be dropped from the samples, along with their successors.
    90  	DropFrames int64 `protobuf:"varint,7,opt,name=drop_frames,json=dropFrames,proto3" json:"drop_frames,omitempty"` // Index into string table.
    91  	// frames with Function.function_name fully matching the following
    92  	// regexp will be kept, even if it matches drop_functions.
    93  	KeepFrames int64 `protobuf:"varint,8,opt,name=keep_frames,json=keepFrames,proto3" json:"keep_frames,omitempty"` // Index into string table.
    94  	// Time of collection (UTC) represented as nanoseconds past the epoch.
    95  	TimeNanos int64 `protobuf:"varint,9,opt,name=time_nanos,json=timeNanos,proto3" json:"time_nanos,omitempty"`
    96  	// Duration of the profile, if a duration makes sense.
    97  	DurationNanos int64 `protobuf:"varint,10,opt,name=duration_nanos,json=durationNanos,proto3" json:"duration_nanos,omitempty"`
    98  	// The kind of events between sampled ocurrences.
    99  	// e.g [ "cpu","cycles" ] or [ "heap","bytes" ]
   100  	PeriodType *ValueType `protobuf:"bytes,11,opt,name=period_type,json=periodType,proto3" json:"period_type,omitempty"`
   101  	// The number of events between sampled occurrences.
   102  	Period int64 `protobuf:"varint,12,opt,name=period,proto3" json:"period,omitempty"`
   103  	// Freeform text associated to the profile.
   104  	Comment []int64 `protobuf:"varint,13,rep,packed,name=comment,proto3" json:"comment,omitempty"` // Indices into string table.
   105  	// Index into the string table of the type of the preferred sample
   106  	// value. If unset, clients should default to the last sample value.
   107  	DefaultSampleType int64 `protobuf:"varint,14,opt,name=default_sample_type,json=defaultSampleType,proto3" json:"default_sample_type,omitempty"`
   108  }
   109  
   110  func (x *Profile) Reset() {
   111  	*x = Profile{}
   112  	if protoimpl.UnsafeEnabled {
   113  		mi := &file_profile_proto_msgTypes[0]
   114  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   115  		ms.StoreMessageInfo(mi)
   116  	}
   117  }
   118  
   119  func (x *Profile) String() string {
   120  	return protoimpl.X.MessageStringOf(x)
   121  }
   122  
   123  func (*Profile) ProtoMessage() {}
   124  
   125  func (x *Profile) ProtoReflect() protoreflect.Message {
   126  	mi := &file_profile_proto_msgTypes[0]
   127  	if protoimpl.UnsafeEnabled && x != nil {
   128  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   129  		if ms.LoadMessageInfo() == nil {
   130  			ms.StoreMessageInfo(mi)
   131  		}
   132  		return ms
   133  	}
   134  	return mi.MessageOf(x)
   135  }
   136  
   137  // Deprecated: Use Profile.ProtoReflect.Descriptor instead.
   138  func (*Profile) Descriptor() ([]byte, []int) {
   139  	return file_profile_proto_rawDescGZIP(), []int{0}
   140  }
   141  
   142  func (x *Profile) GetSampleType() []*ValueType {
   143  	if x != nil {
   144  		return x.SampleType
   145  	}
   146  	return nil
   147  }
   148  
   149  func (x *Profile) GetSample() []*Sample {
   150  	if x != nil {
   151  		return x.Sample
   152  	}
   153  	return nil
   154  }
   155  
   156  func (x *Profile) GetMapping() []*Mapping {
   157  	if x != nil {
   158  		return x.Mapping
   159  	}
   160  	return nil
   161  }
   162  
   163  func (x *Profile) GetLocation() []*Location {
   164  	if x != nil {
   165  		return x.Location
   166  	}
   167  	return nil
   168  }
   169  
   170  func (x *Profile) GetFunction() []*Function {
   171  	if x != nil {
   172  		return x.Function
   173  	}
   174  	return nil
   175  }
   176  
   177  func (x *Profile) GetStringTable() []string {
   178  	if x != nil {
   179  		return x.StringTable
   180  	}
   181  	return nil
   182  }
   183  
   184  func (x *Profile) GetDropFrames() int64 {
   185  	if x != nil {
   186  		return x.DropFrames
   187  	}
   188  	return 0
   189  }
   190  
   191  func (x *Profile) GetKeepFrames() int64 {
   192  	if x != nil {
   193  		return x.KeepFrames
   194  	}
   195  	return 0
   196  }
   197  
   198  func (x *Profile) GetTimeNanos() int64 {
   199  	if x != nil {
   200  		return x.TimeNanos
   201  	}
   202  	return 0
   203  }
   204  
   205  func (x *Profile) GetDurationNanos() int64 {
   206  	if x != nil {
   207  		return x.DurationNanos
   208  	}
   209  	return 0
   210  }
   211  
   212  func (x *Profile) GetPeriodType() *ValueType {
   213  	if x != nil {
   214  		return x.PeriodType
   215  	}
   216  	return nil
   217  }
   218  
   219  func (x *Profile) GetPeriod() int64 {
   220  	if x != nil {
   221  		return x.Period
   222  	}
   223  	return 0
   224  }
   225  
   226  func (x *Profile) GetComment() []int64 {
   227  	if x != nil {
   228  		return x.Comment
   229  	}
   230  	return nil
   231  }
   232  
   233  func (x *Profile) GetDefaultSampleType() int64 {
   234  	if x != nil {
   235  		return x.DefaultSampleType
   236  	}
   237  	return 0
   238  }
   239  
   240  // ValueType describes the semantics and measurement units of a value.
   241  type ValueType struct {
   242  	state         protoimpl.MessageState
   243  	sizeCache     protoimpl.SizeCache
   244  	unknownFields protoimpl.UnknownFields
   245  
   246  	Type int64 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` // Index into string table.
   247  	Unit int64 `protobuf:"varint,2,opt,name=unit,proto3" json:"unit,omitempty"` // Index into string table.
   248  }
   249  
   250  func (x *ValueType) Reset() {
   251  	*x = ValueType{}
   252  	if protoimpl.UnsafeEnabled {
   253  		mi := &file_profile_proto_msgTypes[1]
   254  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   255  		ms.StoreMessageInfo(mi)
   256  	}
   257  }
   258  
   259  func (x *ValueType) String() string {
   260  	return protoimpl.X.MessageStringOf(x)
   261  }
   262  
   263  func (*ValueType) ProtoMessage() {}
   264  
   265  func (x *ValueType) ProtoReflect() protoreflect.Message {
   266  	mi := &file_profile_proto_msgTypes[1]
   267  	if protoimpl.UnsafeEnabled && x != nil {
   268  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   269  		if ms.LoadMessageInfo() == nil {
   270  			ms.StoreMessageInfo(mi)
   271  		}
   272  		return ms
   273  	}
   274  	return mi.MessageOf(x)
   275  }
   276  
   277  // Deprecated: Use ValueType.ProtoReflect.Descriptor instead.
   278  func (*ValueType) Descriptor() ([]byte, []int) {
   279  	return file_profile_proto_rawDescGZIP(), []int{1}
   280  }
   281  
   282  func (x *ValueType) GetType() int64 {
   283  	if x != nil {
   284  		return x.Type
   285  	}
   286  	return 0
   287  }
   288  
   289  func (x *ValueType) GetUnit() int64 {
   290  	if x != nil {
   291  		return x.Unit
   292  	}
   293  	return 0
   294  }
   295  
   296  // Each Sample records values encountered in some program
   297  // context. The program context is typically a stack trace, perhaps
   298  // augmented with auxiliary information like the thread-id, some
   299  // indicator of a higher level request being handled etc.
   300  type Sample struct {
   301  	state         protoimpl.MessageState
   302  	sizeCache     protoimpl.SizeCache
   303  	unknownFields protoimpl.UnknownFields
   304  
   305  	// The ids recorded here correspond to a Profile.location.id.
   306  	// The leaf is at location_id[0].
   307  	LocationId []uint64 `protobuf:"varint,1,rep,packed,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
   308  	// The type and unit of each value is defined by the corresponding
   309  	// entry in Profile.sample_type. All samples must have the same
   310  	// number of values, the same as the length of Profile.sample_type.
   311  	// When aggregating multiple samples into a single sample, the
   312  	// result has a list of values that is the element-wise sum of the
   313  	// lists of the originals.
   314  	Value []int64 `protobuf:"varint,2,rep,packed,name=value,proto3" json:"value,omitempty"`
   315  	// label includes additional context for this sample. It can include
   316  	// things like a thread id, allocation size, etc
   317  	Label []*Label `protobuf:"bytes,3,rep,name=label,proto3" json:"label,omitempty"`
   318  }
   319  
   320  func (x *Sample) Reset() {
   321  	*x = Sample{}
   322  	if protoimpl.UnsafeEnabled {
   323  		mi := &file_profile_proto_msgTypes[2]
   324  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   325  		ms.StoreMessageInfo(mi)
   326  	}
   327  }
   328  
   329  func (x *Sample) String() string {
   330  	return protoimpl.X.MessageStringOf(x)
   331  }
   332  
   333  func (*Sample) ProtoMessage() {}
   334  
   335  func (x *Sample) ProtoReflect() protoreflect.Message {
   336  	mi := &file_profile_proto_msgTypes[2]
   337  	if protoimpl.UnsafeEnabled && x != nil {
   338  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   339  		if ms.LoadMessageInfo() == nil {
   340  			ms.StoreMessageInfo(mi)
   341  		}
   342  		return ms
   343  	}
   344  	return mi.MessageOf(x)
   345  }
   346  
   347  // Deprecated: Use Sample.ProtoReflect.Descriptor instead.
   348  func (*Sample) Descriptor() ([]byte, []int) {
   349  	return file_profile_proto_rawDescGZIP(), []int{2}
   350  }
   351  
   352  func (x *Sample) GetLocationId() []uint64 {
   353  	if x != nil {
   354  		return x.LocationId
   355  	}
   356  	return nil
   357  }
   358  
   359  func (x *Sample) GetValue() []int64 {
   360  	if x != nil {
   361  		return x.Value
   362  	}
   363  	return nil
   364  }
   365  
   366  func (x *Sample) GetLabel() []*Label {
   367  	if x != nil {
   368  		return x.Label
   369  	}
   370  	return nil
   371  }
   372  
   373  type Label struct {
   374  	state         protoimpl.MessageState
   375  	sizeCache     protoimpl.SizeCache
   376  	unknownFields protoimpl.UnknownFields
   377  
   378  	Key int64 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"` // Index into string table
   379  	// At most one of the following must be present
   380  	Str int64 `protobuf:"varint,2,opt,name=str,proto3" json:"str,omitempty"` // Index into string table
   381  	Num int64 `protobuf:"varint,3,opt,name=num,proto3" json:"num,omitempty"`
   382  	// Should only be present when num is present.
   383  	// Specifies the units of num.
   384  	// Use arbitrary string (for example, "requests") as a custom count unit.
   385  	// If no unit is specified, consumer may apply heuristic to deduce the unit.
   386  	// Consumers may also  interpret units like "bytes" and "kilobytes" as memory
   387  	// units and units like "seconds" and "nanoseconds" as time units,
   388  	// and apply appropriate unit conversions to these.
   389  	NumUnit int64 `protobuf:"varint,4,opt,name=num_unit,json=numUnit,proto3" json:"num_unit,omitempty"` // Index into string table
   390  }
   391  
   392  func (x *Label) Reset() {
   393  	*x = Label{}
   394  	if protoimpl.UnsafeEnabled {
   395  		mi := &file_profile_proto_msgTypes[3]
   396  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   397  		ms.StoreMessageInfo(mi)
   398  	}
   399  }
   400  
   401  func (x *Label) String() string {
   402  	return protoimpl.X.MessageStringOf(x)
   403  }
   404  
   405  func (*Label) ProtoMessage() {}
   406  
   407  func (x *Label) ProtoReflect() protoreflect.Message {
   408  	mi := &file_profile_proto_msgTypes[3]
   409  	if protoimpl.UnsafeEnabled && x != nil {
   410  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   411  		if ms.LoadMessageInfo() == nil {
   412  			ms.StoreMessageInfo(mi)
   413  		}
   414  		return ms
   415  	}
   416  	return mi.MessageOf(x)
   417  }
   418  
   419  // Deprecated: Use Label.ProtoReflect.Descriptor instead.
   420  func (*Label) Descriptor() ([]byte, []int) {
   421  	return file_profile_proto_rawDescGZIP(), []int{3}
   422  }
   423  
   424  func (x *Label) GetKey() int64 {
   425  	if x != nil {
   426  		return x.Key
   427  	}
   428  	return 0
   429  }
   430  
   431  func (x *Label) GetStr() int64 {
   432  	if x != nil {
   433  		return x.Str
   434  	}
   435  	return 0
   436  }
   437  
   438  func (x *Label) GetNum() int64 {
   439  	if x != nil {
   440  		return x.Num
   441  	}
   442  	return 0
   443  }
   444  
   445  func (x *Label) GetNumUnit() int64 {
   446  	if x != nil {
   447  		return x.NumUnit
   448  	}
   449  	return 0
   450  }
   451  
   452  type Mapping struct {
   453  	state         protoimpl.MessageState
   454  	sizeCache     protoimpl.SizeCache
   455  	unknownFields protoimpl.UnknownFields
   456  
   457  	// Unique nonzero id for the mapping.
   458  	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
   459  	// Address at which the binary (or DLL) is loaded into memory.
   460  	MemoryStart uint64 `protobuf:"varint,2,opt,name=memory_start,json=memoryStart,proto3" json:"memory_start,omitempty"`
   461  	// The limit of the address range occupied by this mapping.
   462  	MemoryLimit uint64 `protobuf:"varint,3,opt,name=memory_limit,json=memoryLimit,proto3" json:"memory_limit,omitempty"`
   463  	// Offset in the binary that corresponds to the first mapped address.
   464  	FileOffset uint64 `protobuf:"varint,4,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"`
   465  	// The object this entry is loaded from.  This can be a filename on
   466  	// disk for the main binary and shared libraries, or virtual
   467  	// abstractions like "[vdso]".
   468  	Filename int64 `protobuf:"varint,5,opt,name=filename,proto3" json:"filename,omitempty"` // Index into string table
   469  	// A string that uniquely identifies a particular program version
   470  	// with high probability. E.g., for binaries generated by GNU tools,
   471  	// it could be the contents of the .note.gnu.build-id field.
   472  	BuildId int64 `protobuf:"varint,6,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"` // Index into string table
   473  	// The following fields indicate the resolution of symbolic info.
   474  	HasFunctions    bool `protobuf:"varint,7,opt,name=has_functions,json=hasFunctions,proto3" json:"has_functions,omitempty"`
   475  	HasFilenames    bool `protobuf:"varint,8,opt,name=has_filenames,json=hasFilenames,proto3" json:"has_filenames,omitempty"`
   476  	HasLineNumbers  bool `protobuf:"varint,9,opt,name=has_line_numbers,json=hasLineNumbers,proto3" json:"has_line_numbers,omitempty"`
   477  	HasInlineFrames bool `protobuf:"varint,10,opt,name=has_inline_frames,json=hasInlineFrames,proto3" json:"has_inline_frames,omitempty"`
   478  }
   479  
   480  func (x *Mapping) Reset() {
   481  	*x = Mapping{}
   482  	if protoimpl.UnsafeEnabled {
   483  		mi := &file_profile_proto_msgTypes[4]
   484  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   485  		ms.StoreMessageInfo(mi)
   486  	}
   487  }
   488  
   489  func (x *Mapping) String() string {
   490  	return protoimpl.X.MessageStringOf(x)
   491  }
   492  
   493  func (*Mapping) ProtoMessage() {}
   494  
   495  func (x *Mapping) ProtoReflect() protoreflect.Message {
   496  	mi := &file_profile_proto_msgTypes[4]
   497  	if protoimpl.UnsafeEnabled && x != nil {
   498  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   499  		if ms.LoadMessageInfo() == nil {
   500  			ms.StoreMessageInfo(mi)
   501  		}
   502  		return ms
   503  	}
   504  	return mi.MessageOf(x)
   505  }
   506  
   507  // Deprecated: Use Mapping.ProtoReflect.Descriptor instead.
   508  func (*Mapping) Descriptor() ([]byte, []int) {
   509  	return file_profile_proto_rawDescGZIP(), []int{4}
   510  }
   511  
   512  func (x *Mapping) GetId() uint64 {
   513  	if x != nil {
   514  		return x.Id
   515  	}
   516  	return 0
   517  }
   518  
   519  func (x *Mapping) GetMemoryStart() uint64 {
   520  	if x != nil {
   521  		return x.MemoryStart
   522  	}
   523  	return 0
   524  }
   525  
   526  func (x *Mapping) GetMemoryLimit() uint64 {
   527  	if x != nil {
   528  		return x.MemoryLimit
   529  	}
   530  	return 0
   531  }
   532  
   533  func (x *Mapping) GetFileOffset() uint64 {
   534  	if x != nil {
   535  		return x.FileOffset
   536  	}
   537  	return 0
   538  }
   539  
   540  func (x *Mapping) GetFilename() int64 {
   541  	if x != nil {
   542  		return x.Filename
   543  	}
   544  	return 0
   545  }
   546  
   547  func (x *Mapping) GetBuildId() int64 {
   548  	if x != nil {
   549  		return x.BuildId
   550  	}
   551  	return 0
   552  }
   553  
   554  func (x *Mapping) GetHasFunctions() bool {
   555  	if x != nil {
   556  		return x.HasFunctions
   557  	}
   558  	return false
   559  }
   560  
   561  func (x *Mapping) GetHasFilenames() bool {
   562  	if x != nil {
   563  		return x.HasFilenames
   564  	}
   565  	return false
   566  }
   567  
   568  func (x *Mapping) GetHasLineNumbers() bool {
   569  	if x != nil {
   570  		return x.HasLineNumbers
   571  	}
   572  	return false
   573  }
   574  
   575  func (x *Mapping) GetHasInlineFrames() bool {
   576  	if x != nil {
   577  		return x.HasInlineFrames
   578  	}
   579  	return false
   580  }
   581  
   582  // Describes function and line table debug information.
   583  type Location struct {
   584  	state         protoimpl.MessageState
   585  	sizeCache     protoimpl.SizeCache
   586  	unknownFields protoimpl.UnknownFields
   587  
   588  	// Unique nonzero id for the location.  A profile could use
   589  	// instruction addresses or any integer sequence as ids.
   590  	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
   591  	// The id of the corresponding profile.Mapping for this location.
   592  	// It can be unset if the mapping is unknown or not applicable for
   593  	// this profile type.
   594  	MappingId uint64 `protobuf:"varint,2,opt,name=mapping_id,json=mappingId,proto3" json:"mapping_id,omitempty"`
   595  	// The instruction address for this location, if available.  It
   596  	// should be within [Mapping.memory_start...Mapping.memory_limit]
   597  	// for the corresponding mapping. A non-leaf address may be in the
   598  	// middle of a call instruction. It is up to display tools to find
   599  	// the beginning of the instruction if necessary.
   600  	Address uint64 `protobuf:"varint,3,opt,name=address,proto3" json:"address,omitempty"`
   601  	// Multiple line indicates this location has inlined functions,
   602  	// where the last entry represents the caller into which the
   603  	// preceding entries were inlined.
   604  	//
   605  	// E.g., if memcpy() is inlined into printf:
   606  	//    line[0].function_name == "memcpy"
   607  	//    line[1].function_name == "printf"
   608  	Line []*Line `protobuf:"bytes,4,rep,name=line,proto3" json:"line,omitempty"`
   609  	// Provides an indication that multiple symbols map to this location's
   610  	// address, for example due to identical code folding by the linker. In that
   611  	// case the line information above represents one of the multiple
   612  	// symbols. This field must be recomputed when the symbolization state of the
   613  	// profile changes.
   614  	IsFolded bool `protobuf:"varint,5,opt,name=is_folded,json=isFolded,proto3" json:"is_folded,omitempty"`
   615  }
   616  
   617  func (x *Location) Reset() {
   618  	*x = Location{}
   619  	if protoimpl.UnsafeEnabled {
   620  		mi := &file_profile_proto_msgTypes[5]
   621  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   622  		ms.StoreMessageInfo(mi)
   623  	}
   624  }
   625  
   626  func (x *Location) String() string {
   627  	return protoimpl.X.MessageStringOf(x)
   628  }
   629  
   630  func (*Location) ProtoMessage() {}
   631  
   632  func (x *Location) ProtoReflect() protoreflect.Message {
   633  	mi := &file_profile_proto_msgTypes[5]
   634  	if protoimpl.UnsafeEnabled && x != nil {
   635  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   636  		if ms.LoadMessageInfo() == nil {
   637  			ms.StoreMessageInfo(mi)
   638  		}
   639  		return ms
   640  	}
   641  	return mi.MessageOf(x)
   642  }
   643  
   644  // Deprecated: Use Location.ProtoReflect.Descriptor instead.
   645  func (*Location) Descriptor() ([]byte, []int) {
   646  	return file_profile_proto_rawDescGZIP(), []int{5}
   647  }
   648  
   649  func (x *Location) GetId() uint64 {
   650  	if x != nil {
   651  		return x.Id
   652  	}
   653  	return 0
   654  }
   655  
   656  func (x *Location) GetMappingId() uint64 {
   657  	if x != nil {
   658  		return x.MappingId
   659  	}
   660  	return 0
   661  }
   662  
   663  func (x *Location) GetAddress() uint64 {
   664  	if x != nil {
   665  		return x.Address
   666  	}
   667  	return 0
   668  }
   669  
   670  func (x *Location) GetLine() []*Line {
   671  	if x != nil {
   672  		return x.Line
   673  	}
   674  	return nil
   675  }
   676  
   677  func (x *Location) GetIsFolded() bool {
   678  	if x != nil {
   679  		return x.IsFolded
   680  	}
   681  	return false
   682  }
   683  
   684  type Line struct {
   685  	state         protoimpl.MessageState
   686  	sizeCache     protoimpl.SizeCache
   687  	unknownFields protoimpl.UnknownFields
   688  
   689  	// The id of the corresponding profile.Function for this line.
   690  	FunctionId uint64 `protobuf:"varint,1,opt,name=function_id,json=functionId,proto3" json:"function_id,omitempty"`
   691  	// Line number in source code.
   692  	Line int64 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"`
   693  }
   694  
   695  func (x *Line) Reset() {
   696  	*x = Line{}
   697  	if protoimpl.UnsafeEnabled {
   698  		mi := &file_profile_proto_msgTypes[6]
   699  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   700  		ms.StoreMessageInfo(mi)
   701  	}
   702  }
   703  
   704  func (x *Line) String() string {
   705  	return protoimpl.X.MessageStringOf(x)
   706  }
   707  
   708  func (*Line) ProtoMessage() {}
   709  
   710  func (x *Line) ProtoReflect() protoreflect.Message {
   711  	mi := &file_profile_proto_msgTypes[6]
   712  	if protoimpl.UnsafeEnabled && x != nil {
   713  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   714  		if ms.LoadMessageInfo() == nil {
   715  			ms.StoreMessageInfo(mi)
   716  		}
   717  		return ms
   718  	}
   719  	return mi.MessageOf(x)
   720  }
   721  
   722  // Deprecated: Use Line.ProtoReflect.Descriptor instead.
   723  func (*Line) Descriptor() ([]byte, []int) {
   724  	return file_profile_proto_rawDescGZIP(), []int{6}
   725  }
   726  
   727  func (x *Line) GetFunctionId() uint64 {
   728  	if x != nil {
   729  		return x.FunctionId
   730  	}
   731  	return 0
   732  }
   733  
   734  func (x *Line) GetLine() int64 {
   735  	if x != nil {
   736  		return x.Line
   737  	}
   738  	return 0
   739  }
   740  
   741  type Function struct {
   742  	state         protoimpl.MessageState
   743  	sizeCache     protoimpl.SizeCache
   744  	unknownFields protoimpl.UnknownFields
   745  
   746  	// Unique nonzero id for the function.
   747  	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
   748  	// Name of the function, in human-readable form if available.
   749  	Name int64 `protobuf:"varint,2,opt,name=name,proto3" json:"name,omitempty"` // Index into string table
   750  	// Name of the function, as identified by the system.
   751  	// For instance, it can be a C++ mangled name.
   752  	SystemName int64 `protobuf:"varint,3,opt,name=system_name,json=systemName,proto3" json:"system_name,omitempty"` // Index into string table
   753  	// Source file containing the function.
   754  	Filename int64 `protobuf:"varint,4,opt,name=filename,proto3" json:"filename,omitempty"` // Index into string table
   755  	// Line number in source file.
   756  	StartLine int64 `protobuf:"varint,5,opt,name=start_line,json=startLine,proto3" json:"start_line,omitempty"`
   757  }
   758  
   759  func (x *Function) Reset() {
   760  	*x = Function{}
   761  	if protoimpl.UnsafeEnabled {
   762  		mi := &file_profile_proto_msgTypes[7]
   763  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   764  		ms.StoreMessageInfo(mi)
   765  	}
   766  }
   767  
   768  func (x *Function) String() string {
   769  	return protoimpl.X.MessageStringOf(x)
   770  }
   771  
   772  func (*Function) ProtoMessage() {}
   773  
   774  func (x *Function) ProtoReflect() protoreflect.Message {
   775  	mi := &file_profile_proto_msgTypes[7]
   776  	if protoimpl.UnsafeEnabled && x != nil {
   777  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   778  		if ms.LoadMessageInfo() == nil {
   779  			ms.StoreMessageInfo(mi)
   780  		}
   781  		return ms
   782  	}
   783  	return mi.MessageOf(x)
   784  }
   785  
   786  // Deprecated: Use Function.ProtoReflect.Descriptor instead.
   787  func (*Function) Descriptor() ([]byte, []int) {
   788  	return file_profile_proto_rawDescGZIP(), []int{7}
   789  }
   790  
   791  func (x *Function) GetId() uint64 {
   792  	if x != nil {
   793  		return x.Id
   794  	}
   795  	return 0
   796  }
   797  
   798  func (x *Function) GetName() int64 {
   799  	if x != nil {
   800  		return x.Name
   801  	}
   802  	return 0
   803  }
   804  
   805  func (x *Function) GetSystemName() int64 {
   806  	if x != nil {
   807  		return x.SystemName
   808  	}
   809  	return 0
   810  }
   811  
   812  func (x *Function) GetFilename() int64 {
   813  	if x != nil {
   814  		return x.Filename
   815  	}
   816  	return 0
   817  }
   818  
   819  func (x *Function) GetStartLine() int64 {
   820  	if x != nil {
   821  		return x.StartLine
   822  	}
   823  	return 0
   824  }
   825  
   826  var File_profile_proto protoreflect.FileDescriptor
   827  
   828  var file_profile_proto_rawDesc = []byte{
   829  	0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
   830  	0x17, 0x70, 0x65, 0x72, 0x66, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69,
   831  	0x6c, 0x65, 0x73, 0x2e, 0x74, 0x72, 0x65, 0x65, 0x22, 0x93, 0x05, 0x0a, 0x07, 0x50, 0x72, 0x6f,
   832  	0x66, 0x69, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x74,
   833  	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x72, 0x66,
   834  	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x74,
   835  	0x72, 0x65, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73,
   836  	0x61, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x61, 0x6d,
   837  	0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x65, 0x72, 0x66,
   838  	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x74,
   839  	0x72, 0x65, 0x65, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x73, 0x61, 0x6d, 0x70,
   840  	0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20,
   841  	0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
   842  	0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x74, 0x72, 0x65, 0x65, 0x2e, 0x4d, 0x61,
   843  	0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x3d,
   844  	0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
   845  	0x32, 0x21, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f,
   846  	0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x74, 0x72, 0x65, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74,
   847  	0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a,
   848  	0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
   849  	0x21, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x66,
   850  	0x69, 0x6c, 0x65, 0x73, 0x2e, 0x74, 0x72, 0x65, 0x65, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
   851  	0x6f, 0x6e, 0x52, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c,
   852  	0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x03,
   853  	0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12,
   854  	0x1f, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07,
   855  	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73,
   856  	0x12, 0x1f, 0x0a, 0x0b, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18,
   857  	0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6b, 0x65, 0x65, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65,
   858  	0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18,
   859  	0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x61, 0x6e, 0x6f, 0x73,
   860  	0x12, 0x25, 0x0a, 0x0e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6e,
   861  	0x6f, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
   862  	0x6f, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x69, 0x6f,
   863  	0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70,
   864  	0x65, 0x72, 0x66, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
   865  	0x73, 0x2e, 0x74, 0x72, 0x65, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65,
   866  	0x52, 0x0a, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06,
   867  	0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x65,
   868  	0x72, 0x69, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18,
   869  	0x0d, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2e,
   870  	0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65,
   871  	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x64, 0x65, 0x66,
   872  	0x61, 0x75, 0x6c, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33,
   873  	0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
   874  	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
   875  	0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x75,
   876  	0x6e, 0x69, 0x74, 0x22, 0x75, 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x1f, 0x0a,
   877  	0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03,
   878  	0x28, 0x04, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14,
   879  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x76,
   880  	0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20,
   881  	0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
   882  	0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x74, 0x72, 0x65, 0x65, 0x2e, 0x4c, 0x61,
   883  	0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x58, 0x0a, 0x05, 0x4c, 0x61,
   884  	0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
   885  	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x02, 0x20, 0x01,
   886  	0x28, 0x03, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03,
   887  	0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d,
   888  	0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x75, 0x6d,
   889  	0x55, 0x6e, 0x69, 0x74, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67,
   890  	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64,
   891  	0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
   892  	0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74,
   893  	0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x69,
   894  	0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
   895  	0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f,
   896  	0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c,
   897  	0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e,
   898  	0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e,
   899  	0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18,
   900  	0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x23,
   901  	0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
   902  	0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
   903  	0x6f, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e,
   904  	0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x46,
   905  	0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f,
   906  	0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01,
   907  	0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65,
   908  	0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
   909  	0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68,
   910  	0x61, 0x73, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa3,
   911  	0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69,
   912  	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d,
   913  	0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
   914  	0x09, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64,
   915  	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x61, 0x64, 0x64,
   916  	0x72, 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x03,
   917  	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x65, 0x72, 0x66, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x70,
   918  	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x74, 0x72, 0x65, 0x65, 0x2e, 0x4c, 0x69, 0x6e,
   919  	0x65, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x66, 0x6f,
   920  	0x6c, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x46, 0x6f,
   921  	0x6c, 0x64, 0x65, 0x64, 0x22, 0x3b, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
   922  	0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
   923  	0x04, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a,
   924  	0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e,
   925  	0x65, 0x22, 0x8a, 0x01, 0x0a, 0x08, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e,
   926  	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
   927  	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6e, 0x61,
   928  	0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d,
   929  	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e,
   930  	0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18,
   931  	0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12,
   932  	0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20,
   933  	0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x42, 0x0a,
   934  	0x5a, 0x08, 0x70, 0x6b, 0x67, 0x2f, 0x74, 0x72, 0x65, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
   935  	0x6f, 0x33,
   936  }
   937  
   938  var (
   939  	file_profile_proto_rawDescOnce sync.Once
   940  	file_profile_proto_rawDescData = file_profile_proto_rawDesc
   941  )
   942  
   943  func file_profile_proto_rawDescGZIP() []byte {
   944  	file_profile_proto_rawDescOnce.Do(func() {
   945  		file_profile_proto_rawDescData = protoimpl.X.CompressGZIP(file_profile_proto_rawDescData)
   946  	})
   947  	return file_profile_proto_rawDescData
   948  }
   949  
   950  var file_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
   951  var file_profile_proto_goTypes = []interface{}{
   952  	(*Profile)(nil),   // 0: perftools.profiles.tree.Profile
   953  	(*ValueType)(nil), // 1: perftools.profiles.tree.ValueType
   954  	(*Sample)(nil),    // 2: perftools.profiles.tree.Sample
   955  	(*Label)(nil),     // 3: perftools.profiles.tree.Label
   956  	(*Mapping)(nil),   // 4: perftools.profiles.tree.Mapping
   957  	(*Location)(nil),  // 5: perftools.profiles.tree.Location
   958  	(*Line)(nil),      // 6: perftools.profiles.tree.Line
   959  	(*Function)(nil),  // 7: perftools.profiles.tree.Function
   960  }
   961  var file_profile_proto_depIdxs = []int32{
   962  	1, // 0: perftools.profiles.tree.Profile.sample_type:type_name -> perftools.profiles.tree.ValueType
   963  	2, // 1: perftools.profiles.tree.Profile.sample:type_name -> perftools.profiles.tree.Sample
   964  	4, // 2: perftools.profiles.tree.Profile.mapping:type_name -> perftools.profiles.tree.Mapping
   965  	5, // 3: perftools.profiles.tree.Profile.location:type_name -> perftools.profiles.tree.Location
   966  	7, // 4: perftools.profiles.tree.Profile.function:type_name -> perftools.profiles.tree.Function
   967  	1, // 5: perftools.profiles.tree.Profile.period_type:type_name -> perftools.profiles.tree.ValueType
   968  	3, // 6: perftools.profiles.tree.Sample.label:type_name -> perftools.profiles.tree.Label
   969  	6, // 7: perftools.profiles.tree.Location.line:type_name -> perftools.profiles.tree.Line
   970  	8, // [8:8] is the sub-list for method output_type
   971  	8, // [8:8] is the sub-list for method input_type
   972  	8, // [8:8] is the sub-list for extension type_name
   973  	8, // [8:8] is the sub-list for extension extendee
   974  	0, // [0:8] is the sub-list for field type_name
   975  }
   976  
   977  func init() { file_profile_proto_init() }
   978  func file_profile_proto_init() {
   979  	if File_profile_proto != nil {
   980  		return
   981  	}
   982  	if !protoimpl.UnsafeEnabled {
   983  		file_profile_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   984  			switch v := v.(*Profile); i {
   985  			case 0:
   986  				return &v.state
   987  			case 1:
   988  				return &v.sizeCache
   989  			case 2:
   990  				return &v.unknownFields
   991  			default:
   992  				return nil
   993  			}
   994  		}
   995  		file_profile_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   996  			switch v := v.(*ValueType); i {
   997  			case 0:
   998  				return &v.state
   999  			case 1:
  1000  				return &v.sizeCache
  1001  			case 2:
  1002  				return &v.unknownFields
  1003  			default:
  1004  				return nil
  1005  			}
  1006  		}
  1007  		file_profile_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1008  			switch v := v.(*Sample); i {
  1009  			case 0:
  1010  				return &v.state
  1011  			case 1:
  1012  				return &v.sizeCache
  1013  			case 2:
  1014  				return &v.unknownFields
  1015  			default:
  1016  				return nil
  1017  			}
  1018  		}
  1019  		file_profile_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1020  			switch v := v.(*Label); i {
  1021  			case 0:
  1022  				return &v.state
  1023  			case 1:
  1024  				return &v.sizeCache
  1025  			case 2:
  1026  				return &v.unknownFields
  1027  			default:
  1028  				return nil
  1029  			}
  1030  		}
  1031  		file_profile_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1032  			switch v := v.(*Mapping); i {
  1033  			case 0:
  1034  				return &v.state
  1035  			case 1:
  1036  				return &v.sizeCache
  1037  			case 2:
  1038  				return &v.unknownFields
  1039  			default:
  1040  				return nil
  1041  			}
  1042  		}
  1043  		file_profile_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1044  			switch v := v.(*Location); i {
  1045  			case 0:
  1046  				return &v.state
  1047  			case 1:
  1048  				return &v.sizeCache
  1049  			case 2:
  1050  				return &v.unknownFields
  1051  			default:
  1052  				return nil
  1053  			}
  1054  		}
  1055  		file_profile_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1056  			switch v := v.(*Line); i {
  1057  			case 0:
  1058  				return &v.state
  1059  			case 1:
  1060  				return &v.sizeCache
  1061  			case 2:
  1062  				return &v.unknownFields
  1063  			default:
  1064  				return nil
  1065  			}
  1066  		}
  1067  		file_profile_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1068  			switch v := v.(*Function); i {
  1069  			case 0:
  1070  				return &v.state
  1071  			case 1:
  1072  				return &v.sizeCache
  1073  			case 2:
  1074  				return &v.unknownFields
  1075  			default:
  1076  				return nil
  1077  			}
  1078  		}
  1079  	}
  1080  	type x struct{}
  1081  	out := protoimpl.TypeBuilder{
  1082  		File: protoimpl.DescBuilder{
  1083  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1084  			RawDescriptor: file_profile_proto_rawDesc,
  1085  			NumEnums:      0,
  1086  			NumMessages:   8,
  1087  			NumExtensions: 0,
  1088  			NumServices:   0,
  1089  		},
  1090  		GoTypes:           file_profile_proto_goTypes,
  1091  		DependencyIndexes: file_profile_proto_depIdxs,
  1092  		MessageInfos:      file_profile_proto_msgTypes,
  1093  	}.Build()
  1094  	File_profile_proto = out.File
  1095  	file_profile_proto_rawDesc = nil
  1096  	file_profile_proto_goTypes = nil
  1097  	file_profile_proto_depIdxs = nil
  1098  }