From f9836cf8aab30e672f640c6ef4c1cfd2cf9fbc36 Mon Sep 17 00:00:00 2001 From: Weny Xu Date: Mon, 8 Sep 2025 16:32:11 +0800 Subject: [PATCH] feat: add memory_bytes field (#274) --- c++/greptime/v1/meta/cluster.pb.cc | 91 +++++- c++/greptime/v1/meta/cluster.pb.h | 62 ++++ c++/greptime/v1/meta/heartbeat.pb.cc | 149 +++++---- c++/greptime/v1/meta/heartbeat.pb.h | 31 ++ go/greptime/v1/meta/cluster.pb.go | 65 ++-- go/greptime/v1/meta/heartbeat.pb.go | 299 +++++++++--------- .../greptime/v1/meta/ClusterOuterClass.java | 208 +++++++++++- .../greptime/v1/meta/HeartbeatOuterClass.java | 198 ++++++++---- proto/greptime/v1/meta/cluster.proto | 4 + proto/greptime/v1/meta/heartbeat.proto | 4 +- 10 files changed, 800 insertions(+), 311 deletions(-) diff --git a/c++/greptime/v1/meta/cluster.pb.cc b/c++/greptime/v1/meta/cluster.pb.cc index 18e909d..984d262 100644 --- a/c++/greptime/v1/meta/cluster.pb.cc +++ b/c++/greptime/v1/meta/cluster.pb.cc @@ -57,6 +57,8 @@ PROTOBUF_CONSTEXPR MetasrvNodeInfo::MetasrvNodeInfo( , /*decltype(_impl_.git_commit_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.peer_)*/nullptr , /*decltype(_impl_.start_time_ms_)*/uint64_t{0u} + , /*decltype(_impl_.memory_bytes_)*/uint64_t{0u} + , /*decltype(_impl_.cpus_)*/0u , /*decltype(_impl_._cached_size_)*/{}} {} struct MetasrvNodeInfoDefaultTypeInternal { PROTOBUF_CONSTEXPR MetasrvNodeInfoDefaultTypeInternal() @@ -101,6 +103,8 @@ const uint32_t TableStruct_greptime_2fv1_2fmeta_2fcluster_2eproto::offsets[] PRO PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::MetasrvNodeInfo, _impl_.version_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::MetasrvNodeInfo, _impl_.git_commit_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::MetasrvNodeInfo, _impl_.start_time_ms_), + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::MetasrvNodeInfo, _impl_.cpus_), + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::MetasrvNodeInfo, _impl_.memory_bytes_), }; static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, -1, sizeof(::greptime::v1::meta::MetasrvPeersRequest)}, @@ -124,18 +128,19 @@ const char descriptor_table_protodef_greptime_2fv1_2fmeta_2fcluster_2eproto[] PR "eta.ResponseHeader\0221\n\006leader\030\002 \001(\0132!.gre" "ptime.v1.meta.MetasrvNodeInfo\0224\n\tfollowe" "rs\030\003 \003(\0132!.greptime.v1.meta.MetasrvNodeI" - "nfo\"s\n\017MetasrvNodeInfo\022$\n\004peer\030\001 \001(\0132\026.g" - "reptime.v1.meta.Peer\022\017\n\007version\030\002 \001(\t\022\022\n" - "\ngit_commit\030\003 \001(\t\022\025\n\rstart_time_ms\030\004 \001(\004" - "2\205\002\n\007Cluster\022Q\n\010BatchGet\022!.greptime.v1.m" - "eta.BatchGetRequest\032\".greptime.v1.meta.B" - "atchGetResponse\022H\n\005Range\022\036.greptime.v1.m" - "eta.RangeRequest\032\037.greptime.v1.meta.Rang" - "eResponse\022]\n\014MetasrvPeers\022%.greptime.v1." - "meta.MetasrvPeersRequest\032&.greptime.v1.m" - "eta.MetasrvPeersResponseB(from._internal_metadata_); @@ -691,7 +698,9 @@ MetasrvNodeInfo::MetasrvNodeInfo(const MetasrvNodeInfo& from) if (from._internal_has_peer()) { _this->_impl_.peer_ = new ::greptime::v1::meta::Peer(*from._impl_.peer_); } - _this->_impl_.start_time_ms_ = from._impl_.start_time_ms_; + ::memcpy(&_impl_.start_time_ms_, &from._impl_.start_time_ms_, + static_cast(reinterpret_cast(&_impl_.cpus_) - + reinterpret_cast(&_impl_.start_time_ms_)) + sizeof(_impl_.cpus_)); // @@protoc_insertion_point(copy_constructor:greptime.v1.meta.MetasrvNodeInfo) } @@ -704,6 +713,8 @@ inline void MetasrvNodeInfo::SharedCtor( , decltype(_impl_.git_commit_){} , decltype(_impl_.peer_){nullptr} , decltype(_impl_.start_time_ms_){uint64_t{0u}} + , decltype(_impl_.memory_bytes_){uint64_t{0u}} + , decltype(_impl_.cpus_){0u} , /*decltype(_impl_._cached_size_)*/{} }; _impl_.version_.InitDefault(); @@ -748,7 +759,9 @@ void MetasrvNodeInfo::Clear() { delete _impl_.peer_; } _impl_.peer_ = nullptr; - _impl_.start_time_ms_ = uint64_t{0u}; + ::memset(&_impl_.start_time_ms_, 0, static_cast( + reinterpret_cast(&_impl_.cpus_) - + reinterpret_cast(&_impl_.start_time_ms_)) + sizeof(_impl_.cpus_)); _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); } @@ -794,6 +807,22 @@ const char* MetasrvNodeInfo::_InternalParse(const char* ptr, ::_pbi::ParseContex } else goto handle_unusual; continue; + // uint32 cpus = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { + _impl_.cpus_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // uint64 memory_bytes = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { + _impl_.memory_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -856,6 +885,18 @@ uint8_t* MetasrvNodeInfo::_InternalSerialize( target = ::_pbi::WireFormatLite::WriteUInt64ToArray(4, this->_internal_start_time_ms(), target); } + // uint32 cpus = 5; + if (this->_internal_cpus() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray(5, this->_internal_cpus(), target); + } + + // uint64 memory_bytes = 6; + if (this->_internal_memory_bytes() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt64ToArray(6, this->_internal_memory_bytes(), target); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -898,6 +939,16 @@ size_t MetasrvNodeInfo::ByteSizeLong() const { total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_start_time_ms()); } + // uint64 memory_bytes = 6; + if (this->_internal_memory_bytes() != 0) { + total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_memory_bytes()); + } + + // uint32 cpus = 5; + if (this->_internal_cpus() != 0) { + total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_cpus()); + } + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -929,6 +980,12 @@ void MetasrvNodeInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const if (from._internal_start_time_ms() != 0) { _this->_internal_set_start_time_ms(from._internal_start_time_ms()); } + if (from._internal_memory_bytes() != 0) { + _this->_internal_set_memory_bytes(from._internal_memory_bytes()); + } + if (from._internal_cpus() != 0) { + _this->_internal_set_cpus(from._internal_cpus()); + } _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); } @@ -957,8 +1014,8 @@ void MetasrvNodeInfo::InternalSwap(MetasrvNodeInfo* other) { &other->_impl_.git_commit_, rhs_arena ); ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(MetasrvNodeInfo, _impl_.start_time_ms_) - + sizeof(MetasrvNodeInfo::_impl_.start_time_ms_) + PROTOBUF_FIELD_OFFSET(MetasrvNodeInfo, _impl_.cpus_) + + sizeof(MetasrvNodeInfo::_impl_.cpus_) - PROTOBUF_FIELD_OFFSET(MetasrvNodeInfo, _impl_.peer_)>( reinterpret_cast(&_impl_.peer_), reinterpret_cast(&other->_impl_.peer_)); diff --git a/c++/greptime/v1/meta/cluster.pb.h b/c++/greptime/v1/meta/cluster.pb.h index 2941828..78813e8 100644 --- a/c++/greptime/v1/meta/cluster.pb.h +++ b/c++/greptime/v1/meta/cluster.pb.h @@ -551,6 +551,8 @@ class MetasrvNodeInfo final : kGitCommitFieldNumber = 3, kPeerFieldNumber = 1, kStartTimeMsFieldNumber = 4, + kMemoryBytesFieldNumber = 6, + kCpusFieldNumber = 5, }; // string version = 2; void clear_version(); @@ -607,6 +609,24 @@ class MetasrvNodeInfo final : void _internal_set_start_time_ms(uint64_t value); public: + // uint64 memory_bytes = 6; + void clear_memory_bytes(); + uint64_t memory_bytes() const; + void set_memory_bytes(uint64_t value); + private: + uint64_t _internal_memory_bytes() const; + void _internal_set_memory_bytes(uint64_t value); + public: + + // uint32 cpus = 5; + void clear_cpus(); + uint32_t cpus() const; + void set_cpus(uint32_t value); + private: + uint32_t _internal_cpus() const; + void _internal_set_cpus(uint32_t value); + public: + // @@protoc_insertion_point(class_scope:greptime.v1.meta.MetasrvNodeInfo) private: class _Internal; @@ -619,6 +639,8 @@ class MetasrvNodeInfo final : ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr git_commit_; ::greptime::v1::meta::Peer* peer_; uint64_t start_time_ms_; + uint64_t memory_bytes_; + uint32_t cpus_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; }; union { Impl_ _impl_; }; @@ -1148,6 +1170,46 @@ inline void MetasrvNodeInfo::set_start_time_ms(uint64_t value) { // @@protoc_insertion_point(field_set:greptime.v1.meta.MetasrvNodeInfo.start_time_ms) } +// uint32 cpus = 5; +inline void MetasrvNodeInfo::clear_cpus() { + _impl_.cpus_ = 0u; +} +inline uint32_t MetasrvNodeInfo::_internal_cpus() const { + return _impl_.cpus_; +} +inline uint32_t MetasrvNodeInfo::cpus() const { + // @@protoc_insertion_point(field_get:greptime.v1.meta.MetasrvNodeInfo.cpus) + return _internal_cpus(); +} +inline void MetasrvNodeInfo::_internal_set_cpus(uint32_t value) { + + _impl_.cpus_ = value; +} +inline void MetasrvNodeInfo::set_cpus(uint32_t value) { + _internal_set_cpus(value); + // @@protoc_insertion_point(field_set:greptime.v1.meta.MetasrvNodeInfo.cpus) +} + +// uint64 memory_bytes = 6; +inline void MetasrvNodeInfo::clear_memory_bytes() { + _impl_.memory_bytes_ = uint64_t{0u}; +} +inline uint64_t MetasrvNodeInfo::_internal_memory_bytes() const { + return _impl_.memory_bytes_; +} +inline uint64_t MetasrvNodeInfo::memory_bytes() const { + // @@protoc_insertion_point(field_get:greptime.v1.meta.MetasrvNodeInfo.memory_bytes) + return _internal_memory_bytes(); +} +inline void MetasrvNodeInfo::_internal_set_memory_bytes(uint64_t value) { + + _impl_.memory_bytes_ = value; +} +inline void MetasrvNodeInfo::set_memory_bytes(uint64_t value) { + _internal_set_memory_bytes(value); + // @@protoc_insertion_point(field_set:greptime.v1.meta.MetasrvNodeInfo.memory_bytes) +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ diff --git a/c++/greptime/v1/meta/heartbeat.pb.cc b/c++/greptime/v1/meta/heartbeat.pb.cc index 02be5af..16a4e66 100644 --- a/c++/greptime/v1/meta/heartbeat.pb.cc +++ b/c++/greptime/v1/meta/heartbeat.pb.cc @@ -94,6 +94,7 @@ PROTOBUF_CONSTEXPR NodeInfo::NodeInfo( /*decltype(_impl_.version_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.git_commit_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.start_time_ms_)*/uint64_t{0u} + , /*decltype(_impl_.memory_bytes_)*/uint64_t{0u} , /*decltype(_impl_.cpus_)*/0u , /*decltype(_impl_._cached_size_)*/{}} {} struct NodeInfoDefaultTypeInternal { @@ -350,6 +351,7 @@ const uint32_t TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets[] P PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::NodeInfo, _impl_.git_commit_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::NodeInfo, _impl_.start_time_ms_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::NodeInfo, _impl_.cpus_), + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::NodeInfo, _impl_.memory_bytes_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat_ExtensionsEntry_DoNotUse, _has_bits_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat_ExtensionsEntry_DoNotUse, _internal_metadata_), ~0u, // no _extensions_ @@ -484,19 +486,19 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode { 27, -1, -1, sizeof(::greptime::v1::meta::FrontendWorkloads)}, { 34, -1, -1, sizeof(::greptime::v1::meta::FlownodeWorkloads)}, { 41, -1, -1, sizeof(::greptime::v1::meta::NodeInfo)}, - { 51, 59, -1, sizeof(::greptime::v1::meta::RegionStat_ExtensionsEntry_DoNotUse)}, - { 61, -1, -1, sizeof(::greptime::v1::meta::RegionStat)}, - { 74, -1, -1, sizeof(::greptime::v1::meta::TopicStat)}, - { 84, 92, -1, sizeof(::greptime::v1::meta::FlowStat_FlowStatSizeEntry_DoNotUse)}, - { 94, 102, -1, sizeof(::greptime::v1::meta::FlowStat_FlowLastExecTimeMapEntry_DoNotUse)}, - { 104, -1, -1, sizeof(::greptime::v1::meta::FlowStat)}, - { 112, -1, -1, sizeof(::greptime::v1::meta::HeartbeatResponse)}, - { 121, 129, -1, sizeof(::greptime::v1::meta::GrantedRegion_ExtensionsEntry_DoNotUse)}, - { 131, -1, -1, sizeof(::greptime::v1::meta::GrantedRegion)}, - { 140, -1, -1, sizeof(::greptime::v1::meta::RegionLease)}, - { 150, -1, -1, sizeof(::greptime::v1::meta::AskLeaderRequest)}, - { 157, -1, -1, sizeof(::greptime::v1::meta::AskLeaderResponse)}, - { 165, -1, -1, sizeof(::greptime::v1::meta::MailboxMessage)}, + { 52, 60, -1, sizeof(::greptime::v1::meta::RegionStat_ExtensionsEntry_DoNotUse)}, + { 62, -1, -1, sizeof(::greptime::v1::meta::RegionStat)}, + { 75, -1, -1, sizeof(::greptime::v1::meta::TopicStat)}, + { 85, 93, -1, sizeof(::greptime::v1::meta::FlowStat_FlowStatSizeEntry_DoNotUse)}, + { 95, 103, -1, sizeof(::greptime::v1::meta::FlowStat_FlowLastExecTimeMapEntry_DoNotUse)}, + { 105, -1, -1, sizeof(::greptime::v1::meta::FlowStat)}, + { 113, -1, -1, sizeof(::greptime::v1::meta::HeartbeatResponse)}, + { 122, 130, -1, sizeof(::greptime::v1::meta::GrantedRegion_ExtensionsEntry_DoNotUse)}, + { 132, -1, -1, sizeof(::greptime::v1::meta::GrantedRegion)}, + { 141, -1, -1, sizeof(::greptime::v1::meta::RegionLease)}, + { 151, -1, -1, sizeof(::greptime::v1::meta::AskLeaderRequest)}, + { 158, -1, -1, sizeof(::greptime::v1::meta::AskLeaderResponse)}, + { 166, -1, -1, sizeof(::greptime::v1::meta::MailboxMessage)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -542,61 +544,62 @@ const char descriptor_table_protodef_greptime_2fv1_2fmeta_2fheartbeat_2eproto[] "\020\n\016node_workloads\"\"\n\021DatanodeWorkloads\022\r" "\n\005types\030\001 \003(\005\"\"\n\021FrontendWorkloads\022\r\n\005ty" "pes\030\001 \003(\005\"\"\n\021FlownodeWorkloads\022\r\n\005types\030" - "\001 \003(\005\"T\n\010NodeInfo\022\017\n\007version\030\001 \001(\t\022\022\n\ngi" + "\001 \003(\005\"j\n\010NodeInfo\022\017\n\007version\030\001 \001(\t\022\022\n\ngi" "t_commit\030\002 \001(\t\022\025\n\rstart_time_ms\030\003 \001(\004\022\014\n" - "\004cpus\030\004 \001(\r\"\207\002\n\nRegionStat\022\021\n\tregion_id\030" - "\001 \001(\004\022\014\n\004rcus\030\002 \001(\003\022\014\n\004wcus\030\003 \001(\003\022\031\n\021app" - "roximate_bytes\030\004 \001(\003\022\016\n\006engine\030\006 \001(\t\022*\n\004" - "role\030\007 \001(\0162\034.greptime.v1.meta.RegionRole" - "\022@\n\nextensions\030c \003(\0132,.greptime.v1.meta." - "RegionStat.ExtensionsEntry\0321\n\017Extensions" - "Entry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\014:\0028\001\"a\n" - "\tTopicStat\022\022\n\ntopic_name\030\001 \001(\t\022\023\n\013record" - "_size\030\002 \001(\004\022\022\n\nrecord_num\030\003 \001(\004\022\027\n\017lates" - "t_entry_id\030\004 \001(\004\"\227\002\n\010FlowStat\022D\n\016flow_st" - "at_size\030\001 \003(\0132,.greptime.v1.meta.FlowSta" - "t.FlowStatSizeEntry\022T\n\027flow_last_exec_ti" - "me_map\030\002 \003(\01323.greptime.v1.meta.FlowStat" - ".FlowLastExecTimeMapEntry\0323\n\021FlowStatSiz" - "eEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(\004:\0028\001\032:" - "\n\030FlowLastExecTimeMapEntry\022\013\n\003key\030\001 \001(\r\022" - "\r\n\005value\030\002 \001(\003:\0028\001\"\265\001\n\021HeartbeatResponse" - "\0220\n\006header\030\001 \001(\0132 .greptime.v1.meta.Resp" - "onseHeader\0229\n\017mailbox_message\030\002 \001(\0132 .gr" - "eptime.v1.meta.MailboxMessage\0223\n\014region_" - "lease\030\003 \001(\0132\035.greptime.v1.meta.RegionLea" - "se\"\306\001\n\rGrantedRegion\022\021\n\tregion_id\030\001 \001(\004\022" - "*\n\004role\030\002 \001(\0162\034.greptime.v1.meta.RegionR" - "ole\022C\n\nextensions\030c \003(\0132/.greptime.v1.me" - "ta.GrantedRegion.ExtensionsEntry\0321\n\017Exte" - "nsionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\014:" - "\0028\001\"\222\001\n\013RegionLease\0220\n\007regions\030\001 \003(\0132\037.g" - "reptime.v1.meta.GrantedRegion\022\034\n\024duratio" - "n_since_epoch\030\002 \001(\004\022\025\n\rlease_seconds\030\003 \001" - "(\004\022\034\n\024closeable_region_ids\030\004 \003(\004\"C\n\020AskL" - "eaderRequest\022/\n\006header\030\001 \001(\0132\037.greptime." - "v1.meta.RequestHeader\"m\n\021AskLeaderRespon" - "se\0220\n\006header\030\001 \001(\0132 .greptime.v1.meta.Re" - "sponseHeader\022&\n\006leader\030\002 \001(\0132\026.greptime." - "v1.meta.Peer\"|\n\016MailboxMessage\022\n\n\002id\030\001 \001" - "(\004\022\017\n\007subject\030\002 \001(\t\022\014\n\004from\030\003 \001(\t\022\n\n\002to\030" - "\004 \001(\t\022\030\n\020timestamp_millis\030\005 \001(\003\022\016\n\004json\030" - "\006 \001(\tH\000B\t\n\007payload*=\n\nRegionRole\022\n\n\006Lead" - "er\020\000\022\014\n\010Follower\020\001\022\025\n\021DowngradingLeader\020" - "\0022\277\001\n\tHeartbeat\022Z\n\tHeartbeat\022\".greptime." - "v1.meta.HeartbeatRequest\032#.greptime.v1.m" - "eta.HeartbeatResponse\"\000(\0010\001\022V\n\tAskLeader" - "\022\".greptime.v1.meta.AskLeaderRequest\032#.g" - "reptime.v1.meta.AskLeaderResponse\"\000B(tag) == 40)) { + _impl_.memory_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -2164,6 +2177,12 @@ uint8_t* NodeInfo::_InternalSerialize( target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_cpus(), target); } + // uint64 memory_bytes = 5; + if (this->_internal_memory_bytes() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt64ToArray(5, this->_internal_memory_bytes(), target); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -2199,6 +2218,11 @@ size_t NodeInfo::ByteSizeLong() const { total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_start_time_ms()); } + // uint64 memory_bytes = 5; + if (this->_internal_memory_bytes() != 0) { + total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_memory_bytes()); + } + // uint32 cpus = 4; if (this->_internal_cpus() != 0) { total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_cpus()); @@ -2231,6 +2255,9 @@ void NodeInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTO if (from._internal_start_time_ms() != 0) { _this->_internal_set_start_time_ms(from._internal_start_time_ms()); } + if (from._internal_memory_bytes() != 0) { + _this->_internal_set_memory_bytes(from._internal_memory_bytes()); + } if (from._internal_cpus() != 0) { _this->_internal_set_cpus(from._internal_cpus()); } diff --git a/c++/greptime/v1/meta/heartbeat.pb.h b/c++/greptime/v1/meta/heartbeat.pb.h index 7216838..95383be 100644 --- a/c++/greptime/v1/meta/heartbeat.pb.h +++ b/c++/greptime/v1/meta/heartbeat.pb.h @@ -1171,6 +1171,7 @@ class NodeInfo final : kVersionFieldNumber = 1, kGitCommitFieldNumber = 2, kStartTimeMsFieldNumber = 3, + kMemoryBytesFieldNumber = 5, kCpusFieldNumber = 4, }; // string version = 1; @@ -1210,6 +1211,15 @@ class NodeInfo final : void _internal_set_start_time_ms(uint64_t value); public: + // uint64 memory_bytes = 5; + void clear_memory_bytes(); + uint64_t memory_bytes() const; + void set_memory_bytes(uint64_t value); + private: + uint64_t _internal_memory_bytes() const; + void _internal_set_memory_bytes(uint64_t value); + public: + // uint32 cpus = 4; void clear_cpus(); uint32_t cpus() const; @@ -1230,6 +1240,7 @@ class NodeInfo final : ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr version_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr git_commit_; uint64_t start_time_ms_; + uint64_t memory_bytes_; uint32_t cpus_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; }; @@ -4290,6 +4301,26 @@ inline void NodeInfo::set_cpus(uint32_t value) { // @@protoc_insertion_point(field_set:greptime.v1.meta.NodeInfo.cpus) } +// uint64 memory_bytes = 5; +inline void NodeInfo::clear_memory_bytes() { + _impl_.memory_bytes_ = uint64_t{0u}; +} +inline uint64_t NodeInfo::_internal_memory_bytes() const { + return _impl_.memory_bytes_; +} +inline uint64_t NodeInfo::memory_bytes() const { + // @@protoc_insertion_point(field_get:greptime.v1.meta.NodeInfo.memory_bytes) + return _internal_memory_bytes(); +} +inline void NodeInfo::_internal_set_memory_bytes(uint64_t value) { + + _impl_.memory_bytes_ = value; +} +inline void NodeInfo::set_memory_bytes(uint64_t value) { + _internal_set_memory_bytes(value); + // @@protoc_insertion_point(field_set:greptime.v1.meta.NodeInfo.memory_bytes) +} + // ------------------------------------------------------------------- // ------------------------------------------------------------------- diff --git a/go/greptime/v1/meta/cluster.pb.go b/go/greptime/v1/meta/cluster.pb.go index 2021052..6d66c0a 100644 --- a/go/greptime/v1/meta/cluster.pb.go +++ b/go/greptime/v1/meta/cluster.pb.go @@ -154,6 +154,10 @@ type MetasrvNodeInfo struct { GitCommit string `protobuf:"bytes,3,opt,name=git_commit,json=gitCommit,proto3" json:"git_commit,omitempty"` // The node start timestamp in milliseconds. StartTimeMs uint64 `protobuf:"varint,4,opt,name=start_time_ms,json=startTimeMs,proto3" json:"start_time_ms,omitempty"` + // The CPU cores number of the node. + Cpus uint32 `protobuf:"varint,5,opt,name=cpus,proto3" json:"cpus,omitempty"` + // The memory bytes of the node. + MemoryBytes uint64 `protobuf:"varint,6,opt,name=memory_bytes,json=memoryBytes,proto3" json:"memory_bytes,omitempty"` } func (x *MetasrvNodeInfo) Reset() { @@ -216,6 +220,20 @@ func (x *MetasrvNodeInfo) GetStartTimeMs() uint64 { return 0 } +func (x *MetasrvNodeInfo) GetCpus() uint32 { + if x != nil { + return x.Cpus + } + return 0 +} + +func (x *MetasrvNodeInfo) GetMemoryBytes() uint64 { + if x != nil { + return x.MemoryBytes + } + return 0 +} + var File_greptime_v1_meta_cluster_proto protoreflect.FileDescriptor var file_greptime_v1_meta_cluster_proto_rawDesc = []byte{ @@ -243,7 +261,7 @@ var file_greptime_v1_meta_cluster_proto_rawDesc = []byte{ 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x72, 0x76, 0x4e, 0x6f, 0x64, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x22, 0x9a, + 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x72, 0x76, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, @@ -253,28 +271,31 @@ var file_greptime_v1_meta_cluster_proto_rawDesc = []byte{ 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x32, 0x85, 0x02, 0x0a, 0x07, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x47, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x1e, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x72, 0x76, 0x50, - 0x65, 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x72, 0x76, 0x50, - 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x72, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x70, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x70, 0x75, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x32, 0x85, 0x02, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x51, + 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x65, + 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x48, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1e, 0x2e, 0x67, 0x72, 0x65, + 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x72, 0x65, + 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x4d, + 0x65, 0x74, 0x61, 0x73, 0x72, 0x76, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x73, 0x72, 0x76, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x47, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x2f, 0x67, - 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, - 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, - 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x74, 0x61, 0x73, 0x72, 0x76, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x72, 0x76, 0x50, 0x65, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x54, 0x65, 0x61, 0x6d, 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, + 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/greptime/v1/meta/heartbeat.pb.go b/go/greptime/v1/meta/heartbeat.pb.go index c2e65ba..5c4c87c 100644 --- a/go/greptime/v1/meta/heartbeat.pb.go +++ b/go/greptime/v1/meta/heartbeat.pb.go @@ -429,8 +429,10 @@ type NodeInfo struct { GitCommit string `protobuf:"bytes,2,opt,name=git_commit,json=gitCommit,proto3" json:"git_commit,omitempty"` // The node start timestamp StartTimeMs uint64 `protobuf:"varint,3,opt,name=start_time_ms,json=startTimeMs,proto3" json:"start_time_ms,omitempty"` - // The CPU cores number in the node. + // The CPU cores number of the node. Cpus uint32 `protobuf:"varint,4,opt,name=cpus,proto3" json:"cpus,omitempty"` + // The memory bytes of the node. + MemoryBytes uint64 `protobuf:"varint,5,opt,name=memory_bytes,json=memoryBytes,proto3" json:"memory_bytes,omitempty"` } func (x *NodeInfo) Reset() { @@ -493,6 +495,13 @@ func (x *NodeInfo) GetCpus() uint32 { return 0 } +func (x *NodeInfo) GetMemoryBytes() uint64 { + if x != nil { + return x.MemoryBytes + } + return 0 +} + type RegionStat struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1205,153 +1214,155 @@ var file_greptime_v1_meta_heartbeat_proto_rawDesc = []byte{ 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x29, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x6e, 0x6f, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x7b, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, - 0x67, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, - 0x70, 0x75, 0x73, 0x22, 0xd5, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x63, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, - 0x63, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x63, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x77, 0x63, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x30, 0x0a, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x65, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x4c, - 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x63, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a, 0x09, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, - 0x22, 0xd2, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x12, 0x52, 0x0a, - 0x0e, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, - 0x74, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x69, 0x0a, 0x17, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, - 0x78, 0x65, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x4d, - 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x73, - 0x74, 0x45, 0x78, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x1a, 0x3f, 0x0a, 0x11, - 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, - 0x18, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x54, 0x69, 0x6d, - 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xda, 0x01, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, - 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x0f, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x0a, 0x67, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0d, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x63, 0x70, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xd5, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x63, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x04, 0x72, 0x63, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x63, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x77, 0x63, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, + 0x61, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x12, 0x30, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, - 0x61, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x40, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, + 0x61, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x63, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61, - 0x73, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x0d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x52, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x30, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, - 0x74, 0x61, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x63, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, - 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0xd1, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x65, - 0x61, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x52, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, - 0x0a, 0x14, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x04, 0x52, 0x12, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x4b, 0x0a, 0x10, 0x41, 0x73, 0x6b, 0x4c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, - 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x0a, 0x11, 0x41, 0x73, 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x65, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x06, 0x6c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x74, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, - 0x14, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x2a, 0x3d, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0a, - 0x0a, 0x06, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x6f, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x6f, 0x77, 0x6e, - 0x67, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x02, 0x32, - 0xbf, 0x01, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x5a, 0x0a, - 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x65, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x48, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x53, 0x74, 0x61, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x92, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0f, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x49, 0x64, 0x22, 0xd2, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, + 0x74, 0x12, 0x52, 0x0a, 0x0e, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x72, 0x65, 0x70, + 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x69, 0x0a, 0x17, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, + 0x61, 0x74, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x66, 0x6c, 0x6f, + 0x77, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x70, + 0x1a, 0x3f, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x53, 0x69, 0x7a, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, + 0x63, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xda, 0x01, 0x0a, 0x11, 0x48, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x38, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, + 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x0f, 0x6d, 0x61, 0x69, + 0x6c, 0x62, 0x6f, 0x78, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x65, + 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x0d, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x63, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x72, + 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd1, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, + 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x12, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x12, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x4b, 0x0a, 0x10, 0x41, + 0x73, 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x37, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, + 0x74, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x0a, 0x11, 0x41, 0x73, 0x6b, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, + 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, + 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, + 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x69, 0x6c, + 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x69, 0x6c, + 0x6c, 0x69, 0x73, 0x12, 0x14, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2a, 0x3d, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, + 0x6c, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x44, 0x6f, 0x77, 0x6e, 0x67, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x10, 0x02, 0x32, 0xbf, 0x01, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x12, 0x5a, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, - 0x61, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x41, 0x73, 0x6b, - 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x73, 0x6b, 0x4c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x65, + 0x61, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x56, 0x0a, + 0x09, 0x41, 0x73, 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x73, - 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x47, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x2f, 0x67, 0x72, 0x65, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, - 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x73, 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x61, 0x6d, + 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x67, 0x6f, 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, + 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/java/src/main/java/greptime/v1/meta/ClusterOuterClass.java b/java/src/main/java/greptime/v1/meta/ClusterOuterClass.java index 6f15367..fc2ae57 100644 --- a/java/src/main/java/greptime/v1/meta/ClusterOuterClass.java +++ b/java/src/main/java/greptime/v1/meta/ClusterOuterClass.java @@ -1890,6 +1890,26 @@ public final class ClusterOuterClass { * @return The startTimeMs. */ long getStartTimeMs(); + + /** + *
+     * The CPU cores number of the node.
+     * 
+ * + * uint32 cpus = 5; + * @return The cpus. + */ + int getCpus(); + + /** + *
+     * The memory bytes of the node.
+     * 
+ * + * uint64 memory_bytes = 6; + * @return The memoryBytes. + */ + long getMemoryBytes(); } /** * Protobuf type {@code greptime.v1.meta.MetasrvNodeInfo} @@ -1968,6 +1988,16 @@ public final class ClusterOuterClass { startTimeMs_ = input.readUInt64(); break; } + case 40: { + + cpus_ = input.readUInt32(); + break; + } + case 48: { + + memoryBytes_ = input.readUInt64(); + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -2119,6 +2149,36 @@ public final class ClusterOuterClass { return startTimeMs_; } + public static final int CPUS_FIELD_NUMBER = 5; + private int cpus_; + /** + *
+     * The CPU cores number of the node.
+     * 
+ * + * uint32 cpus = 5; + * @return The cpus. + */ + @java.lang.Override + public int getCpus() { + return cpus_; + } + + public static final int MEMORY_BYTES_FIELD_NUMBER = 6; + private long memoryBytes_; + /** + *
+     * The memory bytes of the node.
+     * 
+ * + * uint64 memory_bytes = 6; + * @return The memoryBytes. + */ + @java.lang.Override + public long getMemoryBytes() { + return memoryBytes_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -2145,6 +2205,12 @@ public final class ClusterOuterClass { if (startTimeMs_ != 0L) { output.writeUInt64(4, startTimeMs_); } + if (cpus_ != 0) { + output.writeUInt32(5, cpus_); + } + if (memoryBytes_ != 0L) { + output.writeUInt64(6, memoryBytes_); + } unknownFields.writeTo(output); } @@ -2168,6 +2234,14 @@ public final class ClusterOuterClass { size += com.google.protobuf.CodedOutputStream .computeUInt64Size(4, startTimeMs_); } + if (cpus_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(5, cpus_); + } + if (memoryBytes_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(6, memoryBytes_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -2194,6 +2268,10 @@ public final class ClusterOuterClass { .equals(other.getGitCommit())) return false; if (getStartTimeMs() != other.getStartTimeMs()) return false; + if (getCpus() + != other.getCpus()) return false; + if (getMemoryBytes() + != other.getMemoryBytes()) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -2216,6 +2294,11 @@ public final class ClusterOuterClass { hash = (37 * hash) + START_TIME_MS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getStartTimeMs()); + hash = (37 * hash) + CPUS_FIELD_NUMBER; + hash = (53 * hash) + getCpus(); + hash = (37 * hash) + MEMORY_BYTES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMemoryBytes()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -2361,6 +2444,10 @@ public final class ClusterOuterClass { startTimeMs_ = 0L; + cpus_ = 0; + + memoryBytes_ = 0L; + return this; } @@ -2395,6 +2482,8 @@ public final class ClusterOuterClass { result.version_ = version_; result.gitCommit_ = gitCommit_; result.startTimeMs_ = startTimeMs_; + result.cpus_ = cpus_; + result.memoryBytes_ = memoryBytes_; onBuilt(); return result; } @@ -2457,6 +2546,12 @@ public final class ClusterOuterClass { if (other.getStartTimeMs() != 0L) { setStartTimeMs(other.getStartTimeMs()); } + if (other.getCpus() != 0) { + setCpus(other.getCpus()); + } + if (other.getMemoryBytes() != 0L) { + setMemoryBytes(other.getMemoryBytes()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -2799,6 +2894,92 @@ public final class ClusterOuterClass { onChanged(); return this; } + + private int cpus_ ; + /** + *
+       * The CPU cores number of the node.
+       * 
+ * + * uint32 cpus = 5; + * @return The cpus. + */ + @java.lang.Override + public int getCpus() { + return cpus_; + } + /** + *
+       * The CPU cores number of the node.
+       * 
+ * + * uint32 cpus = 5; + * @param value The cpus to set. + * @return This builder for chaining. + */ + public Builder setCpus(int value) { + + cpus_ = value; + onChanged(); + return this; + } + /** + *
+       * The CPU cores number of the node.
+       * 
+ * + * uint32 cpus = 5; + * @return This builder for chaining. + */ + public Builder clearCpus() { + + cpus_ = 0; + onChanged(); + return this; + } + + private long memoryBytes_ ; + /** + *
+       * The memory bytes of the node.
+       * 
+ * + * uint64 memory_bytes = 6; + * @return The memoryBytes. + */ + @java.lang.Override + public long getMemoryBytes() { + return memoryBytes_; + } + /** + *
+       * The memory bytes of the node.
+       * 
+ * + * uint64 memory_bytes = 6; + * @param value The memoryBytes to set. + * @return This builder for chaining. + */ + public Builder setMemoryBytes(long value) { + + memoryBytes_ = value; + onChanged(); + return this; + } + /** + *
+       * The memory bytes of the node.
+       * 
+ * + * uint64 memory_bytes = 6; + * @return This builder for chaining. + */ + public Builder clearMemoryBytes() { + + memoryBytes_ = 0L; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -2885,18 +3066,19 @@ public final class ClusterOuterClass { "eta.ResponseHeader\0221\n\006leader\030\002 \001(\0132!.gre" + "ptime.v1.meta.MetasrvNodeInfo\0224\n\tfollowe" + "rs\030\003 \003(\0132!.greptime.v1.meta.MetasrvNodeI" + - "nfo\"s\n\017MetasrvNodeInfo\022$\n\004peer\030\001 \001(\0132\026.g" + - "reptime.v1.meta.Peer\022\017\n\007version\030\002 \001(\t\022\022\n" + - "\ngit_commit\030\003 \001(\t\022\025\n\rstart_time_ms\030\004 \001(\004" + - "2\205\002\n\007Cluster\022Q\n\010BatchGet\022!.greptime.v1.m" + - "eta.BatchGetRequest\032\".greptime.v1.meta.B" + - "atchGetResponse\022H\n\005Range\022\036.greptime.v1.m" + - "eta.RangeRequest\032\037.greptime.v1.meta.Rang" + - "eResponse\022]\n\014MetasrvPeers\022%.greptime.v1." + - "meta.MetasrvPeersRequest\032&.greptime.v1.m" + - "eta.MetasrvPeersResponseB - * The CPU cores number in the node. + * The CPU cores number of the node. * * * uint32 cpus = 4; * @return The cpus. */ int getCpus(); + + /** + *
+     * The memory bytes of the node.
+     * 
+ * + * uint64 memory_bytes = 5; + * @return The memoryBytes. + */ + long getMemoryBytes(); } /** * Protobuf type {@code greptime.v1.meta.NodeInfo} @@ -5901,6 +5911,11 @@ public final class HeartbeatOuterClass { cpus_ = input.readUInt32(); break; } + case 40: { + + memoryBytes_ = input.readUInt64(); + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -6046,7 +6061,7 @@ public final class HeartbeatOuterClass { private int cpus_; /** *
-     * The CPU cores number in the node.
+     * The CPU cores number of the node.
      * 
* * uint32 cpus = 4; @@ -6057,6 +6072,21 @@ public final class HeartbeatOuterClass { return cpus_; } + public static final int MEMORY_BYTES_FIELD_NUMBER = 5; + private long memoryBytes_; + /** + *
+     * The memory bytes of the node.
+     * 
+ * + * uint64 memory_bytes = 5; + * @return The memoryBytes. + */ + @java.lang.Override + public long getMemoryBytes() { + return memoryBytes_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -6083,6 +6113,9 @@ public final class HeartbeatOuterClass { if (cpus_ != 0) { output.writeUInt32(4, cpus_); } + if (memoryBytes_ != 0L) { + output.writeUInt64(5, memoryBytes_); + } unknownFields.writeTo(output); } @@ -6106,6 +6139,10 @@ public final class HeartbeatOuterClass { size += com.google.protobuf.CodedOutputStream .computeUInt32Size(4, cpus_); } + if (memoryBytes_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(5, memoryBytes_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -6129,6 +6166,8 @@ public final class HeartbeatOuterClass { != other.getStartTimeMs()) return false; if (getCpus() != other.getCpus()) return false; + if (getMemoryBytes() + != other.getMemoryBytes()) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -6149,6 +6188,9 @@ public final class HeartbeatOuterClass { getStartTimeMs()); hash = (37 * hash) + CPUS_FIELD_NUMBER; hash = (53 * hash) + getCpus(); + hash = (37 * hash) + MEMORY_BYTES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMemoryBytes()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -6290,6 +6332,8 @@ public final class HeartbeatOuterClass { cpus_ = 0; + memoryBytes_ = 0L; + return this; } @@ -6320,6 +6364,7 @@ public final class HeartbeatOuterClass { result.gitCommit_ = gitCommit_; result.startTimeMs_ = startTimeMs_; result.cpus_ = cpus_; + result.memoryBytes_ = memoryBytes_; onBuilt(); return result; } @@ -6382,6 +6427,9 @@ public final class HeartbeatOuterClass { if (other.getCpus() != 0) { setCpus(other.getCpus()); } + if (other.getMemoryBytes() != 0L) { + setMemoryBytes(other.getMemoryBytes()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -6649,7 +6697,7 @@ public final class HeartbeatOuterClass { private int cpus_ ; /** *
-       * The CPU cores number in the node.
+       * The CPU cores number of the node.
        * 
* * uint32 cpus = 4; @@ -6661,7 +6709,7 @@ public final class HeartbeatOuterClass { } /** *
-       * The CPU cores number in the node.
+       * The CPU cores number of the node.
        * 
* * uint32 cpus = 4; @@ -6676,7 +6724,7 @@ public final class HeartbeatOuterClass { } /** *
-       * The CPU cores number in the node.
+       * The CPU cores number of the node.
        * 
* * uint32 cpus = 4; @@ -6688,6 +6736,49 @@ public final class HeartbeatOuterClass { onChanged(); return this; } + + private long memoryBytes_ ; + /** + *
+       * The memory bytes of the node.
+       * 
+ * + * uint64 memory_bytes = 5; + * @return The memoryBytes. + */ + @java.lang.Override + public long getMemoryBytes() { + return memoryBytes_; + } + /** + *
+       * The memory bytes of the node.
+       * 
+ * + * uint64 memory_bytes = 5; + * @param value The memoryBytes to set. + * @return This builder for chaining. + */ + public Builder setMemoryBytes(long value) { + + memoryBytes_ = value; + onChanged(); + return this; + } + /** + *
+       * The memory bytes of the node.
+       * 
+ * + * uint64 memory_bytes = 5; + * @return This builder for chaining. + */ + public Builder clearMemoryBytes() { + + memoryBytes_ = 0L; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -16188,54 +16279,55 @@ com.google.protobuf.ByteString defaultValue); "\020\n\016node_workloads\"\"\n\021DatanodeWorkloads\022\r" + "\n\005types\030\001 \003(\005\"\"\n\021FrontendWorkloads\022\r\n\005ty" + "pes\030\001 \003(\005\"\"\n\021FlownodeWorkloads\022\r\n\005types\030" + - "\001 \003(\005\"T\n\010NodeInfo\022\017\n\007version\030\001 \001(\t\022\022\n\ngi" + + "\001 \003(\005\"j\n\010NodeInfo\022\017\n\007version\030\001 \001(\t\022\022\n\ngi" + "t_commit\030\002 \001(\t\022\025\n\rstart_time_ms\030\003 \001(\004\022\014\n" + - "\004cpus\030\004 \001(\r\"\207\002\n\nRegionStat\022\021\n\tregion_id\030" + - "\001 \001(\004\022\014\n\004rcus\030\002 \001(\003\022\014\n\004wcus\030\003 \001(\003\022\031\n\021app" + - "roximate_bytes\030\004 \001(\003\022\016\n\006engine\030\006 \001(\t\022*\n\004" + - "role\030\007 \001(\0162\034.greptime.v1.meta.RegionRole" + - "\022@\n\nextensions\030c \003(\0132,.greptime.v1.meta." + - "RegionStat.ExtensionsEntry\0321\n\017Extensions" + - "Entry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\014:\0028\001\"a\n" + - "\tTopicStat\022\022\n\ntopic_name\030\001 \001(\t\022\023\n\013record" + - "_size\030\002 \001(\004\022\022\n\nrecord_num\030\003 \001(\004\022\027\n\017lates" + - "t_entry_id\030\004 \001(\004\"\227\002\n\010FlowStat\022D\n\016flow_st" + - "at_size\030\001 \003(\0132,.greptime.v1.meta.FlowSta" + - "t.FlowStatSizeEntry\022T\n\027flow_last_exec_ti" + - "me_map\030\002 \003(\01323.greptime.v1.meta.FlowStat" + - ".FlowLastExecTimeMapEntry\0323\n\021FlowStatSiz" + - "eEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(\004:\0028\001\032:" + - "\n\030FlowLastExecTimeMapEntry\022\013\n\003key\030\001 \001(\r\022" + - "\r\n\005value\030\002 \001(\003:\0028\001\"\265\001\n\021HeartbeatResponse" + - "\0220\n\006header\030\001 \001(\0132 .greptime.v1.meta.Resp" + - "onseHeader\0229\n\017mailbox_message\030\002 \001(\0132 .gr" + - "eptime.v1.meta.MailboxMessage\0223\n\014region_" + - "lease\030\003 \001(\0132\035.greptime.v1.meta.RegionLea" + - "se\"\306\001\n\rGrantedRegion\022\021\n\tregion_id\030\001 \001(\004\022" + - "*\n\004role\030\002 \001(\0162\034.greptime.v1.meta.RegionR" + - "ole\022C\n\nextensions\030c \003(\0132/.greptime.v1.me" + - "ta.GrantedRegion.ExtensionsEntry\0321\n\017Exte" + - "nsionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\014:" + - "\0028\001\"\222\001\n\013RegionLease\0220\n\007regions\030\001 \003(\0132\037.g" + - "reptime.v1.meta.GrantedRegion\022\034\n\024duratio" + - "n_since_epoch\030\002 \001(\004\022\025\n\rlease_seconds\030\003 \001" + - "(\004\022\034\n\024closeable_region_ids\030\004 \003(\004\"C\n\020AskL" + - "eaderRequest\022/\n\006header\030\001 \001(\0132\037.greptime." + - "v1.meta.RequestHeader\"m\n\021AskLeaderRespon" + - "se\0220\n\006header\030\001 \001(\0132 .greptime.v1.meta.Re" + - "sponseHeader\022&\n\006leader\030\002 \001(\0132\026.greptime." + - "v1.meta.Peer\"|\n\016MailboxMessage\022\n\n\002id\030\001 \001" + - "(\004\022\017\n\007subject\030\002 \001(\t\022\014\n\004from\030\003 \001(\t\022\n\n\002to\030" + - "\004 \001(\t\022\030\n\020timestamp_millis\030\005 \001(\003\022\016\n\004json\030" + - "\006 \001(\tH\000B\t\n\007payload*=\n\nRegionRole\022\n\n\006Lead" + - "er\020\000\022\014\n\010Follower\020\001\022\025\n\021DowngradingLeader\020" + - "\0022\277\001\n\tHeartbeat\022Z\n\tHeartbeat\022\".greptime." + - "v1.meta.HeartbeatRequest\032#.greptime.v1.m" + - "eta.HeartbeatResponse\"\000(\0010\001\022V\n\tAskLeader" + - "\022\".greptime.v1.meta.AskLeaderRequest\032#.g" + - "reptime.v1.meta.AskLeaderResponse\"\000B