bot_scaling: Add message type for ResourceUsage

Introduce a new message type, ResourceUsage, to track the total number
of vms, cpus, and the memory amount allocated across all bot groups.
This will be used to track our rate against quota limits and provide an
immediate view of growth against quota.

Bug: chromium:1027593
Change-Id: Iaa062a6f08ac1e0adcf3aef52fd3b5432b584b24
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/infra/proto/+/2190238
Commit-Queue: Mike Nichols <mikenichols@chromium.org>
Tested-by: Mike Nichols <mikenichols@chromium.org>
Reviewed-by: Sean Abraham <seanabraham@chromium.org>
Reviewed-by: David Burger <dburger@chromium.org>
diff --git a/go/chromiumos/bot_scaling.pb.go b/go/chromiumos/bot_scaling.pb.go
index ecab572..8c68de9 100644
--- a/go/chromiumos/bot_scaling.pb.go
+++ b/go/chromiumos/bot_scaling.pb.go
@@ -662,10 +662,70 @@
 	return 0
 }
 
+// ResourceUsage based on the current resources assigned.
+type ResourceUsage struct {
+	// Number of VMs allocated across all bot groups.
+	Vms int32 `protobuf:"varint,1,opt,name=vms,proto3" json:"vms,omitempty"`
+	// Number of CPUs allocated across all bot groups.
+	Cpus float32 `protobuf:"fixed32,2,opt,name=cpus,proto3" json:"cpus,omitempty"`
+	// Amount of memory in GB allocated across all bot groups.
+	MemoryGb             float32  `protobuf:"fixed32,3,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ResourceUsage) Reset()         { *m = ResourceUsage{} }
+func (m *ResourceUsage) String() string { return proto.CompactTextString(m) }
+func (*ResourceUsage) ProtoMessage()    {}
+func (*ResourceUsage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_dbe70eabfd64e7ef, []int{5}
+}
+
+func (m *ResourceUsage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ResourceUsage.Unmarshal(m, b)
+}
+func (m *ResourceUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ResourceUsage.Marshal(b, m, deterministic)
+}
+func (m *ResourceUsage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ResourceUsage.Merge(m, src)
+}
+func (m *ResourceUsage) XXX_Size() int {
+	return xxx_messageInfo_ResourceUsage.Size(m)
+}
+func (m *ResourceUsage) XXX_DiscardUnknown() {
+	xxx_messageInfo_ResourceUsage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ResourceUsage proto.InternalMessageInfo
+
+func (m *ResourceUsage) GetVms() int32 {
+	if m != nil {
+		return m.Vms
+	}
+	return 0
+}
+
+func (m *ResourceUsage) GetCpus() float32 {
+	if m != nil {
+		return m.Cpus
+	}
+	return 0
+}
+
+func (m *ResourceUsage) GetMemoryGb() float32 {
+	if m != nil {
+		return m.MemoryGb
+	}
+	return 0
+}
+
 // All the actions that will be executed by RoboCrop.
 type RoboCropAction struct {
 	// List of an action per bot group scaled by RoboCrop.
 	ScalingActions       []*ScalingAction `protobuf:"bytes,1,rep,name=scaling_actions,json=scalingActions,proto3" json:"scaling_actions,omitempty"`
+	ResourceUsage        *ResourceUsage   `protobuf:"bytes,2,opt,name=resource_usage,json=resourceUsage,proto3" json:"resource_usage,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
 	XXX_unrecognized     []byte           `json:"-"`
 	XXX_sizecache        int32            `json:"-"`
@@ -675,7 +735,7 @@
 func (m *RoboCropAction) String() string { return proto.CompactTextString(m) }
 func (*RoboCropAction) ProtoMessage()    {}
 func (*RoboCropAction) Descriptor() ([]byte, []int) {
-	return fileDescriptor_dbe70eabfd64e7ef, []int{5}
+	return fileDescriptor_dbe70eabfd64e7ef, []int{6}
 }
 
 func (m *RoboCropAction) XXX_Unmarshal(b []byte) error {
@@ -703,6 +763,13 @@
 	return nil
 }
 
+func (m *RoboCropAction) GetResourceUsage() *ResourceUsage {
+	if m != nil {
+		return m.ResourceUsage
+	}
+	return nil
+}
+
 func init() {
 	proto.RegisterEnum("chromiumos.BotPolicy_Mode", BotPolicy_Mode_name, BotPolicy_Mode_value)
 	proto.RegisterEnum("chromiumos.BotPolicy_BotScalingMode", BotPolicy_BotScalingMode_name, BotPolicy_BotScalingMode_value)
@@ -715,66 +782,71 @@
 	proto.RegisterType((*BotPolicyCfg)(nil), "chromiumos.BotPolicyCfg")
 	proto.RegisterType((*ScalingAction)(nil), "chromiumos.ScalingAction")
 	proto.RegisterType((*ScalingAction_RegionalAction)(nil), "chromiumos.ScalingAction.RegionalAction")
+	proto.RegisterType((*ResourceUsage)(nil), "chromiumos.ResourceUsage")
 	proto.RegisterType((*RoboCropAction)(nil), "chromiumos.RoboCropAction")
 }
 
 func init() { proto.RegisterFile("chromiumos/bot_scaling.proto", fileDescriptor_dbe70eabfd64e7ef) }
 
 var fileDescriptor_dbe70eabfd64e7ef = []byte{
-	// 869 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdf, 0x6e, 0xe3, 0xc4,
-	0x17, 0x5e, 0x27, 0x4d, 0xb2, 0x39, 0x69, 0xd2, 0x74, 0xba, 0xbf, 0x9f, 0xbc, 0x05, 0x44, 0x88,
-	0x40, 0x58, 0x42, 0x4a, 0xa5, 0x82, 0x00, 0x89, 0xab, 0xe6, 0x4f, 0xbb, 0x11, 0xd4, 0x89, 0xc6,
-	0xad, 0x60, 0xe1, 0xc2, 0xb2, 0x93, 0xa9, 0x3b, 0x5a, 0xdb, 0x63, 0x66, 0x26, 0xbb, 0x74, 0xdf,
-	0x83, 0xc7, 0xe0, 0xad, 0x78, 0x10, 0x34, 0x7f, 0xdc, 0x24, 0x4d, 0xf6, 0x02, 0x89, 0x3b, 0x9f,
-	0x6f, 0xe6, 0x7c, 0x67, 0xce, 0x77, 0xbe, 0x93, 0xc0, 0xc7, 0x8b, 0x7b, 0xce, 0x32, 0xba, 0xca,
-	0x98, 0x38, 0x8b, 0x99, 0x0c, 0xc5, 0x22, 0x4a, 0x69, 0x9e, 0x0c, 0x0a, 0xce, 0x24, 0x43, 0xb0,
-	0x3e, 0xed, 0x53, 0x68, 0x0c, 0x99, 0xbc, 0x79, 0x28, 0x08, 0x7a, 0x09, 0xcf, 0xf5, 0x5d, 0xfa,
-	0x9e, 0xb8, 0x4e, 0xcf, 0xf1, 0x9a, 0xb8, 0x11, 0x33, 0x19, 0xd0, 0xf7, 0x04, 0xf5, 0xa1, 0xbd,
-	0x60, 0x9c, 0x88, 0xb0, 0x20, 0x3c, 0x8c, 0x99, 0x74, 0x2b, 0x3d, 0xc7, 0xab, 0xe1, 0x96, 0x06,
-	0xe7, 0x84, 0x0f, 0x99, 0x44, 0x9f, 0x42, 0xeb, 0x9e, 0xad, 0x78, 0xfa, 0x10, 0x2e, 0x98, 0x90,
-	0x6e, 0xb5, 0xe7, 0x78, 0x15, 0x0c, 0x06, 0x1a, 0x31, 0x21, 0xfb, 0xb7, 0x70, 0x1c, 0xbc, 0x8b,
-	0x78, 0x46, 0xf3, 0x64, 0x4c, 0x33, 0x92, 0x0b, 0xca, 0x72, 0x84, 0xe0, 0x20, 0x8f, 0xb2, 0xb2,
-	0xa0, 0xfe, 0x46, 0x2f, 0xa0, 0xf6, 0x36, 0x4a, 0x57, 0x44, 0x57, 0x69, 0x62, 0x13, 0xa0, 0xff,
-	0x43, 0x5d, 0x7f, 0x08, 0xb7, 0xda, 0xab, 0x7a, 0x4d, 0x6c, 0xa3, 0xfe, 0x9f, 0x0d, 0x68, 0x0e,
-	0x99, 0x9c, 0xb3, 0x94, 0x2e, 0x1e, 0xd0, 0x47, 0xd0, 0x54, 0x4d, 0x24, 0x9c, 0xad, 0x0a, 0x4b,
-	0xaa, 0xba, 0xba, 0x52, 0x31, 0x1a, 0x98, 0x0e, 0xe5, 0x43, 0x61, 0xb8, 0x5b, 0xe7, 0x27, 0x83,
-	0xb5, 0x16, 0x03, 0x2b, 0x84, 0x6e, 0x5b, 0x2b, 0xf2, 0x1a, 0x4e, 0xac, 0x72, 0x21, 0x27, 0x42,
-	0x72, 0xba, 0x90, 0x94, 0xe5, 0xba, 0xb5, 0xd6, 0xb9, 0xf7, 0x24, 0xd5, 0x3c, 0x60, 0x10, 0x98,
-	0x04, 0xbc, 0xbe, 0x8f, 0x91, 0xd8, 0xc1, 0xd0, 0x2f, 0x70, 0xc2, 0x49, 0x42, 0x59, 0xbe, 0xc9,
-	0x2c, 0xdc, 0x83, 0x5e, 0xd5, 0x6b, 0x9d, 0x7f, 0xb9, 0x9f, 0x1a, 0xeb, 0x84, 0x2d, 0x66, 0xfe,
-	0x14, 0x12, 0xc8, 0x87, 0x13, 0x61, 0x65, 0x0e, 0x97, 0xa5, 0xce, 0xc2, 0xad, 0x69, 0xe6, 0x4f,
-	0x36, 0x99, 0x77, 0xa6, 0x81, 0x91, 0x78, 0x0a, 0x09, 0xf4, 0x03, 0xb4, 0x0a, 0x5d, 0x3f, 0xcc,
-	0xd8, 0x92, 0xb8, 0xf5, 0x9e, 0xe3, 0x75, 0xce, 0x4f, 0xf7, 0xbf, 0xf0, 0x9a, 0x2d, 0x09, 0x06,
-	0x73, 0x5d, 0x7d, 0xa3, 0x2f, 0xa0, 0x93, 0x32, 0xf6, 0x26, 0x8e, 0x16, 0x6f, 0x42, 0x65, 0x05,
-	0xe1, 0x36, 0x7a, 0x8e, 0x77, 0x8c, 0xdb, 0x25, 0xfa, 0x4a, 0x81, 0xe8, 0x0a, 0x0e, 0x4b, 0xa1,
-	0x75, 0x91, 0xe7, 0xba, 0xc8, 0xe7, 0xfb, 0x8b, 0x0c, 0x99, 0xb4, 0x22, 0xeb, 0x72, 0x2d, 0xb1,
-	0x0e, 0x4e, 0xff, 0x72, 0x00, 0xed, 0x4e, 0x40, 0x79, 0x53, 0x0d, 0x7e, 0x41, 0xa8, 0x3a, 0xd1,
-	0xbe, 0xa8, 0x61, 0x88, 0x99, 0x1c, 0x19, 0xa4, 0xb4, 0xcd, 0x5d, 0xca, 0x18, 0xb7, 0xe6, 0x56,
-	0x56, 0xb9, 0x54, 0xb1, 0x5a, 0x8c, 0x8c, 0xe6, 0x21, 0x5d, 0xa6, 0x44, 0xcf, 0xbe, 0x86, 0x1b,
-	0x19, 0xcd, 0xa7, 0xcb, 0x94, 0xa8, 0x3c, 0x21, 0x49, 0x61, 0x96, 0xe6, 0xc0, 0xe4, 0x29, 0x40,
-	0x6f, 0xcd, 0x67, 0x70, 0xa8, 0x49, 0xa3, 0x34, 0x55, 0xad, 0xba, 0x35, 0xb3, 0x34, 0x8a, 0xd7,
-	0x42, 0xa7, 0xbf, 0xc1, 0xf1, 0xce, 0x54, 0x95, 0xd3, 0xcd, 0x5c, 0xad, 0x81, 0x6d, 0xa4, 0xf0,
-	0x82, 0x93, 0x3b, 0xfa, 0x87, 0x5d, 0x0c, 0x1b, 0x29, 0xfc, 0x1d, 0xa1, 0xc9, 0x7d, 0xb9, 0x74,
-	0x36, 0xea, 0x7f, 0x07, 0x07, 0x7a, 0x08, 0x5d, 0x38, 0xbc, 0xf5, 0x7f, 0xf4, 0x67, 0x3f, 0xfb,
-	0xe1, 0xf5, 0x6c, 0x3c, 0xe9, 0x3e, 0x43, 0x6d, 0x68, 0x5e, 0xcf, 0xfc, 0xe9, 0xcd, 0x0c, 0x4f,
-	0xc6, 0x5d, 0x07, 0x75, 0x00, 0x46, 0x33, 0xff, 0x72, 0x7a, 0x75, 0xab, 0xe2, 0x4a, 0x7f, 0x04,
-	0x9d, 0x6d, 0x91, 0x91, 0x0b, 0x2f, 0x4a, 0x8a, 0x60, 0x74, 0xf1, 0xd3, 0xd4, 0xbf, 0x2a, 0xa9,
-	0x5a, 0xd0, 0x08, 0x6e, 0x26, 0xf3, 0xb9, 0x26, 0x02, 0xa8, 0x8f, 0x27, 0xd7, 0x17, 0xbe, 0x22,
-	0x79, 0x05, 0x87, 0x8f, 0x33, 0x1b, 0xdd, 0x25, 0xe8, 0x7b, 0xa3, 0x86, 0x36, 0x07, 0x25, 0xc2,
-	0x75, 0xb4, 0x21, 0xff, 0xb7, 0x77, 0xc6, 0x5a, 0xa4, 0xb9, 0xbd, 0xd9, 0xff, 0xbb, 0x0a, 0x6d,
-	0xfb, 0x98, 0x0b, 0xa3, 0xd0, 0x7f, 0xba, 0xe5, 0x63, 0x80, 0x48, 0xd3, 0x46, 0xb1, 0x1d, 0xf0,
-	0x13, 0xeb, 0x6d, 0xd5, 0x1e, 0x5c, 0x3c, 0xde, 0xc5, 0x1b, 0x79, 0xca, 0xe9, 0x31, 0x93, 0x22,
-	0xe4, 0xe4, 0xf7, 0x15, 0x11, 0x92, 0x2c, 0xad, 0x1d, 0xda, 0x0a, 0xc5, 0x25, 0x88, 0x02, 0xe8,
-	0x9a, 0x69, 0x46, 0x69, 0x18, 0xd9, 0xa5, 0x37, 0xab, 0xe9, 0x7d, 0xb8, 0x24, 0xb6, 0x19, 0x26,
-	0xc4, 0x47, 0x7c, 0x2b, 0x16, 0xe8, 0x2b, 0x38, 0x26, 0x42, 0xd2, 0x2c, 0x92, 0x64, 0x19, 0x8a,
-	0xe8, 0x2d, 0xcd, 0x13, 0xa1, 0x17, 0xb5, 0x82, 0xbb, 0x8f, 0x07, 0x81, 0xc1, 0x4f, 0x13, 0xe8,
-	0x6c, 0xf3, 0xfd, 0x6b, 0xbf, 0xed, 0xb6, 0x5a, 0xdd, 0xd3, 0x6a, 0x7f, 0x00, 0xb0, 0xd6, 0x0a,
-	0x1d, 0x41, 0xeb, 0xd6, 0x0f, 0xe6, 0x93, 0xd1, 0xf4, 0x72, 0x3a, 0x19, 0x77, 0x9f, 0xa1, 0x06,
-	0x54, 0x5f, 0x4f, 0x82, 0xae, 0x83, 0xea, 0x50, 0xf1, 0x67, 0xdd, 0x4a, 0xff, 0x06, 0x3a, 0x98,
-	0xc5, 0x6c, 0xc4, 0x59, 0x61, 0x1f, 0x36, 0x84, 0xa3, 0xf2, 0x67, 0xa1, 0xd4, 0xca, 0xb8, 0xe6,
-	0xe5, 0x07, 0xb5, 0xc2, 0x1d, 0xb1, 0x19, 0x8a, 0xe1, 0xb7, 0xbf, 0x7e, 0x93, 0xb0, 0xc7, 0xeb,
-	0x03, 0xc6, 0x93, 0xb3, 0x8d, 0x3f, 0x47, 0x9a, 0xdf, 0xf1, 0xe8, 0x4c, 0xff, 0x2d, 0x9e, 0x25,
-	0x6c, 0xe3, 0x24, 0xae, 0x6b, 0xf0, 0xeb, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x20, 0xdc,
-	0xcd, 0x4b, 0x07, 0x00, 0x00,
+	// 935 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdd, 0x6e, 0xe3, 0x44,
+	0x14, 0x5e, 0x27, 0x4d, 0xd3, 0x9c, 0x34, 0x69, 0x3a, 0x5d, 0x90, 0xb7, 0x80, 0x08, 0x16, 0x88,
+	0x48, 0x48, 0xa9, 0x54, 0x10, 0x20, 0x71, 0x43, 0xf3, 0xd3, 0x6c, 0x04, 0x75, 0xa2, 0x49, 0x23,
+	0x58, 0xb8, 0xb0, 0x6c, 0x67, 0xea, 0x8e, 0xd6, 0xf6, 0x98, 0x19, 0xa7, 0x4b, 0xf6, 0x3d, 0xe0,
+	0x2d, 0x78, 0x2b, 0x1e, 0x04, 0xcd, 0x8f, 0x9b, 0xa4, 0xc9, 0x5e, 0x20, 0xed, 0xdd, 0x9c, 0x6f,
+	0x66, 0xbe, 0x33, 0xe7, 0x7c, 0xdf, 0xb1, 0xe1, 0xe3, 0xf0, 0x9e, 0xb3, 0x84, 0x2e, 0x13, 0x26,
+	0x2e, 0x02, 0x96, 0x7b, 0x22, 0xf4, 0x63, 0x9a, 0x46, 0xdd, 0x8c, 0xb3, 0x9c, 0x21, 0x58, 0xef,
+	0x3a, 0x14, 0xaa, 0x3d, 0x96, 0xdf, 0xae, 0x32, 0x82, 0x5e, 0xc0, 0x91, 0x3a, 0x4b, 0xdf, 0x12,
+	0xdb, 0x6a, 0x5b, 0x9d, 0x1a, 0xae, 0x06, 0x2c, 0x9f, 0xd1, 0xb7, 0x04, 0x39, 0xd0, 0x08, 0x19,
+	0x27, 0xc2, 0xcb, 0x08, 0xf7, 0x02, 0x96, 0xdb, 0xa5, 0xb6, 0xd5, 0xa9, 0xe0, 0xba, 0x02, 0xa7,
+	0x84, 0xf7, 0x58, 0x8e, 0x3e, 0x85, 0xfa, 0x3d, 0x5b, 0xf2, 0x78, 0xe5, 0x85, 0x4c, 0xe4, 0x76,
+	0xb9, 0x6d, 0x75, 0x4a, 0x18, 0x34, 0xd4, 0x67, 0x22, 0x77, 0xe6, 0x70, 0x3a, 0x7b, 0xe3, 0xf3,
+	0x84, 0xa6, 0xd1, 0x80, 0x26, 0x24, 0x15, 0x94, 0xa5, 0x08, 0xc1, 0x41, 0xea, 0x27, 0x45, 0x42,
+	0xb5, 0x46, 0xcf, 0xa1, 0xf2, 0xe0, 0xc7, 0x4b, 0xa2, 0xb2, 0xd4, 0xb0, 0x0e, 0xd0, 0x87, 0x70,
+	0xa8, 0x16, 0xc2, 0x2e, 0xb7, 0xcb, 0x9d, 0x1a, 0x36, 0x91, 0xf3, 0x57, 0x15, 0x6a, 0x3d, 0x96,
+	0x4f, 0x59, 0x4c, 0xc3, 0x15, 0xfa, 0x08, 0x6a, 0xb2, 0x88, 0x88, 0xb3, 0x65, 0x66, 0x48, 0x65,
+	0x55, 0x23, 0x19, 0xa3, 0xae, 0xae, 0x30, 0x5f, 0x65, 0x9a, 0xbb, 0x7e, 0x79, 0xd6, 0x5d, 0xf7,
+	0xa2, 0x6b, 0x1a, 0xa1, 0xca, 0x56, 0x1d, 0x79, 0x05, 0x67, 0xa6, 0x73, 0x1e, 0x27, 0x22, 0xe7,
+	0x34, 0xcc, 0x29, 0x4b, 0x55, 0x69, 0xf5, 0xcb, 0xce, 0x93, 0xab, 0xfa, 0x01, 0xdd, 0x99, 0xbe,
+	0x80, 0xd7, 0xe7, 0x31, 0x12, 0x3b, 0x18, 0xfa, 0x15, 0xce, 0x38, 0x89, 0x28, 0x4b, 0x37, 0x99,
+	0x85, 0x7d, 0xd0, 0x2e, 0x77, 0xea, 0x97, 0x5f, 0xee, 0xa7, 0xc6, 0xea, 0xc2, 0x16, 0x33, 0x7f,
+	0x0a, 0x09, 0xe4, 0xc2, 0x99, 0x30, 0x6d, 0xf6, 0x16, 0x45, 0x9f, 0x85, 0x5d, 0x51, 0xcc, 0x9f,
+	0x6c, 0x32, 0xef, 0xa8, 0x81, 0x91, 0x78, 0x0a, 0x09, 0xf4, 0x03, 0xd4, 0x33, 0x95, 0xdf, 0x4b,
+	0xd8, 0x82, 0xd8, 0x87, 0x6d, 0xab, 0xd3, 0xbc, 0x3c, 0xdf, 0xff, 0xc2, 0x1b, 0xb6, 0x20, 0x18,
+	0xf4, 0x71, 0xb9, 0x46, 0x5f, 0x40, 0x33, 0x66, 0xec, 0x75, 0xe0, 0x87, 0xaf, 0x3d, 0x69, 0x05,
+	0x61, 0x57, 0xdb, 0x56, 0xe7, 0x14, 0x37, 0x0a, 0xf4, 0xa5, 0x04, 0xd1, 0x08, 0x8e, 0x8b, 0x46,
+	0xab, 0x24, 0x47, 0x2a, 0xc9, 0xe7, 0xfb, 0x93, 0xf4, 0x58, 0x6e, 0x9a, 0xac, 0xd2, 0xd5, 0xc5,
+	0x3a, 0x38, 0xff, 0xc7, 0x02, 0xb4, 0xab, 0x80, 0xf4, 0xa6, 0x14, 0x3e, 0x24, 0x54, 0xee, 0x28,
+	0x5f, 0x54, 0x30, 0x04, 0x2c, 0xef, 0x6b, 0xa4, 0xb0, 0xcd, 0x5d, 0xcc, 0x18, 0x37, 0xe6, 0x96,
+	0x56, 0xb9, 0x96, 0xb1, 0x1c, 0x8c, 0x84, 0xa6, 0x1e, 0x5d, 0xc4, 0x44, 0x69, 0x5f, 0xc1, 0xd5,
+	0x84, 0xa6, 0xe3, 0x45, 0x4c, 0xe4, 0x3d, 0x91, 0x93, 0x4c, 0x0f, 0xcd, 0x81, 0xbe, 0x27, 0x01,
+	0x35, 0x35, 0x9f, 0xc1, 0xb1, 0x22, 0xf5, 0xe3, 0x58, 0x96, 0x6a, 0x57, 0xf4, 0xd0, 0x48, 0x5e,
+	0x03, 0x9d, 0xff, 0x0e, 0xa7, 0x3b, 0xaa, 0x4a, 0xa7, 0x6b, 0x5d, 0x8d, 0x81, 0x4d, 0x24, 0xf1,
+	0x8c, 0x93, 0x3b, 0xfa, 0xa7, 0x19, 0x0c, 0x13, 0x49, 0xfc, 0x0d, 0xa1, 0xd1, 0x7d, 0x31, 0x74,
+	0x26, 0x72, 0xbe, 0x83, 0x03, 0x25, 0x42, 0x0b, 0x8e, 0xe7, 0xee, 0x4f, 0xee, 0xe4, 0x17, 0xd7,
+	0xbb, 0x99, 0x0c, 0x86, 0xad, 0x67, 0xa8, 0x01, 0xb5, 0x9b, 0x89, 0x3b, 0xbe, 0x9d, 0xe0, 0xe1,
+	0xa0, 0x65, 0xa1, 0x26, 0x40, 0x7f, 0xe2, 0x5e, 0x8f, 0x47, 0x73, 0x19, 0x97, 0x9c, 0x3e, 0x34,
+	0xb7, 0x9b, 0x8c, 0x6c, 0x78, 0x5e, 0x50, 0xcc, 0xfa, 0x57, 0x3f, 0x8f, 0xdd, 0x51, 0x41, 0x55,
+	0x87, 0xea, 0xec, 0x76, 0x38, 0x9d, 0x2a, 0x22, 0x80, 0xc3, 0xc1, 0xf0, 0xe6, 0xca, 0x95, 0x24,
+	0x2f, 0xe1, 0xf8, 0x51, 0xb3, 0xfe, 0x5d, 0x84, 0xbe, 0xd7, 0xdd, 0x50, 0xe6, 0xa0, 0x44, 0xd8,
+	0x96, 0x32, 0xe4, 0x07, 0x7b, 0x35, 0x56, 0x4d, 0x9a, 0x9a, 0x93, 0xce, 0xbf, 0x65, 0x68, 0x98,
+	0xc7, 0x5c, 0xe9, 0x0e, 0xbd, 0xd7, 0x29, 0x1f, 0x00, 0xf8, 0x8a, 0xd6, 0x0f, 0x8c, 0xc0, 0x4f,
+	0xac, 0xb7, 0x95, 0xbb, 0x7b, 0xf5, 0x78, 0x16, 0x6f, 0xdc, 0x93, 0x4e, 0x0f, 0x58, 0x2e, 0x3c,
+	0x4e, 0xfe, 0x58, 0x12, 0x91, 0x93, 0x85, 0xb1, 0x43, 0x43, 0xa2, 0xb8, 0x00, 0xd1, 0x0c, 0x5a,
+	0x5a, 0x4d, 0x3f, 0xf6, 0x7c, 0x33, 0xf4, 0x7a, 0x34, 0x3b, 0xef, 0x4e, 0x89, 0xcd, 0x0d, 0x1d,
+	0xe2, 0x13, 0xbe, 0x15, 0x0b, 0xf4, 0x15, 0x9c, 0x12, 0x91, 0xd3, 0xc4, 0xcf, 0xc9, 0xc2, 0x13,
+	0xfe, 0x03, 0x4d, 0x23, 0xa1, 0x06, 0xb5, 0x84, 0x5b, 0x8f, 0x1b, 0x33, 0x8d, 0x9f, 0x47, 0xd0,
+	0xdc, 0xe6, 0xfb, 0xdf, 0x7e, 0xdb, 0x2d, 0xb5, 0xbc, 0xa7, 0x54, 0xa7, 0x0b, 0xb0, 0xee, 0x15,
+	0x3a, 0x81, 0xfa, 0xdc, 0x9d, 0x4d, 0x87, 0xfd, 0xf1, 0xf5, 0x78, 0x38, 0x68, 0x3d, 0x43, 0x55,
+	0x28, 0xbf, 0x1a, 0xce, 0x5a, 0x16, 0x3a, 0x84, 0x92, 0x3b, 0x69, 0x95, 0x1c, 0x0c, 0x0d, 0x4c,
+	0x04, 0x5b, 0xf2, 0x90, 0xcc, 0x85, 0x1f, 0x49, 0xdf, 0x96, 0x1f, 0x12, 0x61, 0xa6, 0x55, 0x2e,
+	0xe5, 0xdf, 0x22, 0xcc, 0x96, 0x42, 0xbd, 0xa7, 0x84, 0xd5, 0x5a, 0x7a, 0x21, 0x21, 0x09, 0xe3,
+	0x2b, 0x2f, 0x0a, 0xcc, 0x00, 0x1c, 0x69, 0x60, 0x14, 0x38, 0x7f, 0x5b, 0xd0, 0xc4, 0x2c, 0x60,
+	0x7d, 0xce, 0x32, 0x53, 0x6d, 0x0f, 0x4e, 0x8a, 0x6f, 0x4d, 0x21, 0x80, 0xb6, 0xe2, 0x8b, 0x77,
+	0x0a, 0x80, 0x9b, 0x62, 0x33, 0x14, 0xe8, 0x47, 0x68, 0x72, 0xf3, 0x54, 0x6f, 0x29, 0xdf, 0x6a,
+	0x8c, 0xb6, 0x45, 0xb1, 0x55, 0x0c, 0x6e, 0xf0, 0xcd, 0xb0, 0xf7, 0xed, 0x6f, 0xdf, 0x44, 0xec,
+	0xf1, 0x74, 0x97, 0xf1, 0xe8, 0x62, 0xe3, 0x9f, 0x4d, 0xd3, 0x3b, 0xee, 0x5f, 0xa8, 0xbf, 0xf5,
+	0x45, 0xc4, 0x36, 0x76, 0x82, 0x43, 0x05, 0x7e, 0xfd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc1,
+	0x16, 0x40, 0x41, 0xe2, 0x07, 0x00, 0x00,
 }
diff --git a/src/chromiumos/bot_scaling.proto b/src/chromiumos/bot_scaling.proto
index 3c40d44..e1e62a7 100644
--- a/src/chromiumos/bot_scaling.proto
+++ b/src/chromiumos/bot_scaling.proto
@@ -142,8 +142,19 @@
   float estimated_savings = 6;
 }
 
+// ResourceUsage based on the current resources assigned.
+message ResourceUsage {
+  // Number of VMs allocated across all bot groups.
+  int32 vms = 1;
+  // Number of CPUs allocated across all bot groups.
+  float cpus = 2;
+  // Amount of memory in GB allocated across all bot groups.
+  float memory_gb = 3;
+}
+
 // All the actions that will be executed by RoboCrop.
 message RoboCropAction {
   // List of an action per bot group scaled by RoboCrop.
   repeated ScalingAction scaling_actions = 1;
+  ResourceUsage resource_usage = 2;
 }
\ No newline at end of file