metrics.pb.go 81 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101
  1. // Copyright 2018 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. // Code generated by protoc-gen-go. DO NOT EDIT.
  15. // versions:
  16. // protoc-gen-go v1.28.0
  17. // protoc v3.21.7
  18. // source: metrics.proto
  19. package metrics_proto
  20. import (
  21. protoreflect "google.golang.org/protobuf/reflect/protoreflect"
  22. protoimpl "google.golang.org/protobuf/runtime/protoimpl"
  23. reflect "reflect"
  24. sync "sync"
  25. )
  26. const (
  27. // Verify that this generated code is sufficiently up-to-date.
  28. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
  29. // Verify that runtime/protoimpl is sufficiently up-to-date.
  30. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
  31. )
  32. type MetricsBase_BuildVariant int32
  33. const (
  34. MetricsBase_USER MetricsBase_BuildVariant = 0
  35. MetricsBase_USERDEBUG MetricsBase_BuildVariant = 1
  36. MetricsBase_ENG MetricsBase_BuildVariant = 2
  37. )
  38. // Enum value maps for MetricsBase_BuildVariant.
  39. var (
  40. MetricsBase_BuildVariant_name = map[int32]string{
  41. 0: "USER",
  42. 1: "USERDEBUG",
  43. 2: "ENG",
  44. }
  45. MetricsBase_BuildVariant_value = map[string]int32{
  46. "USER": 0,
  47. "USERDEBUG": 1,
  48. "ENG": 2,
  49. }
  50. )
  51. func (x MetricsBase_BuildVariant) Enum() *MetricsBase_BuildVariant {
  52. p := new(MetricsBase_BuildVariant)
  53. *p = x
  54. return p
  55. }
  56. func (x MetricsBase_BuildVariant) String() string {
  57. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  58. }
  59. func (MetricsBase_BuildVariant) Descriptor() protoreflect.EnumDescriptor {
  60. return file_metrics_proto_enumTypes[0].Descriptor()
  61. }
  62. func (MetricsBase_BuildVariant) Type() protoreflect.EnumType {
  63. return &file_metrics_proto_enumTypes[0]
  64. }
  65. func (x MetricsBase_BuildVariant) Number() protoreflect.EnumNumber {
  66. return protoreflect.EnumNumber(x)
  67. }
  68. // Deprecated: Do not use.
  69. func (x *MetricsBase_BuildVariant) UnmarshalJSON(b []byte) error {
  70. num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
  71. if err != nil {
  72. return err
  73. }
  74. *x = MetricsBase_BuildVariant(num)
  75. return nil
  76. }
  77. // Deprecated: Use MetricsBase_BuildVariant.Descriptor instead.
  78. func (MetricsBase_BuildVariant) EnumDescriptor() ([]byte, []int) {
  79. return file_metrics_proto_rawDescGZIP(), []int{0, 0}
  80. }
  81. type MetricsBase_Arch int32
  82. const (
  83. MetricsBase_UNKNOWN MetricsBase_Arch = 0
  84. MetricsBase_ARM MetricsBase_Arch = 1
  85. MetricsBase_ARM64 MetricsBase_Arch = 2
  86. MetricsBase_X86 MetricsBase_Arch = 3
  87. MetricsBase_X86_64 MetricsBase_Arch = 4
  88. )
  89. // Enum value maps for MetricsBase_Arch.
  90. var (
  91. MetricsBase_Arch_name = map[int32]string{
  92. 0: "UNKNOWN",
  93. 1: "ARM",
  94. 2: "ARM64",
  95. 3: "X86",
  96. 4: "X86_64",
  97. }
  98. MetricsBase_Arch_value = map[string]int32{
  99. "UNKNOWN": 0,
  100. "ARM": 1,
  101. "ARM64": 2,
  102. "X86": 3,
  103. "X86_64": 4,
  104. }
  105. )
  106. func (x MetricsBase_Arch) Enum() *MetricsBase_Arch {
  107. p := new(MetricsBase_Arch)
  108. *p = x
  109. return p
  110. }
  111. func (x MetricsBase_Arch) String() string {
  112. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  113. }
  114. func (MetricsBase_Arch) Descriptor() protoreflect.EnumDescriptor {
  115. return file_metrics_proto_enumTypes[1].Descriptor()
  116. }
  117. func (MetricsBase_Arch) Type() protoreflect.EnumType {
  118. return &file_metrics_proto_enumTypes[1]
  119. }
  120. func (x MetricsBase_Arch) Number() protoreflect.EnumNumber {
  121. return protoreflect.EnumNumber(x)
  122. }
  123. // Deprecated: Do not use.
  124. func (x *MetricsBase_Arch) UnmarshalJSON(b []byte) error {
  125. num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
  126. if err != nil {
  127. return err
  128. }
  129. *x = MetricsBase_Arch(num)
  130. return nil
  131. }
  132. // Deprecated: Use MetricsBase_Arch.Descriptor instead.
  133. func (MetricsBase_Arch) EnumDescriptor() ([]byte, []int) {
  134. return file_metrics_proto_rawDescGZIP(), []int{0, 1}
  135. }
  136. type ModuleTypeInfo_BuildSystem int32
  137. const (
  138. ModuleTypeInfo_UNKNOWN ModuleTypeInfo_BuildSystem = 0
  139. ModuleTypeInfo_SOONG ModuleTypeInfo_BuildSystem = 1
  140. ModuleTypeInfo_MAKE ModuleTypeInfo_BuildSystem = 2
  141. )
  142. // Enum value maps for ModuleTypeInfo_BuildSystem.
  143. var (
  144. ModuleTypeInfo_BuildSystem_name = map[int32]string{
  145. 0: "UNKNOWN",
  146. 1: "SOONG",
  147. 2: "MAKE",
  148. }
  149. ModuleTypeInfo_BuildSystem_value = map[string]int32{
  150. "UNKNOWN": 0,
  151. "SOONG": 1,
  152. "MAKE": 2,
  153. }
  154. )
  155. func (x ModuleTypeInfo_BuildSystem) Enum() *ModuleTypeInfo_BuildSystem {
  156. p := new(ModuleTypeInfo_BuildSystem)
  157. *p = x
  158. return p
  159. }
  160. func (x ModuleTypeInfo_BuildSystem) String() string {
  161. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  162. }
  163. func (ModuleTypeInfo_BuildSystem) Descriptor() protoreflect.EnumDescriptor {
  164. return file_metrics_proto_enumTypes[2].Descriptor()
  165. }
  166. func (ModuleTypeInfo_BuildSystem) Type() protoreflect.EnumType {
  167. return &file_metrics_proto_enumTypes[2]
  168. }
  169. func (x ModuleTypeInfo_BuildSystem) Number() protoreflect.EnumNumber {
  170. return protoreflect.EnumNumber(x)
  171. }
  172. // Deprecated: Do not use.
  173. func (x *ModuleTypeInfo_BuildSystem) UnmarshalJSON(b []byte) error {
  174. num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
  175. if err != nil {
  176. return err
  177. }
  178. *x = ModuleTypeInfo_BuildSystem(num)
  179. return nil
  180. }
  181. // Deprecated: Use ModuleTypeInfo_BuildSystem.Descriptor instead.
  182. func (ModuleTypeInfo_BuildSystem) EnumDescriptor() ([]byte, []int) {
  183. return file_metrics_proto_rawDescGZIP(), []int{5, 0}
  184. }
  185. type ExpConfigFetcher_ConfigStatus int32
  186. const (
  187. ExpConfigFetcher_NO_CONFIG ExpConfigFetcher_ConfigStatus = 0
  188. ExpConfigFetcher_CONFIG ExpConfigFetcher_ConfigStatus = 1
  189. ExpConfigFetcher_ERROR ExpConfigFetcher_ConfigStatus = 2
  190. ExpConfigFetcher_MISSING_GCERT ExpConfigFetcher_ConfigStatus = 3
  191. )
  192. // Enum value maps for ExpConfigFetcher_ConfigStatus.
  193. var (
  194. ExpConfigFetcher_ConfigStatus_name = map[int32]string{
  195. 0: "NO_CONFIG",
  196. 1: "CONFIG",
  197. 2: "ERROR",
  198. 3: "MISSING_GCERT",
  199. }
  200. ExpConfigFetcher_ConfigStatus_value = map[string]int32{
  201. "NO_CONFIG": 0,
  202. "CONFIG": 1,
  203. "ERROR": 2,
  204. "MISSING_GCERT": 3,
  205. }
  206. )
  207. func (x ExpConfigFetcher_ConfigStatus) Enum() *ExpConfigFetcher_ConfigStatus {
  208. p := new(ExpConfigFetcher_ConfigStatus)
  209. *p = x
  210. return p
  211. }
  212. func (x ExpConfigFetcher_ConfigStatus) String() string {
  213. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  214. }
  215. func (ExpConfigFetcher_ConfigStatus) Descriptor() protoreflect.EnumDescriptor {
  216. return file_metrics_proto_enumTypes[3].Descriptor()
  217. }
  218. func (ExpConfigFetcher_ConfigStatus) Type() protoreflect.EnumType {
  219. return &file_metrics_proto_enumTypes[3]
  220. }
  221. func (x ExpConfigFetcher_ConfigStatus) Number() protoreflect.EnumNumber {
  222. return protoreflect.EnumNumber(x)
  223. }
  224. // Deprecated: Do not use.
  225. func (x *ExpConfigFetcher_ConfigStatus) UnmarshalJSON(b []byte) error {
  226. num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
  227. if err != nil {
  228. return err
  229. }
  230. *x = ExpConfigFetcher_ConfigStatus(num)
  231. return nil
  232. }
  233. // Deprecated: Use ExpConfigFetcher_ConfigStatus.Descriptor instead.
  234. func (ExpConfigFetcher_ConfigStatus) EnumDescriptor() ([]byte, []int) {
  235. return file_metrics_proto_rawDescGZIP(), []int{9, 0}
  236. }
  237. type MetricsBase struct {
  238. state protoimpl.MessageState
  239. sizeCache protoimpl.SizeCache
  240. unknownFields protoimpl.UnknownFields
  241. // Timestamp generated when the build starts.
  242. BuildDateTimestamp *int64 `protobuf:"varint,1,opt,name=build_date_timestamp,json=buildDateTimestamp" json:"build_date_timestamp,omitempty"`
  243. // It is usually used to specify the branch name [and release candidate].
  244. BuildId *string `protobuf:"bytes,2,opt,name=build_id,json=buildId" json:"build_id,omitempty"`
  245. // The platform version codename, eg. P, Q, REL.
  246. PlatformVersionCodename *string `protobuf:"bytes,3,opt,name=platform_version_codename,json=platformVersionCodename" json:"platform_version_codename,omitempty"`
  247. // The target product information, eg. aosp_arm.
  248. TargetProduct *string `protobuf:"bytes,4,opt,name=target_product,json=targetProduct" json:"target_product,omitempty"`
  249. // The target build variant information, eg. eng.
  250. TargetBuildVariant *MetricsBase_BuildVariant `protobuf:"varint,5,opt,name=target_build_variant,json=targetBuildVariant,enum=soong_build_metrics.MetricsBase_BuildVariant,def=2" json:"target_build_variant,omitempty"`
  251. // The target arch information, eg. arm.
  252. TargetArch *MetricsBase_Arch `protobuf:"varint,6,opt,name=target_arch,json=targetArch,enum=soong_build_metrics.MetricsBase_Arch,def=0" json:"target_arch,omitempty"`
  253. // The target arch variant information, eg. armv7-a-neon.
  254. TargetArchVariant *string `protobuf:"bytes,7,opt,name=target_arch_variant,json=targetArchVariant" json:"target_arch_variant,omitempty"`
  255. // The target cpu variant information, eg. generic.
  256. TargetCpuVariant *string `protobuf:"bytes,8,opt,name=target_cpu_variant,json=targetCpuVariant" json:"target_cpu_variant,omitempty"`
  257. // The host arch information, eg. x86_64.
  258. HostArch *MetricsBase_Arch `protobuf:"varint,9,opt,name=host_arch,json=hostArch,enum=soong_build_metrics.MetricsBase_Arch,def=0" json:"host_arch,omitempty"`
  259. // The host 2nd arch information, eg. x86.
  260. Host_2NdArch *MetricsBase_Arch `protobuf:"varint,10,opt,name=host_2nd_arch,json=host2ndArch,enum=soong_build_metrics.MetricsBase_Arch,def=0" json:"host_2nd_arch,omitempty"`
  261. // The host os information, eg. linux.
  262. HostOs *string `protobuf:"bytes,11,opt,name=host_os,json=hostOs" json:"host_os,omitempty"`
  263. // The host os extra information, eg. Linux-4.17.0-3rodete2-amd64-x86_64-Debian-GNU.
  264. HostOsExtra *string `protobuf:"bytes,12,opt,name=host_os_extra,json=hostOsExtra" json:"host_os_extra,omitempty"`
  265. // The host cross os information, eg. windows.
  266. HostCrossOs *string `protobuf:"bytes,13,opt,name=host_cross_os,json=hostCrossOs" json:"host_cross_os,omitempty"`
  267. // The host cross arch information, eg. x86.
  268. HostCrossArch *string `protobuf:"bytes,14,opt,name=host_cross_arch,json=hostCrossArch" json:"host_cross_arch,omitempty"`
  269. // The host cross 2nd arch information, eg. x86_64.
  270. HostCross_2NdArch *string `protobuf:"bytes,15,opt,name=host_cross_2nd_arch,json=hostCross2ndArch" json:"host_cross_2nd_arch,omitempty"`
  271. // The directory for generated built artifacts installation, eg. out.
  272. OutDir *string `protobuf:"bytes,16,opt,name=out_dir,json=outDir" json:"out_dir,omitempty"`
  273. // The metrics for calling various tools (microfactory) before Soong_UI starts.
  274. SetupTools []*PerfInfo `protobuf:"bytes,17,rep,name=setup_tools,json=setupTools" json:"setup_tools,omitempty"`
  275. // The metrics for calling Kati by multiple times.
  276. KatiRuns []*PerfInfo `protobuf:"bytes,18,rep,name=kati_runs,json=katiRuns" json:"kati_runs,omitempty"`
  277. // The metrics for calling Soong.
  278. SoongRuns []*PerfInfo `protobuf:"bytes,19,rep,name=soong_runs,json=soongRuns" json:"soong_runs,omitempty"`
  279. // The metrics for calling Ninja.
  280. NinjaRuns []*PerfInfo `protobuf:"bytes,20,rep,name=ninja_runs,json=ninjaRuns" json:"ninja_runs,omitempty"`
  281. // The metrics for the whole build
  282. Total *PerfInfo `protobuf:"bytes,21,opt,name=total" json:"total,omitempty"`
  283. // Deprecated because instead of embedding in a MetricsBase, we keep
  284. // SoongBuildMetrics in its own file
  285. //
  286. // Deprecated: Do not use.
  287. SoongBuildMetrics *SoongBuildMetrics `protobuf:"bytes,22,opt,name=soong_build_metrics,json=soongBuildMetrics" json:"soong_build_metrics,omitempty"`
  288. BuildConfig *BuildConfig `protobuf:"bytes,23,opt,name=build_config,json=buildConfig" json:"build_config,omitempty"`
  289. // The hostname of the machine.
  290. Hostname *string `protobuf:"bytes,24,opt,name=hostname" json:"hostname,omitempty"`
  291. // The system resource information such as total physical memory.
  292. SystemResourceInfo *SystemResourceInfo `protobuf:"bytes,25,opt,name=system_resource_info,json=systemResourceInfo" json:"system_resource_info,omitempty"`
  293. // The build command that the user entered to the build system.
  294. BuildCommand *string `protobuf:"bytes,26,opt,name=build_command,json=buildCommand" json:"build_command,omitempty"`
  295. // The metrics for calling Bazel.
  296. BazelRuns []*PerfInfo `protobuf:"bytes,27,rep,name=bazel_runs,json=bazelRuns" json:"bazel_runs,omitempty"`
  297. // The metrics of the experiment config fetcher
  298. ExpConfigFetcher *ExpConfigFetcher `protobuf:"bytes,28,opt,name=exp_config_fetcher,json=expConfigFetcher" json:"exp_config_fetcher,omitempty"`
  299. // Whether the build exited with a panic or non-zero exit code, includes both
  300. // non-zero exits of recorded phases and non-recorded phases of the build.
  301. NonZeroExit *bool `protobuf:"varint,29,opt,name=non_zero_exit,json=nonZeroExit" json:"non_zero_exit,omitempty"`
  302. // The error message due to a non-zero exit _only_ if it did not occur in a
  303. // recorded phase of the build.
  304. ErrorMessage *string `protobuf:"bytes,30,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
  305. // The Git Manifest for the user's branch.
  306. ManifestUrl *string `protobuf:"bytes,31,opt,name=manifest_url,json=manifestUrl" json:"manifest_url,omitempty"`
  307. // The branch on which the build occurred.
  308. // Example: refs/heads/master
  309. Branch *string `protobuf:"bytes,32,opt,name=branch" json:"branch,omitempty"`
  310. // The metric of critical path in build
  311. CriticalPathInfo *CriticalPathInfo `protobuf:"bytes,33,opt,name=critical_path_info,json=criticalPathInfo" json:"critical_path_info,omitempty"`
  312. }
  313. // Default values for MetricsBase fields.
  314. const (
  315. Default_MetricsBase_TargetBuildVariant = MetricsBase_ENG
  316. Default_MetricsBase_TargetArch = MetricsBase_UNKNOWN
  317. Default_MetricsBase_HostArch = MetricsBase_UNKNOWN
  318. Default_MetricsBase_Host_2NdArch = MetricsBase_UNKNOWN
  319. )
  320. func (x *MetricsBase) Reset() {
  321. *x = MetricsBase{}
  322. if protoimpl.UnsafeEnabled {
  323. mi := &file_metrics_proto_msgTypes[0]
  324. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  325. ms.StoreMessageInfo(mi)
  326. }
  327. }
  328. func (x *MetricsBase) String() string {
  329. return protoimpl.X.MessageStringOf(x)
  330. }
  331. func (*MetricsBase) ProtoMessage() {}
  332. func (x *MetricsBase) ProtoReflect() protoreflect.Message {
  333. mi := &file_metrics_proto_msgTypes[0]
  334. if protoimpl.UnsafeEnabled && x != nil {
  335. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  336. if ms.LoadMessageInfo() == nil {
  337. ms.StoreMessageInfo(mi)
  338. }
  339. return ms
  340. }
  341. return mi.MessageOf(x)
  342. }
  343. // Deprecated: Use MetricsBase.ProtoReflect.Descriptor instead.
  344. func (*MetricsBase) Descriptor() ([]byte, []int) {
  345. return file_metrics_proto_rawDescGZIP(), []int{0}
  346. }
  347. func (x *MetricsBase) GetBuildDateTimestamp() int64 {
  348. if x != nil && x.BuildDateTimestamp != nil {
  349. return *x.BuildDateTimestamp
  350. }
  351. return 0
  352. }
  353. func (x *MetricsBase) GetBuildId() string {
  354. if x != nil && x.BuildId != nil {
  355. return *x.BuildId
  356. }
  357. return ""
  358. }
  359. func (x *MetricsBase) GetPlatformVersionCodename() string {
  360. if x != nil && x.PlatformVersionCodename != nil {
  361. return *x.PlatformVersionCodename
  362. }
  363. return ""
  364. }
  365. func (x *MetricsBase) GetTargetProduct() string {
  366. if x != nil && x.TargetProduct != nil {
  367. return *x.TargetProduct
  368. }
  369. return ""
  370. }
  371. func (x *MetricsBase) GetTargetBuildVariant() MetricsBase_BuildVariant {
  372. if x != nil && x.TargetBuildVariant != nil {
  373. return *x.TargetBuildVariant
  374. }
  375. return Default_MetricsBase_TargetBuildVariant
  376. }
  377. func (x *MetricsBase) GetTargetArch() MetricsBase_Arch {
  378. if x != nil && x.TargetArch != nil {
  379. return *x.TargetArch
  380. }
  381. return Default_MetricsBase_TargetArch
  382. }
  383. func (x *MetricsBase) GetTargetArchVariant() string {
  384. if x != nil && x.TargetArchVariant != nil {
  385. return *x.TargetArchVariant
  386. }
  387. return ""
  388. }
  389. func (x *MetricsBase) GetTargetCpuVariant() string {
  390. if x != nil && x.TargetCpuVariant != nil {
  391. return *x.TargetCpuVariant
  392. }
  393. return ""
  394. }
  395. func (x *MetricsBase) GetHostArch() MetricsBase_Arch {
  396. if x != nil && x.HostArch != nil {
  397. return *x.HostArch
  398. }
  399. return Default_MetricsBase_HostArch
  400. }
  401. func (x *MetricsBase) GetHost_2NdArch() MetricsBase_Arch {
  402. if x != nil && x.Host_2NdArch != nil {
  403. return *x.Host_2NdArch
  404. }
  405. return Default_MetricsBase_Host_2NdArch
  406. }
  407. func (x *MetricsBase) GetHostOs() string {
  408. if x != nil && x.HostOs != nil {
  409. return *x.HostOs
  410. }
  411. return ""
  412. }
  413. func (x *MetricsBase) GetHostOsExtra() string {
  414. if x != nil && x.HostOsExtra != nil {
  415. return *x.HostOsExtra
  416. }
  417. return ""
  418. }
  419. func (x *MetricsBase) GetHostCrossOs() string {
  420. if x != nil && x.HostCrossOs != nil {
  421. return *x.HostCrossOs
  422. }
  423. return ""
  424. }
  425. func (x *MetricsBase) GetHostCrossArch() string {
  426. if x != nil && x.HostCrossArch != nil {
  427. return *x.HostCrossArch
  428. }
  429. return ""
  430. }
  431. func (x *MetricsBase) GetHostCross_2NdArch() string {
  432. if x != nil && x.HostCross_2NdArch != nil {
  433. return *x.HostCross_2NdArch
  434. }
  435. return ""
  436. }
  437. func (x *MetricsBase) GetOutDir() string {
  438. if x != nil && x.OutDir != nil {
  439. return *x.OutDir
  440. }
  441. return ""
  442. }
  443. func (x *MetricsBase) GetSetupTools() []*PerfInfo {
  444. if x != nil {
  445. return x.SetupTools
  446. }
  447. return nil
  448. }
  449. func (x *MetricsBase) GetKatiRuns() []*PerfInfo {
  450. if x != nil {
  451. return x.KatiRuns
  452. }
  453. return nil
  454. }
  455. func (x *MetricsBase) GetSoongRuns() []*PerfInfo {
  456. if x != nil {
  457. return x.SoongRuns
  458. }
  459. return nil
  460. }
  461. func (x *MetricsBase) GetNinjaRuns() []*PerfInfo {
  462. if x != nil {
  463. return x.NinjaRuns
  464. }
  465. return nil
  466. }
  467. func (x *MetricsBase) GetTotal() *PerfInfo {
  468. if x != nil {
  469. return x.Total
  470. }
  471. return nil
  472. }
  473. // Deprecated: Do not use.
  474. func (x *MetricsBase) GetSoongBuildMetrics() *SoongBuildMetrics {
  475. if x != nil {
  476. return x.SoongBuildMetrics
  477. }
  478. return nil
  479. }
  480. func (x *MetricsBase) GetBuildConfig() *BuildConfig {
  481. if x != nil {
  482. return x.BuildConfig
  483. }
  484. return nil
  485. }
  486. func (x *MetricsBase) GetHostname() string {
  487. if x != nil && x.Hostname != nil {
  488. return *x.Hostname
  489. }
  490. return ""
  491. }
  492. func (x *MetricsBase) GetSystemResourceInfo() *SystemResourceInfo {
  493. if x != nil {
  494. return x.SystemResourceInfo
  495. }
  496. return nil
  497. }
  498. func (x *MetricsBase) GetBuildCommand() string {
  499. if x != nil && x.BuildCommand != nil {
  500. return *x.BuildCommand
  501. }
  502. return ""
  503. }
  504. func (x *MetricsBase) GetBazelRuns() []*PerfInfo {
  505. if x != nil {
  506. return x.BazelRuns
  507. }
  508. return nil
  509. }
  510. func (x *MetricsBase) GetExpConfigFetcher() *ExpConfigFetcher {
  511. if x != nil {
  512. return x.ExpConfigFetcher
  513. }
  514. return nil
  515. }
  516. func (x *MetricsBase) GetNonZeroExit() bool {
  517. if x != nil && x.NonZeroExit != nil {
  518. return *x.NonZeroExit
  519. }
  520. return false
  521. }
  522. func (x *MetricsBase) GetErrorMessage() string {
  523. if x != nil && x.ErrorMessage != nil {
  524. return *x.ErrorMessage
  525. }
  526. return ""
  527. }
  528. func (x *MetricsBase) GetManifestUrl() string {
  529. if x != nil && x.ManifestUrl != nil {
  530. return *x.ManifestUrl
  531. }
  532. return ""
  533. }
  534. func (x *MetricsBase) GetBranch() string {
  535. if x != nil && x.Branch != nil {
  536. return *x.Branch
  537. }
  538. return ""
  539. }
  540. func (x *MetricsBase) GetCriticalPathInfo() *CriticalPathInfo {
  541. if x != nil {
  542. return x.CriticalPathInfo
  543. }
  544. return nil
  545. }
  546. type BuildConfig struct {
  547. state protoimpl.MessageState
  548. sizeCache protoimpl.SizeCache
  549. unknownFields protoimpl.UnknownFields
  550. UseGoma *bool `protobuf:"varint,1,opt,name=use_goma,json=useGoma" json:"use_goma,omitempty"`
  551. UseRbe *bool `protobuf:"varint,2,opt,name=use_rbe,json=useRbe" json:"use_rbe,omitempty"`
  552. ForceUseGoma *bool `protobuf:"varint,3,opt,name=force_use_goma,json=forceUseGoma" json:"force_use_goma,omitempty"`
  553. // Whether the Bazel is acting as the Ninja executor for this build.
  554. BazelAsNinja *bool `protobuf:"varint,4,opt,name=bazel_as_ninja,json=bazelAsNinja" json:"bazel_as_ninja,omitempty"`
  555. // Whether build is occurring in a mixed build mode, where Bazel maintains the
  556. // definition and build of some modules in cooperation with Soong.
  557. BazelMixedBuild *bool `protobuf:"varint,5,opt,name=bazel_mixed_build,json=bazelMixedBuild" json:"bazel_mixed_build,omitempty"`
  558. // These are the targets soong passes to ninja, these targets include special
  559. // targets such as droid as well as the regular build targets.
  560. Targets []string `protobuf:"bytes,6,rep,name=targets" json:"targets,omitempty"`
  561. // Whether the user explicitly disabled bazel mixed builds for this build.
  562. ForceDisableBazelMixedBuild *bool `protobuf:"varint,7,opt,name=force_disable_bazel_mixed_build,json=forceDisableBazelMixedBuild" json:"force_disable_bazel_mixed_build,omitempty"`
  563. }
  564. func (x *BuildConfig) Reset() {
  565. *x = BuildConfig{}
  566. if protoimpl.UnsafeEnabled {
  567. mi := &file_metrics_proto_msgTypes[1]
  568. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  569. ms.StoreMessageInfo(mi)
  570. }
  571. }
  572. func (x *BuildConfig) String() string {
  573. return protoimpl.X.MessageStringOf(x)
  574. }
  575. func (*BuildConfig) ProtoMessage() {}
  576. func (x *BuildConfig) ProtoReflect() protoreflect.Message {
  577. mi := &file_metrics_proto_msgTypes[1]
  578. if protoimpl.UnsafeEnabled && x != nil {
  579. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  580. if ms.LoadMessageInfo() == nil {
  581. ms.StoreMessageInfo(mi)
  582. }
  583. return ms
  584. }
  585. return mi.MessageOf(x)
  586. }
  587. // Deprecated: Use BuildConfig.ProtoReflect.Descriptor instead.
  588. func (*BuildConfig) Descriptor() ([]byte, []int) {
  589. return file_metrics_proto_rawDescGZIP(), []int{1}
  590. }
  591. func (x *BuildConfig) GetUseGoma() bool {
  592. if x != nil && x.UseGoma != nil {
  593. return *x.UseGoma
  594. }
  595. return false
  596. }
  597. func (x *BuildConfig) GetUseRbe() bool {
  598. if x != nil && x.UseRbe != nil {
  599. return *x.UseRbe
  600. }
  601. return false
  602. }
  603. func (x *BuildConfig) GetForceUseGoma() bool {
  604. if x != nil && x.ForceUseGoma != nil {
  605. return *x.ForceUseGoma
  606. }
  607. return false
  608. }
  609. func (x *BuildConfig) GetBazelAsNinja() bool {
  610. if x != nil && x.BazelAsNinja != nil {
  611. return *x.BazelAsNinja
  612. }
  613. return false
  614. }
  615. func (x *BuildConfig) GetBazelMixedBuild() bool {
  616. if x != nil && x.BazelMixedBuild != nil {
  617. return *x.BazelMixedBuild
  618. }
  619. return false
  620. }
  621. func (x *BuildConfig) GetTargets() []string {
  622. if x != nil {
  623. return x.Targets
  624. }
  625. return nil
  626. }
  627. func (x *BuildConfig) GetForceDisableBazelMixedBuild() bool {
  628. if x != nil && x.ForceDisableBazelMixedBuild != nil {
  629. return *x.ForceDisableBazelMixedBuild
  630. }
  631. return false
  632. }
  633. type SystemResourceInfo struct {
  634. state protoimpl.MessageState
  635. sizeCache protoimpl.SizeCache
  636. unknownFields protoimpl.UnknownFields
  637. // The total physical memory in bytes.
  638. TotalPhysicalMemory *uint64 `protobuf:"varint,1,opt,name=total_physical_memory,json=totalPhysicalMemory" json:"total_physical_memory,omitempty"`
  639. // The total of available cores for building
  640. AvailableCpus *int32 `protobuf:"varint,2,opt,name=available_cpus,json=availableCpus" json:"available_cpus,omitempty"`
  641. }
  642. func (x *SystemResourceInfo) Reset() {
  643. *x = SystemResourceInfo{}
  644. if protoimpl.UnsafeEnabled {
  645. mi := &file_metrics_proto_msgTypes[2]
  646. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  647. ms.StoreMessageInfo(mi)
  648. }
  649. }
  650. func (x *SystemResourceInfo) String() string {
  651. return protoimpl.X.MessageStringOf(x)
  652. }
  653. func (*SystemResourceInfo) ProtoMessage() {}
  654. func (x *SystemResourceInfo) ProtoReflect() protoreflect.Message {
  655. mi := &file_metrics_proto_msgTypes[2]
  656. if protoimpl.UnsafeEnabled && x != nil {
  657. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  658. if ms.LoadMessageInfo() == nil {
  659. ms.StoreMessageInfo(mi)
  660. }
  661. return ms
  662. }
  663. return mi.MessageOf(x)
  664. }
  665. // Deprecated: Use SystemResourceInfo.ProtoReflect.Descriptor instead.
  666. func (*SystemResourceInfo) Descriptor() ([]byte, []int) {
  667. return file_metrics_proto_rawDescGZIP(), []int{2}
  668. }
  669. func (x *SystemResourceInfo) GetTotalPhysicalMemory() uint64 {
  670. if x != nil && x.TotalPhysicalMemory != nil {
  671. return *x.TotalPhysicalMemory
  672. }
  673. return 0
  674. }
  675. func (x *SystemResourceInfo) GetAvailableCpus() int32 {
  676. if x != nil && x.AvailableCpus != nil {
  677. return *x.AvailableCpus
  678. }
  679. return 0
  680. }
  681. type PerfInfo struct {
  682. state protoimpl.MessageState
  683. sizeCache protoimpl.SizeCache
  684. unknownFields protoimpl.UnknownFields
  685. // The description for the phase/action/part while the tool running.
  686. Description *string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
  687. // The name for the running phase/action/part.
  688. Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
  689. // The absolute start time.
  690. // The number of nanoseconds elapsed since January 1, 1970 UTC.
  691. StartTime *uint64 `protobuf:"varint,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
  692. // The real running time.
  693. // The number of nanoseconds elapsed since start_time.
  694. RealTime *uint64 `protobuf:"varint,4,opt,name=real_time,json=realTime" json:"real_time,omitempty"`
  695. // The number of MB for memory use (deprecated as it is too generic).
  696. //
  697. // Deprecated: Do not use.
  698. MemoryUse *uint64 `protobuf:"varint,5,opt,name=memory_use,json=memoryUse" json:"memory_use,omitempty"`
  699. // The resource information of each executed process.
  700. ProcessesResourceInfo []*ProcessResourceInfo `protobuf:"bytes,6,rep,name=processes_resource_info,json=processesResourceInfo" json:"processes_resource_info,omitempty"`
  701. // Whether the phase of tool running exited with a panic or non-zero exit
  702. // code.
  703. NonZeroExit *bool `protobuf:"varint,7,opt,name=non_zero_exit,json=nonZeroExit" json:"non_zero_exit,omitempty"`
  704. // The error message, if any, due to a non-zero exit.
  705. ErrorMessage *string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
  706. }
  707. func (x *PerfInfo) Reset() {
  708. *x = PerfInfo{}
  709. if protoimpl.UnsafeEnabled {
  710. mi := &file_metrics_proto_msgTypes[3]
  711. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  712. ms.StoreMessageInfo(mi)
  713. }
  714. }
  715. func (x *PerfInfo) String() string {
  716. return protoimpl.X.MessageStringOf(x)
  717. }
  718. func (*PerfInfo) ProtoMessage() {}
  719. func (x *PerfInfo) ProtoReflect() protoreflect.Message {
  720. mi := &file_metrics_proto_msgTypes[3]
  721. if protoimpl.UnsafeEnabled && x != nil {
  722. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  723. if ms.LoadMessageInfo() == nil {
  724. ms.StoreMessageInfo(mi)
  725. }
  726. return ms
  727. }
  728. return mi.MessageOf(x)
  729. }
  730. // Deprecated: Use PerfInfo.ProtoReflect.Descriptor instead.
  731. func (*PerfInfo) Descriptor() ([]byte, []int) {
  732. return file_metrics_proto_rawDescGZIP(), []int{3}
  733. }
  734. func (x *PerfInfo) GetDescription() string {
  735. if x != nil && x.Description != nil {
  736. return *x.Description
  737. }
  738. return ""
  739. }
  740. func (x *PerfInfo) GetName() string {
  741. if x != nil && x.Name != nil {
  742. return *x.Name
  743. }
  744. return ""
  745. }
  746. func (x *PerfInfo) GetStartTime() uint64 {
  747. if x != nil && x.StartTime != nil {
  748. return *x.StartTime
  749. }
  750. return 0
  751. }
  752. func (x *PerfInfo) GetRealTime() uint64 {
  753. if x != nil && x.RealTime != nil {
  754. return *x.RealTime
  755. }
  756. return 0
  757. }
  758. // Deprecated: Do not use.
  759. func (x *PerfInfo) GetMemoryUse() uint64 {
  760. if x != nil && x.MemoryUse != nil {
  761. return *x.MemoryUse
  762. }
  763. return 0
  764. }
  765. func (x *PerfInfo) GetProcessesResourceInfo() []*ProcessResourceInfo {
  766. if x != nil {
  767. return x.ProcessesResourceInfo
  768. }
  769. return nil
  770. }
  771. func (x *PerfInfo) GetNonZeroExit() bool {
  772. if x != nil && x.NonZeroExit != nil {
  773. return *x.NonZeroExit
  774. }
  775. return false
  776. }
  777. func (x *PerfInfo) GetErrorMessage() string {
  778. if x != nil && x.ErrorMessage != nil {
  779. return *x.ErrorMessage
  780. }
  781. return ""
  782. }
  783. type ProcessResourceInfo struct {
  784. state protoimpl.MessageState
  785. sizeCache protoimpl.SizeCache
  786. unknownFields protoimpl.UnknownFields
  787. // The name of the process for identification.
  788. Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
  789. // The amount of time spent executing in user space in microseconds.
  790. UserTimeMicros *uint64 `protobuf:"varint,2,opt,name=user_time_micros,json=userTimeMicros" json:"user_time_micros,omitempty"`
  791. // The amount of time spent executing in kernel mode in microseconds.
  792. SystemTimeMicros *uint64 `protobuf:"varint,3,opt,name=system_time_micros,json=systemTimeMicros" json:"system_time_micros,omitempty"`
  793. // The maximum resident set size memory used in kilobytes.
  794. MaxRssKb *uint64 `protobuf:"varint,4,opt,name=max_rss_kb,json=maxRssKb" json:"max_rss_kb,omitempty"`
  795. // The number of minor page faults serviced without any I/O activity.
  796. MinorPageFaults *uint64 `protobuf:"varint,5,opt,name=minor_page_faults,json=minorPageFaults" json:"minor_page_faults,omitempty"`
  797. // The number of major page faults serviced that required I/O activity.
  798. MajorPageFaults *uint64 `protobuf:"varint,6,opt,name=major_page_faults,json=majorPageFaults" json:"major_page_faults,omitempty"`
  799. // Total IO input in kilobytes.
  800. IoInputKb *uint64 `protobuf:"varint,7,opt,name=io_input_kb,json=ioInputKb" json:"io_input_kb,omitempty"`
  801. // Total IO output in kilobytes.
  802. IoOutputKb *uint64 `protobuf:"varint,8,opt,name=io_output_kb,json=ioOutputKb" json:"io_output_kb,omitempty"`
  803. // The number of voluntary context switches
  804. VoluntaryContextSwitches *uint64 `protobuf:"varint,9,opt,name=voluntary_context_switches,json=voluntaryContextSwitches" json:"voluntary_context_switches,omitempty"`
  805. // The number of involuntary context switches
  806. InvoluntaryContextSwitches *uint64 `protobuf:"varint,10,opt,name=involuntary_context_switches,json=involuntaryContextSwitches" json:"involuntary_context_switches,omitempty"`
  807. }
  808. func (x *ProcessResourceInfo) Reset() {
  809. *x = ProcessResourceInfo{}
  810. if protoimpl.UnsafeEnabled {
  811. mi := &file_metrics_proto_msgTypes[4]
  812. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  813. ms.StoreMessageInfo(mi)
  814. }
  815. }
  816. func (x *ProcessResourceInfo) String() string {
  817. return protoimpl.X.MessageStringOf(x)
  818. }
  819. func (*ProcessResourceInfo) ProtoMessage() {}
  820. func (x *ProcessResourceInfo) ProtoReflect() protoreflect.Message {
  821. mi := &file_metrics_proto_msgTypes[4]
  822. if protoimpl.UnsafeEnabled && x != nil {
  823. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  824. if ms.LoadMessageInfo() == nil {
  825. ms.StoreMessageInfo(mi)
  826. }
  827. return ms
  828. }
  829. return mi.MessageOf(x)
  830. }
  831. // Deprecated: Use ProcessResourceInfo.ProtoReflect.Descriptor instead.
  832. func (*ProcessResourceInfo) Descriptor() ([]byte, []int) {
  833. return file_metrics_proto_rawDescGZIP(), []int{4}
  834. }
  835. func (x *ProcessResourceInfo) GetName() string {
  836. if x != nil && x.Name != nil {
  837. return *x.Name
  838. }
  839. return ""
  840. }
  841. func (x *ProcessResourceInfo) GetUserTimeMicros() uint64 {
  842. if x != nil && x.UserTimeMicros != nil {
  843. return *x.UserTimeMicros
  844. }
  845. return 0
  846. }
  847. func (x *ProcessResourceInfo) GetSystemTimeMicros() uint64 {
  848. if x != nil && x.SystemTimeMicros != nil {
  849. return *x.SystemTimeMicros
  850. }
  851. return 0
  852. }
  853. func (x *ProcessResourceInfo) GetMaxRssKb() uint64 {
  854. if x != nil && x.MaxRssKb != nil {
  855. return *x.MaxRssKb
  856. }
  857. return 0
  858. }
  859. func (x *ProcessResourceInfo) GetMinorPageFaults() uint64 {
  860. if x != nil && x.MinorPageFaults != nil {
  861. return *x.MinorPageFaults
  862. }
  863. return 0
  864. }
  865. func (x *ProcessResourceInfo) GetMajorPageFaults() uint64 {
  866. if x != nil && x.MajorPageFaults != nil {
  867. return *x.MajorPageFaults
  868. }
  869. return 0
  870. }
  871. func (x *ProcessResourceInfo) GetIoInputKb() uint64 {
  872. if x != nil && x.IoInputKb != nil {
  873. return *x.IoInputKb
  874. }
  875. return 0
  876. }
  877. func (x *ProcessResourceInfo) GetIoOutputKb() uint64 {
  878. if x != nil && x.IoOutputKb != nil {
  879. return *x.IoOutputKb
  880. }
  881. return 0
  882. }
  883. func (x *ProcessResourceInfo) GetVoluntaryContextSwitches() uint64 {
  884. if x != nil && x.VoluntaryContextSwitches != nil {
  885. return *x.VoluntaryContextSwitches
  886. }
  887. return 0
  888. }
  889. func (x *ProcessResourceInfo) GetInvoluntaryContextSwitches() uint64 {
  890. if x != nil && x.InvoluntaryContextSwitches != nil {
  891. return *x.InvoluntaryContextSwitches
  892. }
  893. return 0
  894. }
  895. type ModuleTypeInfo struct {
  896. state protoimpl.MessageState
  897. sizeCache protoimpl.SizeCache
  898. unknownFields protoimpl.UnknownFields
  899. // The build system, e.g. Soong or Make.
  900. BuildSystem *ModuleTypeInfo_BuildSystem `protobuf:"varint,1,opt,name=build_system,json=buildSystem,enum=soong_build_metrics.ModuleTypeInfo_BuildSystem,def=0" json:"build_system,omitempty"`
  901. // The module type, e.g. java_library, cc_binary, and etc.
  902. ModuleType *string `protobuf:"bytes,2,opt,name=module_type,json=moduleType" json:"module_type,omitempty"`
  903. // The number of logical modules.
  904. NumOfModules *uint32 `protobuf:"varint,3,opt,name=num_of_modules,json=numOfModules" json:"num_of_modules,omitempty"`
  905. }
  906. // Default values for ModuleTypeInfo fields.
  907. const (
  908. Default_ModuleTypeInfo_BuildSystem = ModuleTypeInfo_UNKNOWN
  909. )
  910. func (x *ModuleTypeInfo) Reset() {
  911. *x = ModuleTypeInfo{}
  912. if protoimpl.UnsafeEnabled {
  913. mi := &file_metrics_proto_msgTypes[5]
  914. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  915. ms.StoreMessageInfo(mi)
  916. }
  917. }
  918. func (x *ModuleTypeInfo) String() string {
  919. return protoimpl.X.MessageStringOf(x)
  920. }
  921. func (*ModuleTypeInfo) ProtoMessage() {}
  922. func (x *ModuleTypeInfo) ProtoReflect() protoreflect.Message {
  923. mi := &file_metrics_proto_msgTypes[5]
  924. if protoimpl.UnsafeEnabled && x != nil {
  925. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  926. if ms.LoadMessageInfo() == nil {
  927. ms.StoreMessageInfo(mi)
  928. }
  929. return ms
  930. }
  931. return mi.MessageOf(x)
  932. }
  933. // Deprecated: Use ModuleTypeInfo.ProtoReflect.Descriptor instead.
  934. func (*ModuleTypeInfo) Descriptor() ([]byte, []int) {
  935. return file_metrics_proto_rawDescGZIP(), []int{5}
  936. }
  937. func (x *ModuleTypeInfo) GetBuildSystem() ModuleTypeInfo_BuildSystem {
  938. if x != nil && x.BuildSystem != nil {
  939. return *x.BuildSystem
  940. }
  941. return Default_ModuleTypeInfo_BuildSystem
  942. }
  943. func (x *ModuleTypeInfo) GetModuleType() string {
  944. if x != nil && x.ModuleType != nil {
  945. return *x.ModuleType
  946. }
  947. return ""
  948. }
  949. func (x *ModuleTypeInfo) GetNumOfModules() uint32 {
  950. if x != nil && x.NumOfModules != nil {
  951. return *x.NumOfModules
  952. }
  953. return 0
  954. }
  955. type CriticalUserJourneyMetrics struct {
  956. state protoimpl.MessageState
  957. sizeCache protoimpl.SizeCache
  958. unknownFields protoimpl.UnknownFields
  959. // The name of a critical user journey test.
  960. Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
  961. // The metrics produced when running the critical user journey test.
  962. Metrics *MetricsBase `protobuf:"bytes,2,opt,name=metrics" json:"metrics,omitempty"`
  963. }
  964. func (x *CriticalUserJourneyMetrics) Reset() {
  965. *x = CriticalUserJourneyMetrics{}
  966. if protoimpl.UnsafeEnabled {
  967. mi := &file_metrics_proto_msgTypes[6]
  968. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  969. ms.StoreMessageInfo(mi)
  970. }
  971. }
  972. func (x *CriticalUserJourneyMetrics) String() string {
  973. return protoimpl.X.MessageStringOf(x)
  974. }
  975. func (*CriticalUserJourneyMetrics) ProtoMessage() {}
  976. func (x *CriticalUserJourneyMetrics) ProtoReflect() protoreflect.Message {
  977. mi := &file_metrics_proto_msgTypes[6]
  978. if protoimpl.UnsafeEnabled && x != nil {
  979. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  980. if ms.LoadMessageInfo() == nil {
  981. ms.StoreMessageInfo(mi)
  982. }
  983. return ms
  984. }
  985. return mi.MessageOf(x)
  986. }
  987. // Deprecated: Use CriticalUserJourneyMetrics.ProtoReflect.Descriptor instead.
  988. func (*CriticalUserJourneyMetrics) Descriptor() ([]byte, []int) {
  989. return file_metrics_proto_rawDescGZIP(), []int{6}
  990. }
  991. func (x *CriticalUserJourneyMetrics) GetName() string {
  992. if x != nil && x.Name != nil {
  993. return *x.Name
  994. }
  995. return ""
  996. }
  997. func (x *CriticalUserJourneyMetrics) GetMetrics() *MetricsBase {
  998. if x != nil {
  999. return x.Metrics
  1000. }
  1001. return nil
  1002. }
  1003. type CriticalUserJourneysMetrics struct {
  1004. state protoimpl.MessageState
  1005. sizeCache protoimpl.SizeCache
  1006. unknownFields protoimpl.UnknownFields
  1007. // A set of metrics from a run of the critical user journey tests.
  1008. Cujs []*CriticalUserJourneyMetrics `protobuf:"bytes,1,rep,name=cujs" json:"cujs,omitempty"`
  1009. }
  1010. func (x *CriticalUserJourneysMetrics) Reset() {
  1011. *x = CriticalUserJourneysMetrics{}
  1012. if protoimpl.UnsafeEnabled {
  1013. mi := &file_metrics_proto_msgTypes[7]
  1014. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1015. ms.StoreMessageInfo(mi)
  1016. }
  1017. }
  1018. func (x *CriticalUserJourneysMetrics) String() string {
  1019. return protoimpl.X.MessageStringOf(x)
  1020. }
  1021. func (*CriticalUserJourneysMetrics) ProtoMessage() {}
  1022. func (x *CriticalUserJourneysMetrics) ProtoReflect() protoreflect.Message {
  1023. mi := &file_metrics_proto_msgTypes[7]
  1024. if protoimpl.UnsafeEnabled && x != nil {
  1025. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1026. if ms.LoadMessageInfo() == nil {
  1027. ms.StoreMessageInfo(mi)
  1028. }
  1029. return ms
  1030. }
  1031. return mi.MessageOf(x)
  1032. }
  1033. // Deprecated: Use CriticalUserJourneysMetrics.ProtoReflect.Descriptor instead.
  1034. func (*CriticalUserJourneysMetrics) Descriptor() ([]byte, []int) {
  1035. return file_metrics_proto_rawDescGZIP(), []int{7}
  1036. }
  1037. func (x *CriticalUserJourneysMetrics) GetCujs() []*CriticalUserJourneyMetrics {
  1038. if x != nil {
  1039. return x.Cujs
  1040. }
  1041. return nil
  1042. }
  1043. type SoongBuildMetrics struct {
  1044. state protoimpl.MessageState
  1045. sizeCache protoimpl.SizeCache
  1046. unknownFields protoimpl.UnknownFields
  1047. // The number of modules handled by soong_build.
  1048. Modules *uint32 `protobuf:"varint,1,opt,name=modules" json:"modules,omitempty"`
  1049. // The total number of variants handled by soong_build.
  1050. Variants *uint32 `protobuf:"varint,2,opt,name=variants" json:"variants,omitempty"`
  1051. // The total number of allocations in soong_build.
  1052. TotalAllocCount *uint64 `protobuf:"varint,3,opt,name=total_alloc_count,json=totalAllocCount" json:"total_alloc_count,omitempty"`
  1053. // The total size of allocations in soong_build in bytes.
  1054. TotalAllocSize *uint64 `protobuf:"varint,4,opt,name=total_alloc_size,json=totalAllocSize" json:"total_alloc_size,omitempty"`
  1055. // The approximate maximum size of the heap in soong_build in bytes.
  1056. MaxHeapSize *uint64 `protobuf:"varint,5,opt,name=max_heap_size,json=maxHeapSize" json:"max_heap_size,omitempty"`
  1057. // Runtime metrics for soong_build execution.
  1058. Events []*PerfInfo `protobuf:"bytes,6,rep,name=events" json:"events,omitempty"`
  1059. // Mixed Builds information
  1060. MixedBuildsInfo *MixedBuildsInfo `protobuf:"bytes,7,opt,name=mixed_builds_info,json=mixedBuildsInfo" json:"mixed_builds_info,omitempty"`
  1061. }
  1062. func (x *SoongBuildMetrics) Reset() {
  1063. *x = SoongBuildMetrics{}
  1064. if protoimpl.UnsafeEnabled {
  1065. mi := &file_metrics_proto_msgTypes[8]
  1066. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1067. ms.StoreMessageInfo(mi)
  1068. }
  1069. }
  1070. func (x *SoongBuildMetrics) String() string {
  1071. return protoimpl.X.MessageStringOf(x)
  1072. }
  1073. func (*SoongBuildMetrics) ProtoMessage() {}
  1074. func (x *SoongBuildMetrics) ProtoReflect() protoreflect.Message {
  1075. mi := &file_metrics_proto_msgTypes[8]
  1076. if protoimpl.UnsafeEnabled && x != nil {
  1077. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1078. if ms.LoadMessageInfo() == nil {
  1079. ms.StoreMessageInfo(mi)
  1080. }
  1081. return ms
  1082. }
  1083. return mi.MessageOf(x)
  1084. }
  1085. // Deprecated: Use SoongBuildMetrics.ProtoReflect.Descriptor instead.
  1086. func (*SoongBuildMetrics) Descriptor() ([]byte, []int) {
  1087. return file_metrics_proto_rawDescGZIP(), []int{8}
  1088. }
  1089. func (x *SoongBuildMetrics) GetModules() uint32 {
  1090. if x != nil && x.Modules != nil {
  1091. return *x.Modules
  1092. }
  1093. return 0
  1094. }
  1095. func (x *SoongBuildMetrics) GetVariants() uint32 {
  1096. if x != nil && x.Variants != nil {
  1097. return *x.Variants
  1098. }
  1099. return 0
  1100. }
  1101. func (x *SoongBuildMetrics) GetTotalAllocCount() uint64 {
  1102. if x != nil && x.TotalAllocCount != nil {
  1103. return *x.TotalAllocCount
  1104. }
  1105. return 0
  1106. }
  1107. func (x *SoongBuildMetrics) GetTotalAllocSize() uint64 {
  1108. if x != nil && x.TotalAllocSize != nil {
  1109. return *x.TotalAllocSize
  1110. }
  1111. return 0
  1112. }
  1113. func (x *SoongBuildMetrics) GetMaxHeapSize() uint64 {
  1114. if x != nil && x.MaxHeapSize != nil {
  1115. return *x.MaxHeapSize
  1116. }
  1117. return 0
  1118. }
  1119. func (x *SoongBuildMetrics) GetEvents() []*PerfInfo {
  1120. if x != nil {
  1121. return x.Events
  1122. }
  1123. return nil
  1124. }
  1125. func (x *SoongBuildMetrics) GetMixedBuildsInfo() *MixedBuildsInfo {
  1126. if x != nil {
  1127. return x.MixedBuildsInfo
  1128. }
  1129. return nil
  1130. }
  1131. type ExpConfigFetcher struct {
  1132. state protoimpl.MessageState
  1133. sizeCache protoimpl.SizeCache
  1134. unknownFields protoimpl.UnknownFields
  1135. // The result of the call to expconfigfetcher
  1136. // NO_CONFIG - Not part of experiment
  1137. // CONFIG - Part of experiment, config copied successfully
  1138. // ERROR - expconfigfetcher failed
  1139. Status *ExpConfigFetcher_ConfigStatus `protobuf:"varint,1,opt,name=status,enum=soong_build_metrics.ExpConfigFetcher_ConfigStatus" json:"status,omitempty"`
  1140. // The output config filename
  1141. Filename *string `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"`
  1142. // Time, in microseconds, taken by the expconfigfetcher
  1143. Micros *uint64 `protobuf:"varint,3,opt,name=micros" json:"micros,omitempty"`
  1144. }
  1145. func (x *ExpConfigFetcher) Reset() {
  1146. *x = ExpConfigFetcher{}
  1147. if protoimpl.UnsafeEnabled {
  1148. mi := &file_metrics_proto_msgTypes[9]
  1149. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1150. ms.StoreMessageInfo(mi)
  1151. }
  1152. }
  1153. func (x *ExpConfigFetcher) String() string {
  1154. return protoimpl.X.MessageStringOf(x)
  1155. }
  1156. func (*ExpConfigFetcher) ProtoMessage() {}
  1157. func (x *ExpConfigFetcher) ProtoReflect() protoreflect.Message {
  1158. mi := &file_metrics_proto_msgTypes[9]
  1159. if protoimpl.UnsafeEnabled && x != nil {
  1160. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1161. if ms.LoadMessageInfo() == nil {
  1162. ms.StoreMessageInfo(mi)
  1163. }
  1164. return ms
  1165. }
  1166. return mi.MessageOf(x)
  1167. }
  1168. // Deprecated: Use ExpConfigFetcher.ProtoReflect.Descriptor instead.
  1169. func (*ExpConfigFetcher) Descriptor() ([]byte, []int) {
  1170. return file_metrics_proto_rawDescGZIP(), []int{9}
  1171. }
  1172. func (x *ExpConfigFetcher) GetStatus() ExpConfigFetcher_ConfigStatus {
  1173. if x != nil && x.Status != nil {
  1174. return *x.Status
  1175. }
  1176. return ExpConfigFetcher_NO_CONFIG
  1177. }
  1178. func (x *ExpConfigFetcher) GetFilename() string {
  1179. if x != nil && x.Filename != nil {
  1180. return *x.Filename
  1181. }
  1182. return ""
  1183. }
  1184. func (x *ExpConfigFetcher) GetMicros() uint64 {
  1185. if x != nil && x.Micros != nil {
  1186. return *x.Micros
  1187. }
  1188. return 0
  1189. }
  1190. type MixedBuildsInfo struct {
  1191. state protoimpl.MessageState
  1192. sizeCache protoimpl.SizeCache
  1193. unknownFields protoimpl.UnknownFields
  1194. // Modules that are enabled for Mixed Builds.
  1195. MixedBuildEnabledModules []string `protobuf:"bytes,1,rep,name=mixed_build_enabled_modules,json=mixedBuildEnabledModules" json:"mixed_build_enabled_modules,omitempty"`
  1196. // Modules that are not enabled for MixedBuilds
  1197. MixedBuildDisabledModules []string `protobuf:"bytes,2,rep,name=mixed_build_disabled_modules,json=mixedBuildDisabledModules" json:"mixed_build_disabled_modules,omitempty"`
  1198. }
  1199. func (x *MixedBuildsInfo) Reset() {
  1200. *x = MixedBuildsInfo{}
  1201. if protoimpl.UnsafeEnabled {
  1202. mi := &file_metrics_proto_msgTypes[10]
  1203. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1204. ms.StoreMessageInfo(mi)
  1205. }
  1206. }
  1207. func (x *MixedBuildsInfo) String() string {
  1208. return protoimpl.X.MessageStringOf(x)
  1209. }
  1210. func (*MixedBuildsInfo) ProtoMessage() {}
  1211. func (x *MixedBuildsInfo) ProtoReflect() protoreflect.Message {
  1212. mi := &file_metrics_proto_msgTypes[10]
  1213. if protoimpl.UnsafeEnabled && x != nil {
  1214. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1215. if ms.LoadMessageInfo() == nil {
  1216. ms.StoreMessageInfo(mi)
  1217. }
  1218. return ms
  1219. }
  1220. return mi.MessageOf(x)
  1221. }
  1222. // Deprecated: Use MixedBuildsInfo.ProtoReflect.Descriptor instead.
  1223. func (*MixedBuildsInfo) Descriptor() ([]byte, []int) {
  1224. return file_metrics_proto_rawDescGZIP(), []int{10}
  1225. }
  1226. func (x *MixedBuildsInfo) GetMixedBuildEnabledModules() []string {
  1227. if x != nil {
  1228. return x.MixedBuildEnabledModules
  1229. }
  1230. return nil
  1231. }
  1232. func (x *MixedBuildsInfo) GetMixedBuildDisabledModules() []string {
  1233. if x != nil {
  1234. return x.MixedBuildDisabledModules
  1235. }
  1236. return nil
  1237. }
  1238. type CriticalPathInfo struct {
  1239. state protoimpl.MessageState
  1240. sizeCache protoimpl.SizeCache
  1241. unknownFields protoimpl.UnknownFields
  1242. // Real time which the build system spent
  1243. ElapsedTime *uint64 `protobuf:"varint,1,opt,name=elapsed_time,json=elapsedTime" json:"elapsed_time,omitempty"`
  1244. // The sum of execution time of the longest path from leave to the root
  1245. CriticalPathTime *uint64 `protobuf:"varint,2,opt,name=critical_path_time,json=criticalPathTime" json:"critical_path_time,omitempty"`
  1246. // Detailed job information in a critical path.
  1247. CriticalPath []*JobInfo `protobuf:"bytes,4,rep,name=critical_path,json=criticalPath" json:"critical_path,omitempty"`
  1248. }
  1249. func (x *CriticalPathInfo) Reset() {
  1250. *x = CriticalPathInfo{}
  1251. if protoimpl.UnsafeEnabled {
  1252. mi := &file_metrics_proto_msgTypes[11]
  1253. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1254. ms.StoreMessageInfo(mi)
  1255. }
  1256. }
  1257. func (x *CriticalPathInfo) String() string {
  1258. return protoimpl.X.MessageStringOf(x)
  1259. }
  1260. func (*CriticalPathInfo) ProtoMessage() {}
  1261. func (x *CriticalPathInfo) ProtoReflect() protoreflect.Message {
  1262. mi := &file_metrics_proto_msgTypes[11]
  1263. if protoimpl.UnsafeEnabled && x != nil {
  1264. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1265. if ms.LoadMessageInfo() == nil {
  1266. ms.StoreMessageInfo(mi)
  1267. }
  1268. return ms
  1269. }
  1270. return mi.MessageOf(x)
  1271. }
  1272. // Deprecated: Use CriticalPathInfo.ProtoReflect.Descriptor instead.
  1273. func (*CriticalPathInfo) Descriptor() ([]byte, []int) {
  1274. return file_metrics_proto_rawDescGZIP(), []int{11}
  1275. }
  1276. func (x *CriticalPathInfo) GetElapsedTime() uint64 {
  1277. if x != nil && x.ElapsedTime != nil {
  1278. return *x.ElapsedTime
  1279. }
  1280. return 0
  1281. }
  1282. func (x *CriticalPathInfo) GetCriticalPathTime() uint64 {
  1283. if x != nil && x.CriticalPathTime != nil {
  1284. return *x.CriticalPathTime
  1285. }
  1286. return 0
  1287. }
  1288. func (x *CriticalPathInfo) GetCriticalPath() []*JobInfo {
  1289. if x != nil {
  1290. return x.CriticalPath
  1291. }
  1292. return nil
  1293. }
  1294. type JobInfo struct {
  1295. state protoimpl.MessageState
  1296. sizeCache protoimpl.SizeCache
  1297. unknownFields protoimpl.UnknownFields
  1298. // Real time which a job spent
  1299. ElapsedTime *uint64 `protobuf:"varint,1,opt,name=elapsed_time,json=elapsedTime" json:"elapsed_time,omitempty"`
  1300. // Description of a job
  1301. JobDescription *string `protobuf:"bytes,2,opt,name=job_description,json=jobDescription" json:"job_description,omitempty"`
  1302. }
  1303. func (x *JobInfo) Reset() {
  1304. *x = JobInfo{}
  1305. if protoimpl.UnsafeEnabled {
  1306. mi := &file_metrics_proto_msgTypes[12]
  1307. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1308. ms.StoreMessageInfo(mi)
  1309. }
  1310. }
  1311. func (x *JobInfo) String() string {
  1312. return protoimpl.X.MessageStringOf(x)
  1313. }
  1314. func (*JobInfo) ProtoMessage() {}
  1315. func (x *JobInfo) ProtoReflect() protoreflect.Message {
  1316. mi := &file_metrics_proto_msgTypes[12]
  1317. if protoimpl.UnsafeEnabled && x != nil {
  1318. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1319. if ms.LoadMessageInfo() == nil {
  1320. ms.StoreMessageInfo(mi)
  1321. }
  1322. return ms
  1323. }
  1324. return mi.MessageOf(x)
  1325. }
  1326. // Deprecated: Use JobInfo.ProtoReflect.Descriptor instead.
  1327. func (*JobInfo) Descriptor() ([]byte, []int) {
  1328. return file_metrics_proto_rawDescGZIP(), []int{12}
  1329. }
  1330. func (x *JobInfo) GetElapsedTime() uint64 {
  1331. if x != nil && x.ElapsedTime != nil {
  1332. return *x.ElapsedTime
  1333. }
  1334. return 0
  1335. }
  1336. func (x *JobInfo) GetJobDescription() string {
  1337. if x != nil && x.JobDescription != nil {
  1338. return *x.JobDescription
  1339. }
  1340. return ""
  1341. }
  1342. var File_metrics_proto protoreflect.FileDescriptor
  1343. var file_metrics_proto_rawDesc = []byte{
  1344. 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
  1345. 0x13, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74,
  1346. 0x72, 0x69, 0x63, 0x73, 0x22, 0x8a, 0x0f, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  1347. 0x42, 0x61, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x64, 0x61,
  1348. 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01,
  1349. 0x28, 0x03, 0x52, 0x12, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d,
  1350. 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f,
  1351. 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49,
  1352. 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x65,
  1353. 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
  1354. 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x56, 0x65,
  1355. 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a,
  1356. 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18,
  1357. 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f,
  1358. 0x64, 0x75, 0x63, 0x74, 0x12, 0x64, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62,
  1359. 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,
  1360. 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
  1361. 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  1362. 0x42, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
  1363. 0x74, 0x3a, 0x03, 0x45, 0x4e, 0x47, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x75,
  1364. 0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x61,
  1365. 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
  1366. 0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
  1367. 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73,
  1368. 0x65, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52,
  1369. 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x72, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x74,
  1370. 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61,
  1371. 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
  1372. 0x41, 0x72, 0x63, 0x68, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74,
  1373. 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e,
  1374. 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43,
  1375. 0x70, 0x75, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x68, 0x6f, 0x73,
  1376. 0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73,
  1377. 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
  1378. 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41,
  1379. 0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x08, 0x68, 0x6f,
  1380. 0x73, 0x74, 0x41, 0x72, 0x63, 0x68, 0x12, 0x52, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x32,
  1381. 0x6e, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e,
  1382. 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72,
  1383. 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73, 0x65, 0x2e,
  1384. 0x41, 0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x0b, 0x68,
  1385. 0x6f, 0x73, 0x74, 0x32, 0x6e, 0x64, 0x41, 0x72, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f,
  1386. 0x73, 0x74, 0x5f, 0x6f, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73,
  1387. 0x74, 0x4f, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6f, 0x73, 0x5f, 0x65,
  1388. 0x78, 0x74, 0x72, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x6f, 0x73, 0x74,
  1389. 0x4f, 0x73, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f,
  1390. 0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
  1391. 0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x4f, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x68,
  1392. 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0e,
  1393. 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x41,
  1394. 0x72, 0x63, 0x68, 0x12, 0x2d, 0x0a, 0x13, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x72, 0x6f, 0x73,
  1395. 0x73, 0x5f, 0x32, 0x6e, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
  1396. 0x52, 0x10, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x32, 0x6e, 0x64, 0x41, 0x72,
  1397. 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x10, 0x20,
  1398. 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x73,
  1399. 0x65, 0x74, 0x75, 0x70, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b,
  1400. 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d,
  1401. 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52,
  1402. 0x0a, 0x73, 0x65, 0x74, 0x75, 0x70, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x6b,
  1403. 0x61, 0x74, 0x69, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d,
  1404. 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74,
  1405. 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6b,
  1406. 0x61, 0x74, 0x69, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x6f, 0x6f, 0x6e, 0x67,
  1407. 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f,
  1408. 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
  1409. 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x73, 0x6f, 0x6f, 0x6e,
  1410. 0x67, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x5f, 0x72,
  1411. 0x75, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e,
  1412. 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
  1413. 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x52,
  1414. 0x75, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x15, 0x20, 0x01,
  1415. 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
  1416. 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66,
  1417. 0x6f, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x5a, 0x0a, 0x13, 0x73, 0x6f, 0x6f, 0x6e,
  1418. 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18,
  1419. 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75,
  1420. 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x6f, 0x6f, 0x6e,
  1421. 0x67, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18,
  1422. 0x01, 0x52, 0x11, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74,
  1423. 0x72, 0x69, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f,
  1424. 0x6e, 0x66, 0x69, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x6f, 0x6f,
  1425. 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  1426. 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x62, 0x75,
  1427. 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73,
  1428. 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73,
  1429. 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f,
  1430. 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20,
  1431. 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c,
  1432. 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
  1433. 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x73, 0x79,
  1434. 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
  1435. 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
  1436. 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f,
  1437. 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x72,
  1438. 0x75, 0x6e, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e,
  1439. 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
  1440. 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x52,
  1441. 0x75, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  1442. 0x67, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1443. 0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
  1444. 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46,
  1445. 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x10, 0x65, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1446. 0x67, 0x46, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f,
  1447. 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52,
  1448. 0x0b, 0x6e, 0x6f, 0x6e, 0x5a, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d,
  1449. 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20,
  1450. 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
  1451. 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x72,
  1452. 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
  1453. 0x74, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x20,
  1454. 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x53, 0x0a, 0x12,
  1455. 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x6e,
  1456. 0x66, 0x6f, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67,
  1457. 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43,
  1458. 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52,
  1459. 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66,
  1460. 0x6f, 0x22, 0x30, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
  1461. 0x74, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x55,
  1462. 0x53, 0x45, 0x52, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x4e,
  1463. 0x47, 0x10, 0x02, 0x22, 0x3c, 0x0a, 0x04, 0x41, 0x72, 0x63, 0x68, 0x12, 0x0b, 0x0a, 0x07, 0x55,
  1464. 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x52, 0x4d, 0x10,
  1465. 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x52, 0x4d, 0x36, 0x34, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03,
  1466. 0x58, 0x38, 0x36, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x58, 0x38, 0x36, 0x5f, 0x36, 0x34, 0x10,
  1467. 0x04, 0x22, 0x99, 0x02, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1468. 0x67, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x18, 0x01, 0x20,
  1469. 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x73, 0x65, 0x47, 0x6f, 0x6d, 0x61, 0x12, 0x17, 0x0a, 0x07,
  1470. 0x75, 0x73, 0x65, 0x5f, 0x72, 0x62, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75,
  1471. 0x73, 0x65, 0x52, 0x62, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75,
  1472. 0x73, 0x65, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66,
  1473. 0x6f, 0x72, 0x63, 0x65, 0x55, 0x73, 0x65, 0x47, 0x6f, 0x6d, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x62,
  1474. 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x18, 0x04, 0x20,
  1475. 0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x41, 0x73, 0x4e, 0x69, 0x6e, 0x6a,
  1476. 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x6d, 0x69, 0x78, 0x65, 0x64,
  1477. 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x62, 0x61,
  1478. 0x7a, 0x65, 0x6c, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x18, 0x0a,
  1479. 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
  1480. 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x66, 0x6f, 0x72, 0x63, 0x65,
  1481. 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x6d,
  1482. 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
  1483. 0x52, 0x1b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61,
  1484. 0x7a, 0x65, 0x6c, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x6f, 0x0a,
  1485. 0x12, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
  1486. 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x68, 0x79,
  1487. 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01,
  1488. 0x28, 0x04, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61,
  1489. 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c,
  1490. 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
  1491. 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x70, 0x75, 0x73, 0x22, 0xca,
  1492. 0x02, 0x0a, 0x08, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x64,
  1493. 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  1494. 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a,
  1495. 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
  1496. 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
  1497. 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
  1498. 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20,
  1499. 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a,
  1500. 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
  1501. 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x65,
  1502. 0x12, 0x60, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65,
  1503. 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28,
  1504. 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f,
  1505. 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
  1506. 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x15, 0x70, 0x72, 0x6f,
  1507. 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e,
  1508. 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x65,
  1509. 0x78, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6e, 0x6f, 0x6e, 0x5a, 0x65,
  1510. 0x72, 0x6f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,
  1511. 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65,
  1512. 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb9, 0x03, 0x0a, 0x13,
  1513. 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
  1514. 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
  1515. 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f,
  1516. 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
  1517. 0x04, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f,
  1518. 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65,
  1519. 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x73,
  1520. 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12,
  1521. 0x1c, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x73, 0x73, 0x5f, 0x6b, 0x62, 0x18, 0x04, 0x20,
  1522. 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x52, 0x73, 0x73, 0x4b, 0x62, 0x12, 0x2a, 0x0a,
  1523. 0x11, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x75, 0x6c,
  1524. 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x50,
  1525. 0x61, 0x67, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x6a,
  1526. 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06,
  1527. 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x46,
  1528. 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x69, 0x6e, 0x70, 0x75,
  1529. 0x74, 0x5f, 0x6b, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6f, 0x49, 0x6e,
  1530. 0x70, 0x75, 0x74, 0x4b, 0x62, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x6f, 0x5f, 0x6f, 0x75, 0x74, 0x70,
  1531. 0x75, 0x74, 0x5f, 0x6b, 0x62, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6f, 0x4f,
  1532. 0x75, 0x74, 0x70, 0x75, 0x74, 0x4b, 0x62, 0x12, 0x3c, 0x0a, 0x1a, 0x76, 0x6f, 0x6c, 0x75, 0x6e,
  1533. 0x74, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x77, 0x69,
  1534. 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x76, 0x6f, 0x6c,
  1535. 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x53, 0x77, 0x69,
  1536. 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1c, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x75, 0x6e,
  1537. 0x74, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x77, 0x69,
  1538. 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x69, 0x6e, 0x76,
  1539. 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x53,
  1540. 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x75,
  1541. 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5b, 0x0a, 0x0c, 0x62, 0x75,
  1542. 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
  1543. 0x32, 0x2f, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d,
  1544. 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70,
  1545. 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x79, 0x73, 0x74, 0x65,
  1546. 0x6d, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c,
  1547. 0x64, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
  1548. 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f,
  1549. 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f,
  1550. 0x6f, 0x66, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
  1551. 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x2f,
  1552. 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x0b, 0x0a,
  1553. 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x4f,
  1554. 0x4f, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x41, 0x4b, 0x45, 0x10, 0x02, 0x22,
  1555. 0x6c, 0x0a, 0x1a, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4a,
  1556. 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a,
  1557. 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
  1558. 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01,
  1559. 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
  1560. 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  1561. 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x62, 0x0a,
  1562. 0x1b, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x6f, 0x75,
  1563. 0x72, 0x6e, 0x65, 0x79, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x04,
  1564. 0x63, 0x75, 0x6a, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x6f, 0x6f,
  1565. 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  1566. 0x2e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x6f, 0x75,
  1567. 0x72, 0x6e, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x04, 0x63, 0x75, 0x6a,
  1568. 0x73, 0x22, 0xcc, 0x02, 0x0a, 0x11, 0x53, 0x6f, 0x6f, 0x6e, 0x67, 0x42, 0x75, 0x69, 0x6c, 0x64,
  1569. 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
  1570. 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
  1571. 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20,
  1572. 0x01, 0x28, 0x0d, 0x52, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a,
  1573. 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x63, 0x6f, 0x75,
  1574. 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41,
  1575. 0x6c, 0x6c, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x74,
  1576. 0x61, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20,
  1577. 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x53,
  1578. 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x5f,
  1579. 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48,
  1580. 0x65, 0x61, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74,
  1581. 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f,
  1582. 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65,
  1583. 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x50,
  1584. 0x0a, 0x11, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x5f, 0x69,
  1585. 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x6f, 0x6f, 0x6e,
  1586. 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
  1587. 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52,
  1588. 0x0f, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f,
  1589. 0x22, 0xdb, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x65,
  1590. 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
  1591. 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75,
  1592. 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x70, 0x43,
  1593. 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e,
  1594. 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
  1595. 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
  1596. 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a,
  1597. 0x06, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d,
  1598. 0x69, 0x63, 0x72, 0x6f, 0x73, 0x22, 0x47, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53,
  1599. 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x46,
  1600. 0x49, 0x47, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01,
  1601. 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4d,
  1602. 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x47, 0x43, 0x45, 0x52, 0x54, 0x10, 0x03, 0x22, 0x91,
  1603. 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x49, 0x6e,
  1604. 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x1b, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c,
  1605. 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
  1606. 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75,
  1607. 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
  1608. 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
  1609. 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
  1610. 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75,
  1611. 0x69, 0x6c, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
  1612. 0x65, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50,
  1613. 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6c, 0x61, 0x70, 0x73,
  1614. 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65,
  1615. 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72,
  1616. 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65,
  1617. 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c,
  1618. 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x63, 0x72, 0x69, 0x74,
  1619. 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
  1620. 0x1c, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
  1621. 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x63,
  1622. 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x22, 0x55, 0x0a, 0x07, 0x4a,
  1623. 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65,
  1624. 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x6c,
  1625. 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6a, 0x6f, 0x62,
  1626. 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
  1627. 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
  1628. 0x6f, 0x6e, 0x42, 0x28, 0x5a, 0x26, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x73, 0x6f,
  1629. 0x6f, 0x6e, 0x67, 0x2f, 0x75, 0x69, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x6d,
  1630. 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  1631. }
  1632. var (
  1633. file_metrics_proto_rawDescOnce sync.Once
  1634. file_metrics_proto_rawDescData = file_metrics_proto_rawDesc
  1635. )
  1636. func file_metrics_proto_rawDescGZIP() []byte {
  1637. file_metrics_proto_rawDescOnce.Do(func() {
  1638. file_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_metrics_proto_rawDescData)
  1639. })
  1640. return file_metrics_proto_rawDescData
  1641. }
  1642. var file_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
  1643. var file_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
  1644. var file_metrics_proto_goTypes = []interface{}{
  1645. (MetricsBase_BuildVariant)(0), // 0: soong_build_metrics.MetricsBase.BuildVariant
  1646. (MetricsBase_Arch)(0), // 1: soong_build_metrics.MetricsBase.Arch
  1647. (ModuleTypeInfo_BuildSystem)(0), // 2: soong_build_metrics.ModuleTypeInfo.BuildSystem
  1648. (ExpConfigFetcher_ConfigStatus)(0), // 3: soong_build_metrics.ExpConfigFetcher.ConfigStatus
  1649. (*MetricsBase)(nil), // 4: soong_build_metrics.MetricsBase
  1650. (*BuildConfig)(nil), // 5: soong_build_metrics.BuildConfig
  1651. (*SystemResourceInfo)(nil), // 6: soong_build_metrics.SystemResourceInfo
  1652. (*PerfInfo)(nil), // 7: soong_build_metrics.PerfInfo
  1653. (*ProcessResourceInfo)(nil), // 8: soong_build_metrics.ProcessResourceInfo
  1654. (*ModuleTypeInfo)(nil), // 9: soong_build_metrics.ModuleTypeInfo
  1655. (*CriticalUserJourneyMetrics)(nil), // 10: soong_build_metrics.CriticalUserJourneyMetrics
  1656. (*CriticalUserJourneysMetrics)(nil), // 11: soong_build_metrics.CriticalUserJourneysMetrics
  1657. (*SoongBuildMetrics)(nil), // 12: soong_build_metrics.SoongBuildMetrics
  1658. (*ExpConfigFetcher)(nil), // 13: soong_build_metrics.ExpConfigFetcher
  1659. (*MixedBuildsInfo)(nil), // 14: soong_build_metrics.MixedBuildsInfo
  1660. (*CriticalPathInfo)(nil), // 15: soong_build_metrics.CriticalPathInfo
  1661. (*JobInfo)(nil), // 16: soong_build_metrics.JobInfo
  1662. }
  1663. var file_metrics_proto_depIdxs = []int32{
  1664. 0, // 0: soong_build_metrics.MetricsBase.target_build_variant:type_name -> soong_build_metrics.MetricsBase.BuildVariant
  1665. 1, // 1: soong_build_metrics.MetricsBase.target_arch:type_name -> soong_build_metrics.MetricsBase.Arch
  1666. 1, // 2: soong_build_metrics.MetricsBase.host_arch:type_name -> soong_build_metrics.MetricsBase.Arch
  1667. 1, // 3: soong_build_metrics.MetricsBase.host_2nd_arch:type_name -> soong_build_metrics.MetricsBase.Arch
  1668. 7, // 4: soong_build_metrics.MetricsBase.setup_tools:type_name -> soong_build_metrics.PerfInfo
  1669. 7, // 5: soong_build_metrics.MetricsBase.kati_runs:type_name -> soong_build_metrics.PerfInfo
  1670. 7, // 6: soong_build_metrics.MetricsBase.soong_runs:type_name -> soong_build_metrics.PerfInfo
  1671. 7, // 7: soong_build_metrics.MetricsBase.ninja_runs:type_name -> soong_build_metrics.PerfInfo
  1672. 7, // 8: soong_build_metrics.MetricsBase.total:type_name -> soong_build_metrics.PerfInfo
  1673. 12, // 9: soong_build_metrics.MetricsBase.soong_build_metrics:type_name -> soong_build_metrics.SoongBuildMetrics
  1674. 5, // 10: soong_build_metrics.MetricsBase.build_config:type_name -> soong_build_metrics.BuildConfig
  1675. 6, // 11: soong_build_metrics.MetricsBase.system_resource_info:type_name -> soong_build_metrics.SystemResourceInfo
  1676. 7, // 12: soong_build_metrics.MetricsBase.bazel_runs:type_name -> soong_build_metrics.PerfInfo
  1677. 13, // 13: soong_build_metrics.MetricsBase.exp_config_fetcher:type_name -> soong_build_metrics.ExpConfigFetcher
  1678. 15, // 14: soong_build_metrics.MetricsBase.critical_path_info:type_name -> soong_build_metrics.CriticalPathInfo
  1679. 8, // 15: soong_build_metrics.PerfInfo.processes_resource_info:type_name -> soong_build_metrics.ProcessResourceInfo
  1680. 2, // 16: soong_build_metrics.ModuleTypeInfo.build_system:type_name -> soong_build_metrics.ModuleTypeInfo.BuildSystem
  1681. 4, // 17: soong_build_metrics.CriticalUserJourneyMetrics.metrics:type_name -> soong_build_metrics.MetricsBase
  1682. 10, // 18: soong_build_metrics.CriticalUserJourneysMetrics.cujs:type_name -> soong_build_metrics.CriticalUserJourneyMetrics
  1683. 7, // 19: soong_build_metrics.SoongBuildMetrics.events:type_name -> soong_build_metrics.PerfInfo
  1684. 14, // 20: soong_build_metrics.SoongBuildMetrics.mixed_builds_info:type_name -> soong_build_metrics.MixedBuildsInfo
  1685. 3, // 21: soong_build_metrics.ExpConfigFetcher.status:type_name -> soong_build_metrics.ExpConfigFetcher.ConfigStatus
  1686. 16, // 22: soong_build_metrics.CriticalPathInfo.critical_path:type_name -> soong_build_metrics.JobInfo
  1687. 23, // [23:23] is the sub-list for method output_type
  1688. 23, // [23:23] is the sub-list for method input_type
  1689. 23, // [23:23] is the sub-list for extension type_name
  1690. 23, // [23:23] is the sub-list for extension extendee
  1691. 0, // [0:23] is the sub-list for field type_name
  1692. }
  1693. func init() { file_metrics_proto_init() }
  1694. func file_metrics_proto_init() {
  1695. if File_metrics_proto != nil {
  1696. return
  1697. }
  1698. if !protoimpl.UnsafeEnabled {
  1699. file_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1700. switch v := v.(*MetricsBase); i {
  1701. case 0:
  1702. return &v.state
  1703. case 1:
  1704. return &v.sizeCache
  1705. case 2:
  1706. return &v.unknownFields
  1707. default:
  1708. return nil
  1709. }
  1710. }
  1711. file_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1712. switch v := v.(*BuildConfig); i {
  1713. case 0:
  1714. return &v.state
  1715. case 1:
  1716. return &v.sizeCache
  1717. case 2:
  1718. return &v.unknownFields
  1719. default:
  1720. return nil
  1721. }
  1722. }
  1723. file_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1724. switch v := v.(*SystemResourceInfo); i {
  1725. case 0:
  1726. return &v.state
  1727. case 1:
  1728. return &v.sizeCache
  1729. case 2:
  1730. return &v.unknownFields
  1731. default:
  1732. return nil
  1733. }
  1734. }
  1735. file_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1736. switch v := v.(*PerfInfo); i {
  1737. case 0:
  1738. return &v.state
  1739. case 1:
  1740. return &v.sizeCache
  1741. case 2:
  1742. return &v.unknownFields
  1743. default:
  1744. return nil
  1745. }
  1746. }
  1747. file_metrics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1748. switch v := v.(*ProcessResourceInfo); i {
  1749. case 0:
  1750. return &v.state
  1751. case 1:
  1752. return &v.sizeCache
  1753. case 2:
  1754. return &v.unknownFields
  1755. default:
  1756. return nil
  1757. }
  1758. }
  1759. file_metrics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1760. switch v := v.(*ModuleTypeInfo); i {
  1761. case 0:
  1762. return &v.state
  1763. case 1:
  1764. return &v.sizeCache
  1765. case 2:
  1766. return &v.unknownFields
  1767. default:
  1768. return nil
  1769. }
  1770. }
  1771. file_metrics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1772. switch v := v.(*CriticalUserJourneyMetrics); i {
  1773. case 0:
  1774. return &v.state
  1775. case 1:
  1776. return &v.sizeCache
  1777. case 2:
  1778. return &v.unknownFields
  1779. default:
  1780. return nil
  1781. }
  1782. }
  1783. file_metrics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1784. switch v := v.(*CriticalUserJourneysMetrics); i {
  1785. case 0:
  1786. return &v.state
  1787. case 1:
  1788. return &v.sizeCache
  1789. case 2:
  1790. return &v.unknownFields
  1791. default:
  1792. return nil
  1793. }
  1794. }
  1795. file_metrics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1796. switch v := v.(*SoongBuildMetrics); i {
  1797. case 0:
  1798. return &v.state
  1799. case 1:
  1800. return &v.sizeCache
  1801. case 2:
  1802. return &v.unknownFields
  1803. default:
  1804. return nil
  1805. }
  1806. }
  1807. file_metrics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1808. switch v := v.(*ExpConfigFetcher); i {
  1809. case 0:
  1810. return &v.state
  1811. case 1:
  1812. return &v.sizeCache
  1813. case 2:
  1814. return &v.unknownFields
  1815. default:
  1816. return nil
  1817. }
  1818. }
  1819. file_metrics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  1820. switch v := v.(*MixedBuildsInfo); i {
  1821. case 0:
  1822. return &v.state
  1823. case 1:
  1824. return &v.sizeCache
  1825. case 2:
  1826. return &v.unknownFields
  1827. default:
  1828. return nil
  1829. }
  1830. }
  1831. file_metrics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  1832. switch v := v.(*CriticalPathInfo); i {
  1833. case 0:
  1834. return &v.state
  1835. case 1:
  1836. return &v.sizeCache
  1837. case 2:
  1838. return &v.unknownFields
  1839. default:
  1840. return nil
  1841. }
  1842. }
  1843. file_metrics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  1844. switch v := v.(*JobInfo); i {
  1845. case 0:
  1846. return &v.state
  1847. case 1:
  1848. return &v.sizeCache
  1849. case 2:
  1850. return &v.unknownFields
  1851. default:
  1852. return nil
  1853. }
  1854. }
  1855. }
  1856. type x struct{}
  1857. out := protoimpl.TypeBuilder{
  1858. File: protoimpl.DescBuilder{
  1859. GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1860. RawDescriptor: file_metrics_proto_rawDesc,
  1861. NumEnums: 4,
  1862. NumMessages: 13,
  1863. NumExtensions: 0,
  1864. NumServices: 0,
  1865. },
  1866. GoTypes: file_metrics_proto_goTypes,
  1867. DependencyIndexes: file_metrics_proto_depIdxs,
  1868. EnumInfos: file_metrics_proto_enumTypes,
  1869. MessageInfos: file_metrics_proto_msgTypes,
  1870. }.Build()
  1871. File_metrics_proto = out.File
  1872. file_metrics_proto_rawDesc = nil
  1873. file_metrics_proto_goTypes = nil
  1874. file_metrics_proto_depIdxs = nil
  1875. }