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