Skip to content

Commit b8d3f94

Browse files
alexnick88Gazizonoki
authored andcommitted
Moved commit "Add more fields in describe consumer in cpp sdk" from ydb repo
1 parent 0b8f172 commit b8d3f94

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

include/ydb-cpp-sdk/client/topic/control_plane.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,18 @@ class TPartitionConsumerStats {
108108
uint64_t GetLastReadOffset() const;
109109
std::string GetReaderName() const;
110110
std::string GetReadSessionId() const;
111+
const TInstant& GetLastReadTime() const;
112+
const TDuration& GetMaxReadTimeLag() const;
113+
const TDuration& GetMaxWriteTimeLag() const;
111114

112115
private:
113116
uint64_t CommittedOffset_;
114117
int64_t LastReadOffset_;
115118
std::string ReaderName_;
116119
std::string ReadSessionId_;
120+
TInstant LastReadTime_;
121+
TDuration MaxReadTimeLag_;
122+
TDuration MaxWriteTimeLag_;
117123
};
118124

119125
// Topic partition location

src/client/topic/impl/topic.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,9 @@ TPartitionConsumerStats::TPartitionConsumerStats(const Ydb::Topic::DescribeConsu
351351
, LastReadOffset_(partitionStats.last_read_offset())
352352
, ReaderName_(partitionStats.reader_name())
353353
, ReadSessionId_(partitionStats.read_session_id())
354+
, LastReadTime_(TInstant::Seconds(partitionStats.last_read_time().seconds()))
355+
, MaxReadTimeLag_(TDuration::Seconds(partitionStats.max_read_time_lag().seconds()))
356+
, MaxWriteTimeLag_(TDuration::Seconds(partitionStats.max_write_time_lag().seconds()))
354357
{}
355358

356359
uint64_t TPartitionConsumerStats::GetCommittedOffset() const {
@@ -369,6 +372,18 @@ std::string TPartitionConsumerStats::GetReadSessionId() const {
369372
return ReadSessionId_;
370373
}
371374

375+
const TInstant& TPartitionConsumerStats::GetLastReadTime() const {
376+
return LastReadTime_;
377+
}
378+
379+
const TDuration& TPartitionConsumerStats::GetMaxReadTimeLag() const {
380+
return MaxReadTimeLag_;
381+
}
382+
383+
const TDuration& TPartitionConsumerStats::GetMaxWriteTimeLag() const {
384+
return MaxWriteTimeLag_;
385+
}
386+
372387
TPartitionLocation::TPartitionLocation(const Ydb::Topic::PartitionLocation& partitionLocation)
373388
: NodeId_(partitionLocation.node_id())
374389
, Generation_(partitionLocation.generation())

src/client/topic/ut/describe_topic_ut.cpp

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ namespace NYdb::NTopic::NTests {
146146
UNIT_ASSERT_GT(consumerStats->GetCommittedOffset(), 0);
147147
UNIT_ASSERT_GE(TString{consumerStats->GetReadSessionId()}, 0);
148148
UNIT_ASSERT_VALUES_EQUAL(consumerStats->GetReaderName(), "");
149+
UNIT_ASSERT_GE(consumerStats->GetMaxWriteTimeLag(), TDuration::Seconds(100));
149150
} else {
150151
UNIT_ASSERT_VALUES_EQUAL(stats->GetStartOffset(), 0);
151152
UNIT_ASSERT_VALUES_EQUAL(consumerStats->GetLastReadOffset(), 0);
@@ -284,7 +285,7 @@ namespace NYdb::NTopic::NTests {
284285
std::string message(32_MB, 'x');
285286

286287
for(size_t i = 0; i < messagesCount; ++i) {
287-
UNIT_ASSERT(writeSession->Write(message));
288+
UNIT_ASSERT(writeSession->Write(message, {}, TInstant::Now() - TDuration::Seconds(100)));
288289
}
289290
writeSession->Close();
290291
}
@@ -326,7 +327,21 @@ namespace NYdb::NTopic::NTests {
326327
}
327328
}
328329

330+
// Additional write
331+
{
332+
auto writeSettings = TWriteSessionSettings().Path(TEST_TOPIC).MessageGroupId(TEST_MESSAGE_GROUP_ID).Codec(ECodec::RAW);
333+
auto writeSession = client.CreateSimpleBlockingWriteSession(writeSettings);
334+
std::string message(32, 'x');
335+
336+
for(size_t i = 0; i < messagesCount; ++i) {
337+
UNIT_ASSERT(writeSession->Write(message));
338+
}
339+
writeSession->Close();
340+
}
341+
Sleep(TDuration::Seconds(3));
342+
329343
// Get non-empty description
344+
330345
DescribeTopic(setup, client, true, true, false, false);
331346
DescribeConsumer(setup, client, true, true, false, false);
332347
DescribePartition(setup, client, true, true, false, false);

0 commit comments

Comments
 (0)