diff --git a/c++/greptime/v1/meta/heartbeat.pb.cc b/c++/greptime/v1/meta/heartbeat.pb.cc index e743bad..02be5af 100644 --- a/c++/greptime/v1/meta/heartbeat.pb.cc +++ b/c++/greptime/v1/meta/heartbeat.pb.cc @@ -26,6 +26,7 @@ namespace meta { PROTOBUF_CONSTEXPR HeartbeatRequest::HeartbeatRequest( ::_pbi::ConstantInitialized): _impl_{ /*decltype(_impl_.region_stats_)*/{} + , /*decltype(_impl_.topic_stats_)*/{} , /*decltype(_impl_.header_)*/nullptr , /*decltype(_impl_.peer_)*/nullptr , /*decltype(_impl_.report_interval_)*/nullptr @@ -134,6 +135,22 @@ struct RegionStatDefaultTypeInternal { }; }; PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RegionStatDefaultTypeInternal _RegionStat_default_instance_; +PROTOBUF_CONSTEXPR TopicStat::TopicStat( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.topic_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.record_size_)*/uint64_t{0u} + , /*decltype(_impl_.record_num_)*/uint64_t{0u} + , /*decltype(_impl_.latest_entry_id_)*/uint64_t{0u} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct TopicStatDefaultTypeInternal { + PROTOBUF_CONSTEXPR TopicStatDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~TopicStatDefaultTypeInternal() {} + union { + TopicStat _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TopicStatDefaultTypeInternal _TopicStat_default_instance_; PROTOBUF_CONSTEXPR FlowStat_FlowStatSizeEntry_DoNotUse::FlowStat_FlowStatSizeEntry_DoNotUse( ::_pbi::ConstantInitialized) {} struct FlowStat_FlowStatSizeEntry_DoNotUseDefaultTypeInternal { @@ -277,7 +294,7 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORIT } // namespace meta } // namespace v1 } // namespace greptime -static ::_pb::Metadata file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[17]; +static ::_pb::Metadata file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[18]; static const ::_pb::EnumDescriptor* file_level_enum_descriptors_greptime_2fv1_2fmeta_2fheartbeat_2eproto[1]; static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_greptime_2fv1_2fmeta_2fheartbeat_2eproto = nullptr; @@ -300,6 +317,7 @@ const uint32_t TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets[] P ::_pbi::kInvalidFieldOffsetTag, ::_pbi::kInvalidFieldOffsetTag, ::_pbi::kInvalidFieldOffsetTag, + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::HeartbeatRequest, _impl_.topic_stats_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::HeartbeatRequest, _impl_.node_workloads_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::DatanodeWorkloads, _internal_metadata_), @@ -355,6 +373,16 @@ const uint32_t TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets[] P PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat, _impl_.engine_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat, _impl_.role_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat, _impl_.extensions_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::TopicStat, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::TopicStat, _impl_.topic_name_), + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::TopicStat, _impl_.record_size_), + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::TopicStat, _impl_.record_num_), + PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::TopicStat, _impl_.latest_entry_id_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::FlowStat_FlowStatSizeEntry_DoNotUse, _has_bits_), PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::FlowStat_FlowStatSizeEntry_DoNotUse, _internal_metadata_), ~0u, // no _extensions_ @@ -452,22 +480,23 @@ const uint32_t TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets[] P }; static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, -1, sizeof(::greptime::v1::meta::HeartbeatRequest)}, - { 19, -1, -1, sizeof(::greptime::v1::meta::DatanodeWorkloads)}, - { 26, -1, -1, sizeof(::greptime::v1::meta::FrontendWorkloads)}, - { 33, -1, -1, sizeof(::greptime::v1::meta::FlownodeWorkloads)}, - { 40, -1, -1, sizeof(::greptime::v1::meta::NodeInfo)}, - { 50, 58, -1, sizeof(::greptime::v1::meta::RegionStat_ExtensionsEntry_DoNotUse)}, - { 60, -1, -1, sizeof(::greptime::v1::meta::RegionStat)}, - { 73, 81, -1, sizeof(::greptime::v1::meta::FlowStat_FlowStatSizeEntry_DoNotUse)}, - { 83, 91, -1, sizeof(::greptime::v1::meta::FlowStat_FlowLastExecTimeMapEntry_DoNotUse)}, - { 93, -1, -1, sizeof(::greptime::v1::meta::FlowStat)}, - { 101, -1, -1, sizeof(::greptime::v1::meta::HeartbeatResponse)}, - { 110, 118, -1, sizeof(::greptime::v1::meta::GrantedRegion_ExtensionsEntry_DoNotUse)}, - { 120, -1, -1, sizeof(::greptime::v1::meta::GrantedRegion)}, - { 129, -1, -1, sizeof(::greptime::v1::meta::RegionLease)}, - { 139, -1, -1, sizeof(::greptime::v1::meta::AskLeaderRequest)}, - { 146, -1, -1, sizeof(::greptime::v1::meta::AskLeaderResponse)}, - { 154, -1, -1, sizeof(::greptime::v1::meta::MailboxMessage)}, + { 20, -1, -1, sizeof(::greptime::v1::meta::DatanodeWorkloads)}, + { 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)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -478,6 +507,7 @@ static const ::_pb::Message* const file_default_instances[] = { &::greptime::v1::meta::_NodeInfo_default_instance_._instance, &::greptime::v1::meta::_RegionStat_ExtensionsEntry_DoNotUse_default_instance_._instance, &::greptime::v1::meta::_RegionStat_default_instance_._instance, + &::greptime::v1::meta::_TopicStat_default_instance_._instance, &::greptime::v1::meta::_FlowStat_FlowStatSizeEntry_DoNotUse_default_instance_._instance, &::greptime::v1::meta::_FlowStat_FlowLastExecTimeMapEntry_DoNotUse_default_instance_._instance, &::greptime::v1::meta::_FlowStat_default_instance_._instance, @@ -493,7 +523,7 @@ static const ::_pb::Message* const file_default_instances[] = { const char descriptor_table_protodef_greptime_2fv1_2fmeta_2fheartbeat_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = "\n greptime/v1/meta/heartbeat.proto\022\020grep" "time.v1.meta\032\035greptime/v1/meta/common.pr" - "oto\"\331\004\n\020HeartbeatRequest\022/\n\006header\030\001 \001(\013" + "oto\"\213\005\n\020HeartbeatRequest\022/\n\006header\030\001 \001(\013" "2\037.greptime.v1.meta.RequestHeader\022$\n\004pee" "r\030\002 \001(\0132\026.greptime.v1.meta.Peer\0227\n\017repor" "t_interval\030\003 \001(\0132\036.greptime.v1.meta.Time" @@ -507,64 +537,68 @@ const char descriptor_table_protodef_greptime_2fv1_2fmeta_2fheartbeat_2eproto[] "reptime.v1.meta.DatanodeWorkloadsH\000\0227\n\010f" "rontend\030\013 \001(\0132#.greptime.v1.meta.Fronten" "dWorkloadsH\000\0227\n\010flownode\030\014 \001(\0132#.greptim" - "e.v1.meta.FlownodeWorkloadsH\000B\020\n\016node_wo" - "rkloads\"\"\n\021DatanodeWorkloads\022\r\n\005types\030\001 " - "\003(\005\"\"\n\021FrontendWorkloads\022\r\n\005types\030\001 \003(\005\"" - "\"\n\021FlownodeWorkloads\022\r\n\005types\030\001 \003(\005\"T\n\010N" - "odeInfo\022\017\n\007version\030\001 \001(\t\022\022\n\ngit_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\004r" - "cus\030\002 \001(\003\022\014\n\004wcus\030\003 \001(\003\022\031\n\021approximate_b" - "ytes\030\004 \001(\003\022\016\n\006engine\030\006 \001(\t\022*\n\004role\030\007 \001(\016" - "2\034.greptime.v1.meta.RegionRole\022@\n\nextens" - "ions\030c \003(\0132,.greptime.v1.meta.RegionStat" - ".ExtensionsEntry\0321\n\017ExtensionsEntry\022\013\n\003k" - "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\014:\0028\001\"\227\002\n\010FlowStat" - "\022D\n\016flow_stat_size\030\001 \003(\0132,.greptime.v1.m" - "eta.FlowStat.FlowStatSizeEntry\022T\n\027flow_l" - "ast_exec_time_map\030\002 \003(\01323.greptime.v1.me" - "ta.FlowStat.FlowLastExecTimeMapEntry\0323\n\021" - "FlowStatSizeEntry\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\021Heartb" - "eatResponse\0220\n\006header\030\001 \001(\0132 .greptime.v" - "1.meta.ResponseHeader\0229\n\017mailbox_message" - "\030\002 \001(\0132 .greptime.v1.meta.MailboxMessage" - "\0223\n\014region_lease\030\003 \001(\0132\035.greptime.v1.met" - "a.RegionLease\"\306\001\n\rGrantedRegion\022\021\n\tregio" - "n_id\030\001 \001(\004\022*\n\004role\030\002 \001(\0162\034.greptime.v1.m" - "eta.RegionRole\022C\n\nextensions\030c \003(\0132/.gre" - "ptime.v1.meta.GrantedRegion.ExtensionsEn" - "try\0321\n\017ExtensionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005v" - "alue\030\002 \001(\014:\0028\001\"\222\001\n\013RegionLease\0220\n\007region" - "s\030\001 \003(\0132\037.greptime.v1.meta.GrantedRegion" - "\022\034\n\024duration_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\020AskLeaderRequest\022/\n\006header\030\001 \001(\0132" - "\037.greptime.v1.meta.RequestHeader\"m\n\021AskL" - "eaderResponse\0220\n\006header\030\001 \001(\0132 .greptime" - ".v1.meta.ResponseHeader\022&\n\006leader\030\002 \001(\0132" - "\026.greptime.v1.meta.Peer\"|\n\016MailboxMessag" - "e\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\nRegionR" - "ole\022\n\n\006Leader\020\000\022\014\n\010Follower\020\001\022\025\n\021Downgra" - "dingLeader\020\0022\277\001\n\tHeartbeat\022Z\n\tHeartbeat\022" - "\".greptime.v1.meta.HeartbeatRequest\032#.gr" - "eptime.v1.meta.HeartbeatResponse\"\000(\0010\001\022V" - "\n\tAskLeader\022\".greptime.v1.meta.AskLeader" - "Request\032#.greptime.v1.meta.AskLeaderResp" - "onse\"\000B(tag) == 106)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_topic_stats(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<106>(ptr)); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -1111,6 +1162,14 @@ uint8_t* HeartbeatRequest::_InternalSerialize( _Internal::flownode(this).GetCachedSize(), target, stream); } + // repeated .greptime.v1.meta.TopicStat topic_stats = 13; + for (unsigned i = 0, + n = static_cast(this->_internal_topic_stats_size()); i < n; i++) { + const auto& repfield = this->_internal_topic_stats(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(13, repfield, repfield.GetCachedSize(), target, stream); + } + 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); @@ -1134,6 +1193,13 @@ size_t HeartbeatRequest::ByteSizeLong() const { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); } + // repeated .greptime.v1.meta.TopicStat topic_stats = 13; + total_size += 1UL * this->_internal_topic_stats_size(); + for (const auto& msg : this->_impl_.topic_stats_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + // .greptime.v1.meta.RequestHeader header = 1; if (this->_internal_has_header()) { total_size += 1 + @@ -1231,6 +1297,7 @@ void HeartbeatRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const (void) cached_has_bits; _this->_impl_.region_stats_.MergeFrom(from._impl_.region_stats_); + _this->_impl_.topic_stats_.MergeFrom(from._impl_.topic_stats_); if (from._internal_has_header()) { _this->_internal_mutable_header()->::greptime::v1::meta::RequestHeader::MergeFrom( from._internal_header()); @@ -1299,6 +1366,7 @@ void HeartbeatRequest::InternalSwap(HeartbeatRequest* other) { using std::swap; _internal_metadata_.InternalSwap(&other->_internal_metadata_); _impl_.region_stats_.InternalSwap(&other->_impl_.region_stats_); + _impl_.topic_stats_.InternalSwap(&other->_impl_.topic_stats_); ::PROTOBUF_NAMESPACE_ID::internal::memswap< PROTOBUF_FIELD_OFFSET(HeartbeatRequest, _impl_.node_epoch_) + sizeof(HeartbeatRequest::_impl_.node_epoch_) @@ -2625,6 +2693,293 @@ void RegionStat::InternalSwap(RegionStat* other) { // =================================================================== +class TopicStat::_Internal { + public: +}; + +TopicStat::TopicStat(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:greptime.v1.meta.TopicStat) +} +TopicStat::TopicStat(const TopicStat& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + TopicStat* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.topic_name_){} + , decltype(_impl_.record_size_){} + , decltype(_impl_.record_num_){} + , decltype(_impl_.latest_entry_id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.topic_name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.topic_name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_topic_name().empty()) { + _this->_impl_.topic_name_.Set(from._internal_topic_name(), + _this->GetArenaForAllocation()); + } + ::memcpy(&_impl_.record_size_, &from._impl_.record_size_, + static_cast(reinterpret_cast(&_impl_.latest_entry_id_) - + reinterpret_cast(&_impl_.record_size_)) + sizeof(_impl_.latest_entry_id_)); + // @@protoc_insertion_point(copy_constructor:greptime.v1.meta.TopicStat) +} + +inline void TopicStat::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.topic_name_){} + , decltype(_impl_.record_size_){uint64_t{0u}} + , decltype(_impl_.record_num_){uint64_t{0u}} + , decltype(_impl_.latest_entry_id_){uint64_t{0u}} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.topic_name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.topic_name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +TopicStat::~TopicStat() { + // @@protoc_insertion_point(destructor:greptime.v1.meta.TopicStat) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void TopicStat::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.topic_name_.Destroy(); +} + +void TopicStat::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void TopicStat::Clear() { +// @@protoc_insertion_point(message_clear_start:greptime.v1.meta.TopicStat) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.topic_name_.ClearToEmpty(); + ::memset(&_impl_.record_size_, 0, static_cast( + reinterpret_cast(&_impl_.latest_entry_id_) - + reinterpret_cast(&_impl_.record_size_)) + sizeof(_impl_.latest_entry_id_)); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* TopicStat::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string topic_name = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_topic_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "greptime.v1.meta.TopicStat.topic_name")); + } else + goto handle_unusual; + continue; + // uint64 record_size = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + _impl_.record_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // uint64 record_num = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + _impl_.record_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // uint64 latest_entry_id = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { + _impl_.latest_entry_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* TopicStat::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:greptime.v1.meta.TopicStat) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string topic_name = 1; + if (!this->_internal_topic_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_topic_name().data(), static_cast(this->_internal_topic_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "greptime.v1.meta.TopicStat.topic_name"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_topic_name(), target); + } + + // uint64 record_size = 2; + if (this->_internal_record_size() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt64ToArray(2, this->_internal_record_size(), target); + } + + // uint64 record_num = 3; + if (this->_internal_record_num() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt64ToArray(3, this->_internal_record_num(), target); + } + + // uint64 latest_entry_id = 4; + if (this->_internal_latest_entry_id() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt64ToArray(4, this->_internal_latest_entry_id(), 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); + } + // @@protoc_insertion_point(serialize_to_array_end:greptime.v1.meta.TopicStat) + return target; +} + +size_t TopicStat::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:greptime.v1.meta.TopicStat) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string topic_name = 1; + if (!this->_internal_topic_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_topic_name()); + } + + // uint64 record_size = 2; + if (this->_internal_record_size() != 0) { + total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_record_size()); + } + + // uint64 record_num = 3; + if (this->_internal_record_num() != 0) { + total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_record_num()); + } + + // uint64 latest_entry_id = 4; + if (this->_internal_latest_entry_id() != 0) { + total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_latest_entry_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData TopicStat::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + TopicStat::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*TopicStat::GetClassData() const { return &_class_data_; } + + +void TopicStat::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:greptime.v1.meta.TopicStat) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_topic_name().empty()) { + _this->_internal_set_topic_name(from._internal_topic_name()); + } + if (from._internal_record_size() != 0) { + _this->_internal_set_record_size(from._internal_record_size()); + } + if (from._internal_record_num() != 0) { + _this->_internal_set_record_num(from._internal_record_num()); + } + if (from._internal_latest_entry_id() != 0) { + _this->_internal_set_latest_entry_id(from._internal_latest_entry_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void TopicStat::CopyFrom(const TopicStat& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:greptime.v1.meta.TopicStat) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool TopicStat::IsInitialized() const { + return true; +} + +void TopicStat::InternalSwap(TopicStat* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.topic_name_, lhs_arena, + &other->_impl_.topic_name_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(TopicStat, _impl_.latest_entry_id_) + + sizeof(TopicStat::_impl_.latest_entry_id_) + - PROTOBUF_FIELD_OFFSET(TopicStat, _impl_.record_size_)>( + reinterpret_cast(&_impl_.record_size_), + reinterpret_cast(&other->_impl_.record_size_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata TopicStat::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[7]); +} + +// =================================================================== + FlowStat_FlowStatSizeEntry_DoNotUse::FlowStat_FlowStatSizeEntry_DoNotUse() {} FlowStat_FlowStatSizeEntry_DoNotUse::FlowStat_FlowStatSizeEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) : SuperType(arena) {} @@ -2634,7 +2989,7 @@ void FlowStat_FlowStatSizeEntry_DoNotUse::MergeFrom(const FlowStat_FlowStatSizeE ::PROTOBUF_NAMESPACE_ID::Metadata FlowStat_FlowStatSizeEntry_DoNotUse::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[7]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[8]); } // =================================================================== @@ -2648,7 +3003,7 @@ void FlowStat_FlowLastExecTimeMapEntry_DoNotUse::MergeFrom(const FlowStat_FlowLa ::PROTOBUF_NAMESPACE_ID::Metadata FlowStat_FlowLastExecTimeMapEntry_DoNotUse::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[8]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[9]); } // =================================================================== @@ -2902,7 +3257,7 @@ void FlowStat::InternalSwap(FlowStat* other) { ::PROTOBUF_NAMESPACE_ID::Metadata FlowStat::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[9]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[10]); } // =================================================================== @@ -3188,7 +3543,7 @@ void HeartbeatResponse::InternalSwap(HeartbeatResponse* other) { ::PROTOBUF_NAMESPACE_ID::Metadata HeartbeatResponse::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[10]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[11]); } // =================================================================== @@ -3202,7 +3557,7 @@ void GrantedRegion_ExtensionsEntry_DoNotUse::MergeFrom(const GrantedRegion_Exten ::PROTOBUF_NAMESPACE_ID::Metadata GrantedRegion_ExtensionsEntry_DoNotUse::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[11]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[12]); } // =================================================================== @@ -3480,7 +3835,7 @@ void GrantedRegion::InternalSwap(GrantedRegion* other) { ::PROTOBUF_NAMESPACE_ID::Metadata GrantedRegion::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[12]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[13]); } // =================================================================== @@ -3767,7 +4122,7 @@ void RegionLease::InternalSwap(RegionLease* other) { ::PROTOBUF_NAMESPACE_ID::Metadata RegionLease::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[13]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[14]); } // =================================================================== @@ -3966,7 +4321,7 @@ void AskLeaderRequest::InternalSwap(AskLeaderRequest* other) { ::PROTOBUF_NAMESPACE_ID::Metadata AskLeaderRequest::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[14]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[15]); } // =================================================================== @@ -4217,7 +4572,7 @@ void AskLeaderResponse::InternalSwap(AskLeaderResponse* other) { ::PROTOBUF_NAMESPACE_ID::Metadata AskLeaderResponse::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[15]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[16]); } // =================================================================== @@ -4657,7 +5012,7 @@ void MailboxMessage::InternalSwap(MailboxMessage* other) { ::PROTOBUF_NAMESPACE_ID::Metadata MailboxMessage::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_getter, &descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, - file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[16]); + file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[17]); } // @@protoc_insertion_point(namespace_scope) @@ -4693,6 +5048,10 @@ template<> PROTOBUF_NOINLINE ::greptime::v1::meta::RegionStat* Arena::CreateMaybeMessage< ::greptime::v1::meta::RegionStat >(Arena* arena) { return Arena::CreateMessageInternal< ::greptime::v1::meta::RegionStat >(arena); } +template<> PROTOBUF_NOINLINE ::greptime::v1::meta::TopicStat* +Arena::CreateMaybeMessage< ::greptime::v1::meta::TopicStat >(Arena* arena) { + return Arena::CreateMessageInternal< ::greptime::v1::meta::TopicStat >(arena); +} template<> PROTOBUF_NOINLINE ::greptime::v1::meta::FlowStat_FlowStatSizeEntry_DoNotUse* Arena::CreateMaybeMessage< ::greptime::v1::meta::FlowStat_FlowStatSizeEntry_DoNotUse >(Arena* arena) { return Arena::CreateMessageInternal< ::greptime::v1::meta::FlowStat_FlowStatSizeEntry_DoNotUse >(arena); diff --git a/c++/greptime/v1/meta/heartbeat.pb.h b/c++/greptime/v1/meta/heartbeat.pb.h index 2ba35c1..7216838 100644 --- a/c++/greptime/v1/meta/heartbeat.pb.h +++ b/c++/greptime/v1/meta/heartbeat.pb.h @@ -103,6 +103,9 @@ extern RegionStatDefaultTypeInternal _RegionStat_default_instance_; class RegionStat_ExtensionsEntry_DoNotUse; struct RegionStat_ExtensionsEntry_DoNotUseDefaultTypeInternal; extern RegionStat_ExtensionsEntry_DoNotUseDefaultTypeInternal _RegionStat_ExtensionsEntry_DoNotUse_default_instance_; +class TopicStat; +struct TopicStatDefaultTypeInternal; +extern TopicStatDefaultTypeInternal _TopicStat_default_instance_; } // namespace meta } // namespace v1 } // namespace greptime @@ -124,6 +127,7 @@ template<> ::greptime::v1::meta::NodeInfo* Arena::CreateMaybeMessage<::greptime: template<> ::greptime::v1::meta::RegionLease* Arena::CreateMaybeMessage<::greptime::v1::meta::RegionLease>(Arena*); template<> ::greptime::v1::meta::RegionStat* Arena::CreateMaybeMessage<::greptime::v1::meta::RegionStat>(Arena*); template<> ::greptime::v1::meta::RegionStat_ExtensionsEntry_DoNotUse* Arena::CreateMaybeMessage<::greptime::v1::meta::RegionStat_ExtensionsEntry_DoNotUse>(Arena*); +template<> ::greptime::v1::meta::TopicStat* Arena::CreateMaybeMessage<::greptime::v1::meta::TopicStat>(Arena*); PROTOBUF_NAMESPACE_CLOSE namespace greptime { namespace v1 { @@ -286,6 +290,7 @@ class HeartbeatRequest final : enum : int { kRegionStatsFieldNumber = 4, + kTopicStatsFieldNumber = 13, kHeaderFieldNumber = 1, kPeerFieldNumber = 2, kReportIntervalFieldNumber = 3, @@ -316,6 +321,24 @@ class HeartbeatRequest final : const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::meta::RegionStat >& region_stats() const; + // repeated .greptime.v1.meta.TopicStat topic_stats = 13; + int topic_stats_size() const; + private: + int _internal_topic_stats_size() const; + public: + void clear_topic_stats(); + ::greptime::v1::meta::TopicStat* mutable_topic_stats(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::meta::TopicStat >* + mutable_topic_stats(); + private: + const ::greptime::v1::meta::TopicStat& _internal_topic_stats(int index) const; + ::greptime::v1::meta::TopicStat* _internal_add_topic_stats(); + public: + const ::greptime::v1::meta::TopicStat& topic_stats(int index) const; + ::greptime::v1::meta::TopicStat* add_topic_stats(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::meta::TopicStat >& + topic_stats() const; + // .greptime.v1.meta.RequestHeader header = 1; bool has_header() const; private: @@ -513,6 +536,7 @@ class HeartbeatRequest final : typedef void DestructorSkippable_; struct Impl_ { ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::meta::RegionStat > region_stats_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::meta::TopicStat > topic_stats_; ::greptime::v1::meta::RequestHeader* header_; ::greptime::v1::meta::Peer* peer_; ::greptime::v1::meta::TimeInterval* report_interval_; @@ -1474,6 +1498,192 @@ class RegionStat final : }; // ------------------------------------------------------------------- +class TopicStat final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:greptime.v1.meta.TopicStat) */ { + public: + inline TopicStat() : TopicStat(nullptr) {} + ~TopicStat() override; + explicit PROTOBUF_CONSTEXPR TopicStat(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + TopicStat(const TopicStat& from); + TopicStat(TopicStat&& from) noexcept + : TopicStat() { + *this = ::std::move(from); + } + + inline TopicStat& operator=(const TopicStat& from) { + CopyFrom(from); + return *this; + } + inline TopicStat& operator=(TopicStat&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const TopicStat& default_instance() { + return *internal_default_instance(); + } + static inline const TopicStat* internal_default_instance() { + return reinterpret_cast( + &_TopicStat_default_instance_); + } + static constexpr int kIndexInFileMessages = + 7; + + friend void swap(TopicStat& a, TopicStat& b) { + a.Swap(&b); + } + inline void Swap(TopicStat* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(TopicStat* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + TopicStat* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const TopicStat& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const TopicStat& from) { + TopicStat::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(TopicStat* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "greptime.v1.meta.TopicStat"; + } + protected: + explicit TopicStat(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kTopicNameFieldNumber = 1, + kRecordSizeFieldNumber = 2, + kRecordNumFieldNumber = 3, + kLatestEntryIdFieldNumber = 4, + }; + // string topic_name = 1; + void clear_topic_name(); + const std::string& topic_name() const; + template + void set_topic_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_topic_name(); + PROTOBUF_NODISCARD std::string* release_topic_name(); + void set_allocated_topic_name(std::string* topic_name); + private: + const std::string& _internal_topic_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_topic_name(const std::string& value); + std::string* _internal_mutable_topic_name(); + public: + + // uint64 record_size = 2; + void clear_record_size(); + uint64_t record_size() const; + void set_record_size(uint64_t value); + private: + uint64_t _internal_record_size() const; + void _internal_set_record_size(uint64_t value); + public: + + // uint64 record_num = 3; + void clear_record_num(); + uint64_t record_num() const; + void set_record_num(uint64_t value); + private: + uint64_t _internal_record_num() const; + void _internal_set_record_num(uint64_t value); + public: + + // uint64 latest_entry_id = 4; + void clear_latest_entry_id(); + uint64_t latest_entry_id() const; + void set_latest_entry_id(uint64_t value); + private: + uint64_t _internal_latest_entry_id() const; + void _internal_set_latest_entry_id(uint64_t value); + public: + + // @@protoc_insertion_point(class_scope:greptime.v1.meta.TopicStat) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr topic_name_; + uint64_t record_size_; + uint64_t record_num_; + uint64_t latest_entry_id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto; +}; +// ------------------------------------------------------------------- + class FlowStat_FlowStatSizeEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry* +HeartbeatRequest::mutable_topic_stats() { + // @@protoc_insertion_point(field_mutable_list:greptime.v1.meta.HeartbeatRequest.topic_stats) + return &_impl_.topic_stats_; +} +inline const ::greptime::v1::meta::TopicStat& HeartbeatRequest::_internal_topic_stats(int index) const { + return _impl_.topic_stats_.Get(index); +} +inline const ::greptime::v1::meta::TopicStat& HeartbeatRequest::topic_stats(int index) const { + // @@protoc_insertion_point(field_get:greptime.v1.meta.HeartbeatRequest.topic_stats) + return _internal_topic_stats(index); +} +inline ::greptime::v1::meta::TopicStat* HeartbeatRequest::_internal_add_topic_stats() { + return _impl_.topic_stats_.Add(); +} +inline ::greptime::v1::meta::TopicStat* HeartbeatRequest::add_topic_stats() { + ::greptime::v1::meta::TopicStat* _add = _internal_add_topic_stats(); + // @@protoc_insertion_point(field_add:greptime.v1.meta.HeartbeatRequest.topic_stats) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::meta::TopicStat >& +HeartbeatRequest::topic_stats() const { + // @@protoc_insertion_point(field_list:greptime.v1.meta.HeartbeatRequest.topic_stats) + return _impl_.topic_stats_; +} + inline bool HeartbeatRequest::has_node_workloads() const { return node_workloads_case() != NODE_WORKLOADS_NOT_SET; } @@ -4227,6 +4477,120 @@ RegionStat::mutable_extensions() { // ------------------------------------------------------------------- +// TopicStat + +// string topic_name = 1; +inline void TopicStat::clear_topic_name() { + _impl_.topic_name_.ClearToEmpty(); +} +inline const std::string& TopicStat::topic_name() const { + // @@protoc_insertion_point(field_get:greptime.v1.meta.TopicStat.topic_name) + return _internal_topic_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void TopicStat::set_topic_name(ArgT0&& arg0, ArgT... args) { + + _impl_.topic_name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:greptime.v1.meta.TopicStat.topic_name) +} +inline std::string* TopicStat::mutable_topic_name() { + std::string* _s = _internal_mutable_topic_name(); + // @@protoc_insertion_point(field_mutable:greptime.v1.meta.TopicStat.topic_name) + return _s; +} +inline const std::string& TopicStat::_internal_topic_name() const { + return _impl_.topic_name_.Get(); +} +inline void TopicStat::_internal_set_topic_name(const std::string& value) { + + _impl_.topic_name_.Set(value, GetArenaForAllocation()); +} +inline std::string* TopicStat::_internal_mutable_topic_name() { + + return _impl_.topic_name_.Mutable(GetArenaForAllocation()); +} +inline std::string* TopicStat::release_topic_name() { + // @@protoc_insertion_point(field_release:greptime.v1.meta.TopicStat.topic_name) + return _impl_.topic_name_.Release(); +} +inline void TopicStat::set_allocated_topic_name(std::string* topic_name) { + if (topic_name != nullptr) { + + } else { + + } + _impl_.topic_name_.SetAllocated(topic_name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.topic_name_.IsDefault()) { + _impl_.topic_name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:greptime.v1.meta.TopicStat.topic_name) +} + +// uint64 record_size = 2; +inline void TopicStat::clear_record_size() { + _impl_.record_size_ = uint64_t{0u}; +} +inline uint64_t TopicStat::_internal_record_size() const { + return _impl_.record_size_; +} +inline uint64_t TopicStat::record_size() const { + // @@protoc_insertion_point(field_get:greptime.v1.meta.TopicStat.record_size) + return _internal_record_size(); +} +inline void TopicStat::_internal_set_record_size(uint64_t value) { + + _impl_.record_size_ = value; +} +inline void TopicStat::set_record_size(uint64_t value) { + _internal_set_record_size(value); + // @@protoc_insertion_point(field_set:greptime.v1.meta.TopicStat.record_size) +} + +// uint64 record_num = 3; +inline void TopicStat::clear_record_num() { + _impl_.record_num_ = uint64_t{0u}; +} +inline uint64_t TopicStat::_internal_record_num() const { + return _impl_.record_num_; +} +inline uint64_t TopicStat::record_num() const { + // @@protoc_insertion_point(field_get:greptime.v1.meta.TopicStat.record_num) + return _internal_record_num(); +} +inline void TopicStat::_internal_set_record_num(uint64_t value) { + + _impl_.record_num_ = value; +} +inline void TopicStat::set_record_num(uint64_t value) { + _internal_set_record_num(value); + // @@protoc_insertion_point(field_set:greptime.v1.meta.TopicStat.record_num) +} + +// uint64 latest_entry_id = 4; +inline void TopicStat::clear_latest_entry_id() { + _impl_.latest_entry_id_ = uint64_t{0u}; +} +inline uint64_t TopicStat::_internal_latest_entry_id() const { + return _impl_.latest_entry_id_; +} +inline uint64_t TopicStat::latest_entry_id() const { + // @@protoc_insertion_point(field_get:greptime.v1.meta.TopicStat.latest_entry_id) + return _internal_latest_entry_id(); +} +inline void TopicStat::_internal_set_latest_entry_id(uint64_t value) { + + _impl_.latest_entry_id_ = value; +} +inline void TopicStat::set_latest_entry_id(uint64_t value) { + _internal_set_latest_entry_id(value); + // @@protoc_insertion_point(field_set:greptime.v1.meta.TopicStat.latest_entry_id) +} + +// ------------------------------------------------------------------- + // ------------------------------------------------------------------- // ------------------------------------------------------------------- @@ -5344,6 +5708,8 @@ inline MailboxMessage::PayloadCase MailboxMessage::payload_case() const { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/go/greptime/v1/meta/heartbeat.pb.go b/go/greptime/v1/meta/heartbeat.pb.go index 66d3106..c2e65ba 100644 --- a/go/greptime/v1/meta/heartbeat.pb.go +++ b/go/greptime/v1/meta/heartbeat.pb.go @@ -118,6 +118,8 @@ type HeartbeatRequest struct { // *HeartbeatRequest_Frontend // *HeartbeatRequest_Flownode NodeWorkloads isHeartbeatRequest_NodeWorkloads `protobuf_oneof:"node_workloads"` + // The topic stats of the datanode. + TopicStats []*TopicStat `protobuf:"bytes,13,rep,name=topic_stats,json=topicStats,proto3" json:"topic_stats,omitempty"` } func (x *HeartbeatRequest) Reset() { @@ -243,6 +245,13 @@ func (x *HeartbeatRequest) GetFlownode() *FlownodeWorkloads { return nil } +func (x *HeartbeatRequest) GetTopicStats() []*TopicStat { + if x != nil { + return x.TopicStats + } + return nil +} + type isHeartbeatRequest_NodeWorkloads interface { isHeartbeatRequest_NodeWorkloads() } @@ -584,6 +593,81 @@ func (x *RegionStat) GetExtensions() map[string][]byte { return nil } +type TopicStat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The topic name + TopicName string `protobuf:"bytes,1,opt,name=topic_name,json=topicName,proto3" json:"topic_name,omitempty"` + // The total record size appended to topic since the datanode started. + RecordSize uint64 `protobuf:"varint,2,opt,name=record_size,json=recordSize,proto3" json:"record_size,omitempty"` + // The total record number appended to topic since the datanode started. + RecordNum uint64 `protobuf:"varint,3,opt,name=record_num,json=recordNum,proto3" json:"record_num,omitempty"` + // The latest entry id of the topic. + LatestEntryId uint64 `protobuf:"varint,4,opt,name=latest_entry_id,json=latestEntryId,proto3" json:"latest_entry_id,omitempty"` +} + +func (x *TopicStat) Reset() { + *x = TopicStat{} + if protoimpl.UnsafeEnabled { + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TopicStat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TopicStat) ProtoMessage() {} + +func (x *TopicStat) ProtoReflect() protoreflect.Message { + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TopicStat.ProtoReflect.Descriptor instead. +func (*TopicStat) Descriptor() ([]byte, []int) { + return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{6} +} + +func (x *TopicStat) GetTopicName() string { + if x != nil { + return x.TopicName + } + return "" +} + +func (x *TopicStat) GetRecordSize() uint64 { + if x != nil { + return x.RecordSize + } + return 0 +} + +func (x *TopicStat) GetRecordNum() uint64 { + if x != nil { + return x.RecordNum + } + return 0 +} + +func (x *TopicStat) GetLatestEntryId() uint64 { + if x != nil { + return x.LatestEntryId + } + return 0 +} + type FlowStat struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -599,7 +683,7 @@ type FlowStat struct { func (x *FlowStat) Reset() { *x = FlowStat{} if protoimpl.UnsafeEnabled { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[6] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -612,7 +696,7 @@ func (x *FlowStat) String() string { func (*FlowStat) ProtoMessage() {} func (x *FlowStat) ProtoReflect() protoreflect.Message { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[6] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -625,7 +709,7 @@ func (x *FlowStat) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowStat.ProtoReflect.Descriptor instead. func (*FlowStat) Descriptor() ([]byte, []int) { - return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{6} + return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{7} } func (x *FlowStat) GetFlowStatSize() map[uint32]uint64 { @@ -655,7 +739,7 @@ type HeartbeatResponse struct { func (x *HeartbeatResponse) Reset() { *x = HeartbeatResponse{} if protoimpl.UnsafeEnabled { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[7] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -668,7 +752,7 @@ func (x *HeartbeatResponse) String() string { func (*HeartbeatResponse) ProtoMessage() {} func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[7] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -681,7 +765,7 @@ func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead. func (*HeartbeatResponse) Descriptor() ([]byte, []int) { - return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{7} + return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{8} } func (x *HeartbeatResponse) GetHeader() *ResponseHeader { @@ -719,7 +803,7 @@ type GrantedRegion struct { func (x *GrantedRegion) Reset() { *x = GrantedRegion{} if protoimpl.UnsafeEnabled { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[8] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -732,7 +816,7 @@ func (x *GrantedRegion) String() string { func (*GrantedRegion) ProtoMessage() {} func (x *GrantedRegion) ProtoReflect() protoreflect.Message { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[8] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -745,7 +829,7 @@ func (x *GrantedRegion) ProtoReflect() protoreflect.Message { // Deprecated: Use GrantedRegion.ProtoReflect.Descriptor instead. func (*GrantedRegion) Descriptor() ([]byte, []int) { - return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{8} + return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{9} } func (x *GrantedRegion) GetRegionId() uint64 { @@ -783,7 +867,7 @@ type RegionLease struct { func (x *RegionLease) Reset() { *x = RegionLease{} if protoimpl.UnsafeEnabled { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[9] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -796,7 +880,7 @@ func (x *RegionLease) String() string { func (*RegionLease) ProtoMessage() {} func (x *RegionLease) ProtoReflect() protoreflect.Message { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[9] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -809,7 +893,7 @@ func (x *RegionLease) ProtoReflect() protoreflect.Message { // Deprecated: Use RegionLease.ProtoReflect.Descriptor instead. func (*RegionLease) Descriptor() ([]byte, []int) { - return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{9} + return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{10} } func (x *RegionLease) GetRegions() []*GrantedRegion { @@ -851,7 +935,7 @@ type AskLeaderRequest struct { func (x *AskLeaderRequest) Reset() { *x = AskLeaderRequest{} if protoimpl.UnsafeEnabled { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[10] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -864,7 +948,7 @@ func (x *AskLeaderRequest) String() string { func (*AskLeaderRequest) ProtoMessage() {} func (x *AskLeaderRequest) ProtoReflect() protoreflect.Message { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[10] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -877,7 +961,7 @@ func (x *AskLeaderRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AskLeaderRequest.ProtoReflect.Descriptor instead. func (*AskLeaderRequest) Descriptor() ([]byte, []int) { - return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{10} + return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{11} } func (x *AskLeaderRequest) GetHeader() *RequestHeader { @@ -899,7 +983,7 @@ type AskLeaderResponse struct { func (x *AskLeaderResponse) Reset() { *x = AskLeaderResponse{} if protoimpl.UnsafeEnabled { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[11] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -912,7 +996,7 @@ func (x *AskLeaderResponse) String() string { func (*AskLeaderResponse) ProtoMessage() {} func (x *AskLeaderResponse) ProtoReflect() protoreflect.Message { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[11] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -925,7 +1009,7 @@ func (x *AskLeaderResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AskLeaderResponse.ProtoReflect.Descriptor instead. func (*AskLeaderResponse) Descriptor() ([]byte, []int) { - return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{11} + return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{12} } func (x *AskLeaderResponse) GetHeader() *ResponseHeader { @@ -967,7 +1051,7 @@ type MailboxMessage struct { func (x *MailboxMessage) Reset() { *x = MailboxMessage{} if protoimpl.UnsafeEnabled { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[12] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -980,7 +1064,7 @@ func (x *MailboxMessage) String() string { func (*MailboxMessage) ProtoMessage() {} func (x *MailboxMessage) ProtoReflect() protoreflect.Message { - mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[12] + mi := &file_greptime_v1_meta_heartbeat_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -993,7 +1077,7 @@ func (x *MailboxMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use MailboxMessage.ProtoReflect.Descriptor instead. func (*MailboxMessage) Descriptor() ([]byte, []int) { - return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{12} + return file_greptime_v1_meta_heartbeat_proto_rawDescGZIP(), []int{13} } func (x *MailboxMessage) GetId() uint64 { @@ -1063,7 +1147,7 @@ var file_greptime_v1_meta_heartbeat_proto_rawDesc = []byte{ 0x74, 0x6f, 0x12, 0x10, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x1a, 0x1d, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xe1, 0x05, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x6f, 0x74, 0x6f, 0x22, 0x9f, 0x06, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 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, @@ -1108,153 +1192,166 @@ var file_greptime_v1_meta_heartbeat_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x6e, 0x6f, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x48, 0x00, 0x52, 0x08, 0x66, 0x6c, 0x6f, - 0x77, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x29, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 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, 0x29, 0x0a, 0x11, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 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, 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, 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, + 0x77, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x65, + 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x29, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 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, 0x29, 0x0a, 0x11, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 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, 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, 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, + 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, 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, 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, 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, + 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, + 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, + 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 ( @@ -1270,7 +1367,7 @@ func file_greptime_v1_meta_heartbeat_proto_rawDescGZIP() []byte { } var file_greptime_v1_meta_heartbeat_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_greptime_v1_meta_heartbeat_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_greptime_v1_meta_heartbeat_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_greptime_v1_meta_heartbeat_proto_goTypes = []interface{}{ (RegionRole)(0), // 0: greptime.v1.meta.RegionRole (*HeartbeatRequest)(nil), // 1: greptime.v1.meta.HeartbeatRequest @@ -1279,55 +1376,57 @@ var file_greptime_v1_meta_heartbeat_proto_goTypes = []interface{}{ (*FlownodeWorkloads)(nil), // 4: greptime.v1.meta.FlownodeWorkloads (*NodeInfo)(nil), // 5: greptime.v1.meta.NodeInfo (*RegionStat)(nil), // 6: greptime.v1.meta.RegionStat - (*FlowStat)(nil), // 7: greptime.v1.meta.FlowStat - (*HeartbeatResponse)(nil), // 8: greptime.v1.meta.HeartbeatResponse - (*GrantedRegion)(nil), // 9: greptime.v1.meta.GrantedRegion - (*RegionLease)(nil), // 10: greptime.v1.meta.RegionLease - (*AskLeaderRequest)(nil), // 11: greptime.v1.meta.AskLeaderRequest - (*AskLeaderResponse)(nil), // 12: greptime.v1.meta.AskLeaderResponse - (*MailboxMessage)(nil), // 13: greptime.v1.meta.MailboxMessage - nil, // 14: greptime.v1.meta.RegionStat.ExtensionsEntry - nil, // 15: greptime.v1.meta.FlowStat.FlowStatSizeEntry - nil, // 16: greptime.v1.meta.FlowStat.FlowLastExecTimeMapEntry - nil, // 17: greptime.v1.meta.GrantedRegion.ExtensionsEntry - (*RequestHeader)(nil), // 18: greptime.v1.meta.RequestHeader - (*Peer)(nil), // 19: greptime.v1.meta.Peer - (*TimeInterval)(nil), // 20: greptime.v1.meta.TimeInterval - (*ResponseHeader)(nil), // 21: greptime.v1.meta.ResponseHeader + (*TopicStat)(nil), // 7: greptime.v1.meta.TopicStat + (*FlowStat)(nil), // 8: greptime.v1.meta.FlowStat + (*HeartbeatResponse)(nil), // 9: greptime.v1.meta.HeartbeatResponse + (*GrantedRegion)(nil), // 10: greptime.v1.meta.GrantedRegion + (*RegionLease)(nil), // 11: greptime.v1.meta.RegionLease + (*AskLeaderRequest)(nil), // 12: greptime.v1.meta.AskLeaderRequest + (*AskLeaderResponse)(nil), // 13: greptime.v1.meta.AskLeaderResponse + (*MailboxMessage)(nil), // 14: greptime.v1.meta.MailboxMessage + nil, // 15: greptime.v1.meta.RegionStat.ExtensionsEntry + nil, // 16: greptime.v1.meta.FlowStat.FlowStatSizeEntry + nil, // 17: greptime.v1.meta.FlowStat.FlowLastExecTimeMapEntry + nil, // 18: greptime.v1.meta.GrantedRegion.ExtensionsEntry + (*RequestHeader)(nil), // 19: greptime.v1.meta.RequestHeader + (*Peer)(nil), // 20: greptime.v1.meta.Peer + (*TimeInterval)(nil), // 21: greptime.v1.meta.TimeInterval + (*ResponseHeader)(nil), // 22: greptime.v1.meta.ResponseHeader } var file_greptime_v1_meta_heartbeat_proto_depIdxs = []int32{ - 18, // 0: greptime.v1.meta.HeartbeatRequest.header:type_name -> greptime.v1.meta.RequestHeader - 19, // 1: greptime.v1.meta.HeartbeatRequest.peer:type_name -> greptime.v1.meta.Peer - 20, // 2: greptime.v1.meta.HeartbeatRequest.report_interval:type_name -> greptime.v1.meta.TimeInterval + 19, // 0: greptime.v1.meta.HeartbeatRequest.header:type_name -> greptime.v1.meta.RequestHeader + 20, // 1: greptime.v1.meta.HeartbeatRequest.peer:type_name -> greptime.v1.meta.Peer + 21, // 2: greptime.v1.meta.HeartbeatRequest.report_interval:type_name -> greptime.v1.meta.TimeInterval 6, // 3: greptime.v1.meta.HeartbeatRequest.region_stats:type_name -> greptime.v1.meta.RegionStat - 13, // 4: greptime.v1.meta.HeartbeatRequest.mailbox_message:type_name -> greptime.v1.meta.MailboxMessage + 14, // 4: greptime.v1.meta.HeartbeatRequest.mailbox_message:type_name -> greptime.v1.meta.MailboxMessage 5, // 5: greptime.v1.meta.HeartbeatRequest.info:type_name -> greptime.v1.meta.NodeInfo - 7, // 6: greptime.v1.meta.HeartbeatRequest.flow_stat:type_name -> greptime.v1.meta.FlowStat + 8, // 6: greptime.v1.meta.HeartbeatRequest.flow_stat:type_name -> greptime.v1.meta.FlowStat 2, // 7: greptime.v1.meta.HeartbeatRequest.datanode:type_name -> greptime.v1.meta.DatanodeWorkloads 3, // 8: greptime.v1.meta.HeartbeatRequest.frontend:type_name -> greptime.v1.meta.FrontendWorkloads 4, // 9: greptime.v1.meta.HeartbeatRequest.flownode:type_name -> greptime.v1.meta.FlownodeWorkloads - 0, // 10: greptime.v1.meta.RegionStat.role:type_name -> greptime.v1.meta.RegionRole - 14, // 11: greptime.v1.meta.RegionStat.extensions:type_name -> greptime.v1.meta.RegionStat.ExtensionsEntry - 15, // 12: greptime.v1.meta.FlowStat.flow_stat_size:type_name -> greptime.v1.meta.FlowStat.FlowStatSizeEntry - 16, // 13: greptime.v1.meta.FlowStat.flow_last_exec_time_map:type_name -> greptime.v1.meta.FlowStat.FlowLastExecTimeMapEntry - 21, // 14: greptime.v1.meta.HeartbeatResponse.header:type_name -> greptime.v1.meta.ResponseHeader - 13, // 15: greptime.v1.meta.HeartbeatResponse.mailbox_message:type_name -> greptime.v1.meta.MailboxMessage - 10, // 16: greptime.v1.meta.HeartbeatResponse.region_lease:type_name -> greptime.v1.meta.RegionLease - 0, // 17: greptime.v1.meta.GrantedRegion.role:type_name -> greptime.v1.meta.RegionRole - 17, // 18: greptime.v1.meta.GrantedRegion.extensions:type_name -> greptime.v1.meta.GrantedRegion.ExtensionsEntry - 9, // 19: greptime.v1.meta.RegionLease.regions:type_name -> greptime.v1.meta.GrantedRegion - 18, // 20: greptime.v1.meta.AskLeaderRequest.header:type_name -> greptime.v1.meta.RequestHeader - 21, // 21: greptime.v1.meta.AskLeaderResponse.header:type_name -> greptime.v1.meta.ResponseHeader - 19, // 22: greptime.v1.meta.AskLeaderResponse.leader:type_name -> greptime.v1.meta.Peer - 1, // 23: greptime.v1.meta.Heartbeat.Heartbeat:input_type -> greptime.v1.meta.HeartbeatRequest - 11, // 24: greptime.v1.meta.Heartbeat.AskLeader:input_type -> greptime.v1.meta.AskLeaderRequest - 8, // 25: greptime.v1.meta.Heartbeat.Heartbeat:output_type -> greptime.v1.meta.HeartbeatResponse - 12, // 26: greptime.v1.meta.Heartbeat.AskLeader:output_type -> greptime.v1.meta.AskLeaderResponse - 25, // [25:27] is the sub-list for method output_type - 23, // [23:25] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name + 7, // 10: greptime.v1.meta.HeartbeatRequest.topic_stats:type_name -> greptime.v1.meta.TopicStat + 0, // 11: greptime.v1.meta.RegionStat.role:type_name -> greptime.v1.meta.RegionRole + 15, // 12: greptime.v1.meta.RegionStat.extensions:type_name -> greptime.v1.meta.RegionStat.ExtensionsEntry + 16, // 13: greptime.v1.meta.FlowStat.flow_stat_size:type_name -> greptime.v1.meta.FlowStat.FlowStatSizeEntry + 17, // 14: greptime.v1.meta.FlowStat.flow_last_exec_time_map:type_name -> greptime.v1.meta.FlowStat.FlowLastExecTimeMapEntry + 22, // 15: greptime.v1.meta.HeartbeatResponse.header:type_name -> greptime.v1.meta.ResponseHeader + 14, // 16: greptime.v1.meta.HeartbeatResponse.mailbox_message:type_name -> greptime.v1.meta.MailboxMessage + 11, // 17: greptime.v1.meta.HeartbeatResponse.region_lease:type_name -> greptime.v1.meta.RegionLease + 0, // 18: greptime.v1.meta.GrantedRegion.role:type_name -> greptime.v1.meta.RegionRole + 18, // 19: greptime.v1.meta.GrantedRegion.extensions:type_name -> greptime.v1.meta.GrantedRegion.ExtensionsEntry + 10, // 20: greptime.v1.meta.RegionLease.regions:type_name -> greptime.v1.meta.GrantedRegion + 19, // 21: greptime.v1.meta.AskLeaderRequest.header:type_name -> greptime.v1.meta.RequestHeader + 22, // 22: greptime.v1.meta.AskLeaderResponse.header:type_name -> greptime.v1.meta.ResponseHeader + 20, // 23: greptime.v1.meta.AskLeaderResponse.leader:type_name -> greptime.v1.meta.Peer + 1, // 24: greptime.v1.meta.Heartbeat.Heartbeat:input_type -> greptime.v1.meta.HeartbeatRequest + 12, // 25: greptime.v1.meta.Heartbeat.AskLeader:input_type -> greptime.v1.meta.AskLeaderRequest + 9, // 26: greptime.v1.meta.Heartbeat.Heartbeat:output_type -> greptime.v1.meta.HeartbeatResponse + 13, // 27: greptime.v1.meta.Heartbeat.AskLeader:output_type -> greptime.v1.meta.AskLeaderResponse + 26, // [26:28] is the sub-list for method output_type + 24, // [24:26] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name } func init() { file_greptime_v1_meta_heartbeat_proto_init() } @@ -1410,7 +1509,7 @@ func file_greptime_v1_meta_heartbeat_proto_init() { } } file_greptime_v1_meta_heartbeat_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowStat); i { + switch v := v.(*TopicStat); i { case 0: return &v.state case 1: @@ -1422,7 +1521,7 @@ func file_greptime_v1_meta_heartbeat_proto_init() { } } file_greptime_v1_meta_heartbeat_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HeartbeatResponse); i { + switch v := v.(*FlowStat); i { case 0: return &v.state case 1: @@ -1434,7 +1533,7 @@ func file_greptime_v1_meta_heartbeat_proto_init() { } } file_greptime_v1_meta_heartbeat_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GrantedRegion); i { + switch v := v.(*HeartbeatResponse); i { case 0: return &v.state case 1: @@ -1446,7 +1545,7 @@ func file_greptime_v1_meta_heartbeat_proto_init() { } } file_greptime_v1_meta_heartbeat_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegionLease); i { + switch v := v.(*GrantedRegion); i { case 0: return &v.state case 1: @@ -1458,7 +1557,7 @@ func file_greptime_v1_meta_heartbeat_proto_init() { } } file_greptime_v1_meta_heartbeat_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AskLeaderRequest); i { + switch v := v.(*RegionLease); i { case 0: return &v.state case 1: @@ -1470,7 +1569,7 @@ func file_greptime_v1_meta_heartbeat_proto_init() { } } file_greptime_v1_meta_heartbeat_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AskLeaderResponse); i { + switch v := v.(*AskLeaderRequest); i { case 0: return &v.state case 1: @@ -1482,6 +1581,18 @@ func file_greptime_v1_meta_heartbeat_proto_init() { } } file_greptime_v1_meta_heartbeat_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AskLeaderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_greptime_v1_meta_heartbeat_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MailboxMessage); i { case 0: return &v.state @@ -1499,7 +1610,7 @@ func file_greptime_v1_meta_heartbeat_proto_init() { (*HeartbeatRequest_Frontend)(nil), (*HeartbeatRequest_Flownode)(nil), } - file_greptime_v1_meta_heartbeat_proto_msgTypes[12].OneofWrappers = []interface{}{ + file_greptime_v1_meta_heartbeat_proto_msgTypes[13].OneofWrappers = []interface{}{ (*MailboxMessage_Json)(nil), } type x struct{} @@ -1508,7 +1619,7 @@ func file_greptime_v1_meta_heartbeat_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_greptime_v1_meta_heartbeat_proto_rawDesc, NumEnums: 1, - NumMessages: 17, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/java/src/main/java/greptime/v1/meta/HeartbeatOuterClass.java b/java/src/main/java/greptime/v1/meta/HeartbeatOuterClass.java index 4b3908b..b483715 100644 --- a/java/src/main/java/greptime/v1/meta/HeartbeatOuterClass.java +++ b/java/src/main/java/greptime/v1/meta/HeartbeatOuterClass.java @@ -400,6 +400,50 @@ public final class HeartbeatOuterClass { */ greptime.v1.meta.HeartbeatOuterClass.FlownodeWorkloadsOrBuilder getFlownodeOrBuilder(); + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + java.util.List + getTopicStatsList(); + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + greptime.v1.meta.HeartbeatOuterClass.TopicStat getTopicStats(int index); + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + int getTopicStatsCount(); + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + java.util.List + getTopicStatsOrBuilderList(); + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + greptime.v1.meta.HeartbeatOuterClass.TopicStatOrBuilder getTopicStatsOrBuilder( + int index); + public greptime.v1.meta.HeartbeatOuterClass.HeartbeatRequest.NodeWorkloadsCase getNodeWorkloadsCase(); } /** @@ -416,6 +460,7 @@ public final class HeartbeatOuterClass { } private HeartbeatRequest() { regionStats_ = java.util.Collections.emptyList(); + topicStats_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -588,6 +633,15 @@ public final class HeartbeatOuterClass { nodeWorkloadsCase_ = 12; break; } + case 106: { + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + topicStats_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + topicStats_.add( + input.readMessage(greptime.v1.meta.HeartbeatOuterClass.TopicStat.parser(), extensionRegistry)); + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -608,6 +662,9 @@ public final class HeartbeatOuterClass { if (((mutable_bitField0_ & 0x00000001) != 0)) { regionStats_ = java.util.Collections.unmodifiableList(regionStats_); } + if (((mutable_bitField0_ & 0x00000002) != 0)) { + topicStats_ = java.util.Collections.unmodifiableList(topicStats_); + } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } @@ -1043,6 +1100,66 @@ public final class HeartbeatOuterClass { return greptime.v1.meta.HeartbeatOuterClass.FlownodeWorkloads.getDefaultInstance(); } + public static final int TOPIC_STATS_FIELD_NUMBER = 13; + private java.util.List topicStats_; + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + @java.lang.Override + public java.util.List getTopicStatsList() { + return topicStats_; + } + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + @java.lang.Override + public java.util.List + getTopicStatsOrBuilderList() { + return topicStats_; + } + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + @java.lang.Override + public int getTopicStatsCount() { + return topicStats_.size(); + } + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + @java.lang.Override + public greptime.v1.meta.HeartbeatOuterClass.TopicStat getTopicStats(int index) { + return topicStats_.get(index); + } + /** + *
+     * The topic stats of the datanode.
+     * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + @java.lang.Override + public greptime.v1.meta.HeartbeatOuterClass.TopicStatOrBuilder getTopicStatsOrBuilder( + int index) { + return topicStats_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -1093,6 +1210,9 @@ public final class HeartbeatOuterClass { if (nodeWorkloadsCase_ == 12) { output.writeMessage(12, (greptime.v1.meta.HeartbeatOuterClass.FlownodeWorkloads) nodeWorkloads_); } + for (int i = 0; i < topicStats_.size(); i++) { + output.writeMessage(13, topicStats_.get(i)); + } unknownFields.writeTo(output); } @@ -1150,6 +1270,10 @@ public final class HeartbeatOuterClass { size += com.google.protobuf.CodedOutputStream .computeMessageSize(12, (greptime.v1.meta.HeartbeatOuterClass.FlownodeWorkloads) nodeWorkloads_); } + for (int i = 0; i < topicStats_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(13, topicStats_.get(i)); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -1201,6 +1325,8 @@ public final class HeartbeatOuterClass { if (!getFlowStat() .equals(other.getFlowStat())) return false; } + if (!getTopicStatsList() + .equals(other.getTopicStatsList())) return false; if (!getNodeWorkloadsCase().equals(other.getNodeWorkloadsCase())) return false; switch (nodeWorkloadsCase_) { case 10: @@ -1263,6 +1389,10 @@ public final class HeartbeatOuterClass { hash = (37 * hash) + FLOW_STAT_FIELD_NUMBER; hash = (53 * hash) + getFlowStat().hashCode(); } + if (getTopicStatsCount() > 0) { + hash = (37 * hash) + TOPIC_STATS_FIELD_NUMBER; + hash = (53 * hash) + getTopicStatsList().hashCode(); + } switch (nodeWorkloadsCase_) { case 10: hash = (37 * hash) + DATANODE_FIELD_NUMBER; @@ -1408,6 +1538,7 @@ public final class HeartbeatOuterClass { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getRegionStatsFieldBuilder(); + getTopicStatsFieldBuilder(); } } @java.lang.Override @@ -1459,6 +1590,12 @@ public final class HeartbeatOuterClass { flowStat_ = null; flowStatBuilder_ = null; } + if (topicStatsBuilder_ == null) { + topicStats_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + } else { + topicStatsBuilder_.clear(); + } nodeWorkloadsCase_ = 0; nodeWorkloads_ = null; return this; @@ -1550,6 +1687,15 @@ public final class HeartbeatOuterClass { result.nodeWorkloads_ = flownodeBuilder_.build(); } } + if (topicStatsBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + topicStats_ = java.util.Collections.unmodifiableList(topicStats_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.topicStats_ = topicStats_; + } else { + result.topicStats_ = topicStatsBuilder_.build(); + } result.nodeWorkloadsCase_ = nodeWorkloadsCase_; onBuilt(); return result; @@ -1649,6 +1795,32 @@ public final class HeartbeatOuterClass { if (other.hasFlowStat()) { mergeFlowStat(other.getFlowStat()); } + if (topicStatsBuilder_ == null) { + if (!other.topicStats_.isEmpty()) { + if (topicStats_.isEmpty()) { + topicStats_ = other.topicStats_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureTopicStatsIsMutable(); + topicStats_.addAll(other.topicStats_); + } + onChanged(); + } + } else { + if (!other.topicStats_.isEmpty()) { + if (topicStatsBuilder_.isEmpty()) { + topicStatsBuilder_.dispose(); + topicStatsBuilder_ = null; + topicStats_ = other.topicStats_; + bitField0_ = (bitField0_ & ~0x00000002); + topicStatsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getTopicStatsFieldBuilder() : null; + } else { + topicStatsBuilder_.addAllMessages(other.topicStats_); + } + } + } switch (other.getNodeWorkloadsCase()) { case DATANODE: { mergeDatanode(other.getDatanode()); @@ -3356,6 +3528,318 @@ public final class HeartbeatOuterClass { onChanged();; return flownodeBuilder_; } + + private java.util.List topicStats_ = + java.util.Collections.emptyList(); + private void ensureTopicStatsIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + topicStats_ = new java.util.ArrayList(topicStats_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + greptime.v1.meta.HeartbeatOuterClass.TopicStat, greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder, greptime.v1.meta.HeartbeatOuterClass.TopicStatOrBuilder> topicStatsBuilder_; + + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public java.util.List getTopicStatsList() { + if (topicStatsBuilder_ == null) { + return java.util.Collections.unmodifiableList(topicStats_); + } else { + return topicStatsBuilder_.getMessageList(); + } + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public int getTopicStatsCount() { + if (topicStatsBuilder_ == null) { + return topicStats_.size(); + } else { + return topicStatsBuilder_.getCount(); + } + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public greptime.v1.meta.HeartbeatOuterClass.TopicStat getTopicStats(int index) { + if (topicStatsBuilder_ == null) { + return topicStats_.get(index); + } else { + return topicStatsBuilder_.getMessage(index); + } + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder setTopicStats( + int index, greptime.v1.meta.HeartbeatOuterClass.TopicStat value) { + if (topicStatsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopicStatsIsMutable(); + topicStats_.set(index, value); + onChanged(); + } else { + topicStatsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder setTopicStats( + int index, greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder builderForValue) { + if (topicStatsBuilder_ == null) { + ensureTopicStatsIsMutable(); + topicStats_.set(index, builderForValue.build()); + onChanged(); + } else { + topicStatsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder addTopicStats(greptime.v1.meta.HeartbeatOuterClass.TopicStat value) { + if (topicStatsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopicStatsIsMutable(); + topicStats_.add(value); + onChanged(); + } else { + topicStatsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder addTopicStats( + int index, greptime.v1.meta.HeartbeatOuterClass.TopicStat value) { + if (topicStatsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopicStatsIsMutable(); + topicStats_.add(index, value); + onChanged(); + } else { + topicStatsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder addTopicStats( + greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder builderForValue) { + if (topicStatsBuilder_ == null) { + ensureTopicStatsIsMutable(); + topicStats_.add(builderForValue.build()); + onChanged(); + } else { + topicStatsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder addTopicStats( + int index, greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder builderForValue) { + if (topicStatsBuilder_ == null) { + ensureTopicStatsIsMutable(); + topicStats_.add(index, builderForValue.build()); + onChanged(); + } else { + topicStatsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder addAllTopicStats( + java.lang.Iterable values) { + if (topicStatsBuilder_ == null) { + ensureTopicStatsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, topicStats_); + onChanged(); + } else { + topicStatsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder clearTopicStats() { + if (topicStatsBuilder_ == null) { + topicStats_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + topicStatsBuilder_.clear(); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public Builder removeTopicStats(int index) { + if (topicStatsBuilder_ == null) { + ensureTopicStatsIsMutable(); + topicStats_.remove(index); + onChanged(); + } else { + topicStatsBuilder_.remove(index); + } + return this; + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder getTopicStatsBuilder( + int index) { + return getTopicStatsFieldBuilder().getBuilder(index); + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public greptime.v1.meta.HeartbeatOuterClass.TopicStatOrBuilder getTopicStatsOrBuilder( + int index) { + if (topicStatsBuilder_ == null) { + return topicStats_.get(index); } else { + return topicStatsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public java.util.List + getTopicStatsOrBuilderList() { + if (topicStatsBuilder_ != null) { + return topicStatsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(topicStats_); + } + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder addTopicStatsBuilder() { + return getTopicStatsFieldBuilder().addBuilder( + greptime.v1.meta.HeartbeatOuterClass.TopicStat.getDefaultInstance()); + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder addTopicStatsBuilder( + int index) { + return getTopicStatsFieldBuilder().addBuilder( + index, greptime.v1.meta.HeartbeatOuterClass.TopicStat.getDefaultInstance()); + } + /** + *
+       * The topic stats of the datanode.
+       * 
+ * + * repeated .greptime.v1.meta.TopicStat topic_stats = 13; + */ + public java.util.List + getTopicStatsBuilderList() { + return getTopicStatsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + greptime.v1.meta.HeartbeatOuterClass.TopicStat, greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder, greptime.v1.meta.HeartbeatOuterClass.TopicStatOrBuilder> + getTopicStatsFieldBuilder() { + if (topicStatsBuilder_ == null) { + topicStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + greptime.v1.meta.HeartbeatOuterClass.TopicStat, greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder, greptime.v1.meta.HeartbeatOuterClass.TopicStatOrBuilder>( + topicStats_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + topicStats_ = null; + } + return topicStatsBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -7675,6 +8159,885 @@ com.google.protobuf.ByteString defaultValue); } + public interface TopicStatOrBuilder extends + // @@protoc_insertion_point(interface_extends:greptime.v1.meta.TopicStat) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * The topic name
+     * 
+ * + * string topic_name = 1; + * @return The topicName. + */ + java.lang.String getTopicName(); + /** + *
+     * The topic name
+     * 
+ * + * string topic_name = 1; + * @return The bytes for topicName. + */ + com.google.protobuf.ByteString + getTopicNameBytes(); + + /** + *
+     * The total record size appended to topic since the datanode started.
+     * 
+ * + * uint64 record_size = 2; + * @return The recordSize. + */ + long getRecordSize(); + + /** + *
+     * The total record number appended to topic since the datanode started.
+     * 
+ * + * uint64 record_num = 3; + * @return The recordNum. + */ + long getRecordNum(); + + /** + *
+     * The latest entry id of the topic.
+     * 
+ * + * uint64 latest_entry_id = 4; + * @return The latestEntryId. + */ + long getLatestEntryId(); + } + /** + * Protobuf type {@code greptime.v1.meta.TopicStat} + */ + public static final class TopicStat extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:greptime.v1.meta.TopicStat) + TopicStatOrBuilder { + private static final long serialVersionUID = 0L; + // Use TopicStat.newBuilder() to construct. + private TopicStat(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TopicStat() { + topicName_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TopicStat(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private TopicStat( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + topicName_ = s; + break; + } + case 16: { + + recordSize_ = input.readUInt64(); + break; + } + case 24: { + + recordNum_ = input.readUInt64(); + break; + } + case 32: { + + latestEntryId_ = input.readUInt64(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return greptime.v1.meta.HeartbeatOuterClass.internal_static_greptime_v1_meta_TopicStat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return greptime.v1.meta.HeartbeatOuterClass.internal_static_greptime_v1_meta_TopicStat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + greptime.v1.meta.HeartbeatOuterClass.TopicStat.class, greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder.class); + } + + public static final int TOPIC_NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object topicName_; + /** + *
+     * The topic name
+     * 
+ * + * string topic_name = 1; + * @return The topicName. + */ + @java.lang.Override + public java.lang.String getTopicName() { + java.lang.Object ref = topicName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + topicName_ = s; + return s; + } + } + /** + *
+     * The topic name
+     * 
+ * + * string topic_name = 1; + * @return The bytes for topicName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTopicNameBytes() { + java.lang.Object ref = topicName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + topicName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RECORD_SIZE_FIELD_NUMBER = 2; + private long recordSize_; + /** + *
+     * The total record size appended to topic since the datanode started.
+     * 
+ * + * uint64 record_size = 2; + * @return The recordSize. + */ + @java.lang.Override + public long getRecordSize() { + return recordSize_; + } + + public static final int RECORD_NUM_FIELD_NUMBER = 3; + private long recordNum_; + /** + *
+     * The total record number appended to topic since the datanode started.
+     * 
+ * + * uint64 record_num = 3; + * @return The recordNum. + */ + @java.lang.Override + public long getRecordNum() { + return recordNum_; + } + + public static final int LATEST_ENTRY_ID_FIELD_NUMBER = 4; + private long latestEntryId_; + /** + *
+     * The latest entry id of the topic.
+     * 
+ * + * uint64 latest_entry_id = 4; + * @return The latestEntryId. + */ + @java.lang.Override + public long getLatestEntryId() { + return latestEntryId_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topicName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, topicName_); + } + if (recordSize_ != 0L) { + output.writeUInt64(2, recordSize_); + } + if (recordNum_ != 0L) { + output.writeUInt64(3, recordNum_); + } + if (latestEntryId_ != 0L) { + output.writeUInt64(4, latestEntryId_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topicName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, topicName_); + } + if (recordSize_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, recordSize_); + } + if (recordNum_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, recordNum_); + } + if (latestEntryId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, latestEntryId_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof greptime.v1.meta.HeartbeatOuterClass.TopicStat)) { + return super.equals(obj); + } + greptime.v1.meta.HeartbeatOuterClass.TopicStat other = (greptime.v1.meta.HeartbeatOuterClass.TopicStat) obj; + + if (!getTopicName() + .equals(other.getTopicName())) return false; + if (getRecordSize() + != other.getRecordSize()) return false; + if (getRecordNum() + != other.getRecordNum()) return false; + if (getLatestEntryId() + != other.getLatestEntryId()) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TOPIC_NAME_FIELD_NUMBER; + hash = (53 * hash) + getTopicName().hashCode(); + hash = (37 * hash) + RECORD_SIZE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRecordSize()); + hash = (37 * hash) + RECORD_NUM_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRecordNum()); + hash = (37 * hash) + LATEST_ENTRY_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getLatestEntryId()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(greptime.v1.meta.HeartbeatOuterClass.TopicStat prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code greptime.v1.meta.TopicStat} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:greptime.v1.meta.TopicStat) + greptime.v1.meta.HeartbeatOuterClass.TopicStatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return greptime.v1.meta.HeartbeatOuterClass.internal_static_greptime_v1_meta_TopicStat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return greptime.v1.meta.HeartbeatOuterClass.internal_static_greptime_v1_meta_TopicStat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + greptime.v1.meta.HeartbeatOuterClass.TopicStat.class, greptime.v1.meta.HeartbeatOuterClass.TopicStat.Builder.class); + } + + // Construct using greptime.v1.meta.HeartbeatOuterClass.TopicStat.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + topicName_ = ""; + + recordSize_ = 0L; + + recordNum_ = 0L; + + latestEntryId_ = 0L; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return greptime.v1.meta.HeartbeatOuterClass.internal_static_greptime_v1_meta_TopicStat_descriptor; + } + + @java.lang.Override + public greptime.v1.meta.HeartbeatOuterClass.TopicStat getDefaultInstanceForType() { + return greptime.v1.meta.HeartbeatOuterClass.TopicStat.getDefaultInstance(); + } + + @java.lang.Override + public greptime.v1.meta.HeartbeatOuterClass.TopicStat build() { + greptime.v1.meta.HeartbeatOuterClass.TopicStat result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public greptime.v1.meta.HeartbeatOuterClass.TopicStat buildPartial() { + greptime.v1.meta.HeartbeatOuterClass.TopicStat result = new greptime.v1.meta.HeartbeatOuterClass.TopicStat(this); + result.topicName_ = topicName_; + result.recordSize_ = recordSize_; + result.recordNum_ = recordNum_; + result.latestEntryId_ = latestEntryId_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof greptime.v1.meta.HeartbeatOuterClass.TopicStat) { + return mergeFrom((greptime.v1.meta.HeartbeatOuterClass.TopicStat)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(greptime.v1.meta.HeartbeatOuterClass.TopicStat other) { + if (other == greptime.v1.meta.HeartbeatOuterClass.TopicStat.getDefaultInstance()) return this; + if (!other.getTopicName().isEmpty()) { + topicName_ = other.topicName_; + onChanged(); + } + if (other.getRecordSize() != 0L) { + setRecordSize(other.getRecordSize()); + } + if (other.getRecordNum() != 0L) { + setRecordNum(other.getRecordNum()); + } + if (other.getLatestEntryId() != 0L) { + setLatestEntryId(other.getLatestEntryId()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + greptime.v1.meta.HeartbeatOuterClass.TopicStat parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (greptime.v1.meta.HeartbeatOuterClass.TopicStat) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object topicName_ = ""; + /** + *
+       * The topic name
+       * 
+ * + * string topic_name = 1; + * @return The topicName. + */ + public java.lang.String getTopicName() { + java.lang.Object ref = topicName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + topicName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * The topic name
+       * 
+ * + * string topic_name = 1; + * @return The bytes for topicName. + */ + public com.google.protobuf.ByteString + getTopicNameBytes() { + java.lang.Object ref = topicName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + topicName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * The topic name
+       * 
+ * + * string topic_name = 1; + * @param value The topicName to set. + * @return This builder for chaining. + */ + public Builder setTopicName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + topicName_ = value; + onChanged(); + return this; + } + /** + *
+       * The topic name
+       * 
+ * + * string topic_name = 1; + * @return This builder for chaining. + */ + public Builder clearTopicName() { + + topicName_ = getDefaultInstance().getTopicName(); + onChanged(); + return this; + } + /** + *
+       * The topic name
+       * 
+ * + * string topic_name = 1; + * @param value The bytes for topicName to set. + * @return This builder for chaining. + */ + public Builder setTopicNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + topicName_ = value; + onChanged(); + return this; + } + + private long recordSize_ ; + /** + *
+       * The total record size appended to topic since the datanode started.
+       * 
+ * + * uint64 record_size = 2; + * @return The recordSize. + */ + @java.lang.Override + public long getRecordSize() { + return recordSize_; + } + /** + *
+       * The total record size appended to topic since the datanode started.
+       * 
+ * + * uint64 record_size = 2; + * @param value The recordSize to set. + * @return This builder for chaining. + */ + public Builder setRecordSize(long value) { + + recordSize_ = value; + onChanged(); + return this; + } + /** + *
+       * The total record size appended to topic since the datanode started.
+       * 
+ * + * uint64 record_size = 2; + * @return This builder for chaining. + */ + public Builder clearRecordSize() { + + recordSize_ = 0L; + onChanged(); + return this; + } + + private long recordNum_ ; + /** + *
+       * The total record number appended to topic since the datanode started.
+       * 
+ * + * uint64 record_num = 3; + * @return The recordNum. + */ + @java.lang.Override + public long getRecordNum() { + return recordNum_; + } + /** + *
+       * The total record number appended to topic since the datanode started.
+       * 
+ * + * uint64 record_num = 3; + * @param value The recordNum to set. + * @return This builder for chaining. + */ + public Builder setRecordNum(long value) { + + recordNum_ = value; + onChanged(); + return this; + } + /** + *
+       * The total record number appended to topic since the datanode started.
+       * 
+ * + * uint64 record_num = 3; + * @return This builder for chaining. + */ + public Builder clearRecordNum() { + + recordNum_ = 0L; + onChanged(); + return this; + } + + private long latestEntryId_ ; + /** + *
+       * The latest entry id of the topic.
+       * 
+ * + * uint64 latest_entry_id = 4; + * @return The latestEntryId. + */ + @java.lang.Override + public long getLatestEntryId() { + return latestEntryId_; + } + /** + *
+       * The latest entry id of the topic.
+       * 
+ * + * uint64 latest_entry_id = 4; + * @param value The latestEntryId to set. + * @return This builder for chaining. + */ + public Builder setLatestEntryId(long value) { + + latestEntryId_ = value; + onChanged(); + return this; + } + /** + *
+       * The latest entry id of the topic.
+       * 
+ * + * uint64 latest_entry_id = 4; + * @return This builder for chaining. + */ + public Builder clearLatestEntryId() { + + latestEntryId_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:greptime.v1.meta.TopicStat) + } + + // @@protoc_insertion_point(class_scope:greptime.v1.meta.TopicStat) + private static final greptime.v1.meta.HeartbeatOuterClass.TopicStat DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new greptime.v1.meta.HeartbeatOuterClass.TopicStat(); + } + + public static greptime.v1.meta.HeartbeatOuterClass.TopicStat getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TopicStat parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new TopicStat(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public greptime.v1.meta.HeartbeatOuterClass.TopicStat getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + public interface FlowStatOrBuilder extends // @@protoc_insertion_point(interface_extends:greptime.v1.meta.FlowStat) com.google.protobuf.MessageOrBuilder { @@ -14740,6 +16103,11 @@ com.google.protobuf.ByteString defaultValue); private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_greptime_v1_meta_RegionStat_ExtensionsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_greptime_v1_meta_TopicStat_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_greptime_v1_meta_TopicStat_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_greptime_v1_meta_FlowStat_descriptor; private static final @@ -14801,7 +16169,7 @@ com.google.protobuf.ByteString defaultValue); java.lang.String[] descriptorData = { "\n greptime/v1/meta/heartbeat.proto\022\020grep" + "time.v1.meta\032\035greptime/v1/meta/common.pr" + - "oto\"\331\004\n\020HeartbeatRequest\022/\n\006header\030\001 \001(\013" + + "oto\"\213\005\n\020HeartbeatRequest\022/\n\006header\030\001 \001(\013" + "2\037.greptime.v1.meta.RequestHeader\022$\n\004pee" + "r\030\002 \001(\0132\026.greptime.v1.meta.Peer\0227\n\017repor" + "t_interval\030\003 \001(\0132\036.greptime.v1.meta.Time" + @@ -14815,55 +16183,59 @@ com.google.protobuf.ByteString defaultValue); "reptime.v1.meta.DatanodeWorkloadsH\000\0227\n\010f" + "rontend\030\013 \001(\0132#.greptime.v1.meta.Fronten" + "dWorkloadsH\000\0227\n\010flownode\030\014 \001(\0132#.greptim" + - "e.v1.meta.FlownodeWorkloadsH\000B\020\n\016node_wo" + - "rkloads\"\"\n\021DatanodeWorkloads\022\r\n\005types\030\001 " + - "\003(\005\"\"\n\021FrontendWorkloads\022\r\n\005types\030\001 \003(\005\"" + - "\"\n\021FlownodeWorkloads\022\r\n\005types\030\001 \003(\005\"T\n\010N" + - "odeInfo\022\017\n\007version\030\001 \001(\t\022\022\n\ngit_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\004r" + - "cus\030\002 \001(\003\022\014\n\004wcus\030\003 \001(\003\022\031\n\021approximate_b" + - "ytes\030\004 \001(\003\022\016\n\006engine\030\006 \001(\t\022*\n\004role\030\007 \001(\016" + - "2\034.greptime.v1.meta.RegionRole\022@\n\nextens" + - "ions\030c \003(\0132,.greptime.v1.meta.RegionStat" + - ".ExtensionsEntry\0321\n\017ExtensionsEntry\022\013\n\003k" + - "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\014:\0028\001\"\227\002\n\010FlowStat" + - "\022D\n\016flow_stat_size\030\001 \003(\0132,.greptime.v1.m" + - "eta.FlowStat.FlowStatSizeEntry\022T\n\027flow_l" + - "ast_exec_time_map\030\002 \003(\01323.greptime.v1.me" + - "ta.FlowStat.FlowLastExecTimeMapEntry\0323\n\021" + - "FlowStatSizeEntry\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\021Heartb" + - "eatResponse\0220\n\006header\030\001 \001(\0132 .greptime.v" + - "1.meta.ResponseHeader\0229\n\017mailbox_message" + - "\030\002 \001(\0132 .greptime.v1.meta.MailboxMessage" + - "\0223\n\014region_lease\030\003 \001(\0132\035.greptime.v1.met" + - "a.RegionLease\"\306\001\n\rGrantedRegion\022\021\n\tregio" + - "n_id\030\001 \001(\004\022*\n\004role\030\002 \001(\0162\034.greptime.v1.m" + - "eta.RegionRole\022C\n\nextensions\030c \003(\0132/.gre" + - "ptime.v1.meta.GrantedRegion.ExtensionsEn" + - "try\0321\n\017ExtensionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005v" + - "alue\030\002 \001(\014:\0028\001\"\222\001\n\013RegionLease\0220\n\007region" + - "s\030\001 \003(\0132\037.greptime.v1.meta.GrantedRegion" + - "\022\034\n\024duration_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\020AskLeaderRequest\022/\n\006header\030\001 \001(\0132" + - "\037.greptime.v1.meta.RequestHeader\"m\n\021AskL" + - "eaderResponse\0220\n\006header\030\001 \001(\0132 .greptime" + - ".v1.meta.ResponseHeader\022&\n\006leader\030\002 \001(\0132" + - "\026.greptime.v1.meta.Peer\"|\n\016MailboxMessag" + - "e\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\nRegionR" + - "ole\022\n\n\006Leader\020\000\022\014\n\010Follower\020\001\022\025\n\021Downgra" + - "dingLeader\020\0022\277\001\n\tHeartbeat\022Z\n\tHeartbeat\022" + - "\".greptime.v1.meta.HeartbeatRequest\032#.gr" + - "eptime.v1.meta.HeartbeatResponse\"\000(\0010\001\022V" + - "\n\tAskLeader\022\".greptime.v1.meta.AskLeader" + - "Request\032#.greptime.v1.meta.AskLeaderResp" + - "onse\"\000B extensions = 99; } +message TopicStat { + // The topic name + string topic_name = 1; + // The total record size appended to topic since the datanode started. + uint64 record_size = 2; + // The total record number appended to topic since the datanode started. + uint64 record_num = 3; + // The latest entry id of the topic. + uint64 latest_entry_id = 4; +} + message FlowStat { // Each flow's in mem state's size in bytes // due to protobuf's key can't be a message, so we use uint32 as the key which