Skip to content

Commit 4cd5117

Browse files
Decode source id in topic data handler (ydb-platform#17554)
1 parent 2b09738 commit 4cd5117

File tree

4 files changed

+287
-16
lines changed

4 files changed

+287
-16
lines changed

ydb/core/viewer/json_pipe_req.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,8 @@ TViewerPipeClient::TRequestResponse<NSchemeShard::TEvSchemeShard::TEvDescribeSch
605605
request->Record.SetSchemeshardId(schemeShardId);
606606
request->Record.SetPath(path);
607607
request->Record.MutableOptions()->CopyFrom(options);
608-
auto response = MakeRequestToTablet<NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResult>(schemeShardId, request.release(), cookie);
608+
auto pipe = ConnectTabletPipe(schemeShardId);
609+
auto response = MakeRequestToPipe<NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResult>(pipe, request.release(), cookie);
609610
if (response.Span) {
610611
response.Span.Attribute("path", path);
611612
}

ydb/core/viewer/tests/canondata/result.json

Lines changed: 280 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,273 @@
506506
],
507507
"TotalGroups": 5
508508
},
509+
"test.test_topic_data": {
510+
"both_offset_and_ts": {
511+
"status_code": 400,
512+
"text": "Only read_timestamp or offset parameter may be specified, not both"
513+
},
514+
"no_partition": {
515+
"status_code": 400,
516+
"text": "Parameter 'partition' is necessary"
517+
},
518+
"response_compressed": {
519+
"EndOffset": 21,
520+
"Messages": [
521+
{
522+
"Codec": 1,
523+
"CreateTimestamp": "not-zero-number",
524+
"Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTA=",
525+
"Offset": 11,
526+
"OriginalSize": 20,
527+
"ProducerId": "not-zero-number-text",
528+
"SeqNo": 12,
529+
"StorageSize": 38,
530+
"TimestampDiff": "not-zero-number",
531+
"WriteTimestamp": "not-zero-number"
532+
},
533+
{
534+
"Codec": 1,
535+
"CreateTimestamp": "not-zero-number",
536+
"Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTE=",
537+
"Offset": 12,
538+
"OriginalSize": 20,
539+
"ProducerId": "not-zero-number-text",
540+
"SeqNo": 13,
541+
"StorageSize": 38,
542+
"TimestampDiff": "not-zero-number",
543+
"WriteTimestamp": "not-zero-number"
544+
},
545+
{
546+
"Codec": 1,
547+
"CreateTimestamp": "not-zero-number",
548+
"Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTI=",
549+
"Offset": 13,
550+
"OriginalSize": 20,
551+
"ProducerId": "not-zero-number-text",
552+
"SeqNo": 14,
553+
"StorageSize": 38,
554+
"TimestampDiff": "not-zero-number",
555+
"WriteTimestamp": "not-zero-number"
556+
},
557+
{
558+
"Codec": 1,
559+
"CreateTimestamp": "not-zero-number",
560+
"Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTM=",
561+
"Offset": 14,
562+
"OriginalSize": 20,
563+
"ProducerId": "not-zero-number-text",
564+
"SeqNo": 15,
565+
"StorageSize": 38,
566+
"TimestampDiff": "not-zero-number",
567+
"WriteTimestamp": "not-zero-number"
568+
},
569+
{
570+
"Codec": 1,
571+
"CreateTimestamp": "not-zero-number",
572+
"Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTQ=",
573+
"Offset": 15,
574+
"OriginalSize": 20,
575+
"ProducerId": "not-zero-number-text",
576+
"SeqNo": 16,
577+
"StorageSize": 38,
578+
"TimestampDiff": "not-zero-number",
579+
"WriteTimestamp": "not-zero-number"
580+
}
581+
],
582+
"StartOffset": 0,
583+
"Truncated": true
584+
},
585+
"response_metadata": {
586+
"EndOffset": 21,
587+
"Messages": [
588+
{
589+
"Codec": 1,
590+
"CreateTimestamp": "not-zero-number",
591+
"Message": "bWVzc2FnZV93aXRoX21ldGE=",
592+
"MessageMetadata": [
593+
{
594+
"Key": "key1",
595+
"Value": "value1"
596+
},
597+
{
598+
"Key": "key2",
599+
"Value": "value2"
600+
}
601+
],
602+
"Offset": 10,
603+
"OriginalSize": 17,
604+
"ProducerId": "not-zero-number-text",
605+
"SeqNo": 11,
606+
"StorageSize": 37,
607+
"TimestampDiff": "not-zero-number",
608+
"WriteTimestamp": "not-zero-number"
609+
}
610+
],
611+
"StartOffset": 0,
612+
"Truncated": true
613+
},
614+
"response_not_truncated": {
615+
"EndOffset": 21,
616+
"Messages": [
617+
{
618+
"Codec": 1,
619+
"CreateTimestamp": "not-zero-number",
620+
"Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTk=",
621+
"Offset": 20,
622+
"OriginalSize": 20,
623+
"ProducerId": "not-zero-number-text",
624+
"SeqNo": 21,
625+
"StorageSize": 38,
626+
"TimestampDiff": "not-zero-number",
627+
"WriteTimestamp": "not-zero-number"
628+
}
629+
],
630+
"StartOffset": 0,
631+
"Truncated": false
632+
},
633+
"response_read": {
634+
"EndOffset": 21,
635+
"Messages": [
636+
{
637+
"Codec": 0,
638+
"CreateTimestamp": "not-zero-number",
639+
"Message": "bWVzc2FnZS0w",
640+
"Offset": 0,
641+
"OriginalSize": 9,
642+
"ProducerId": "not-zero-number-text",
643+
"SeqNo": 1,
644+
"StorageSize": 9,
645+
"TimestampDiff": "not-zero-number",
646+
"WriteTimestamp": "not-zero-number"
647+
},
648+
{
649+
"Codec": 0,
650+
"CreateTimestamp": "not-zero-number",
651+
"Message": "bWVzc2FnZS0x",
652+
"Offset": 1,
653+
"OriginalSize": 9,
654+
"ProducerId": "not-zero-number-text",
655+
"SeqNo": 2,
656+
"StorageSize": 9,
657+
"TimestampDiff": "not-zero-number",
658+
"WriteTimestamp": "not-zero-number"
659+
},
660+
{
661+
"Codec": 0,
662+
"CreateTimestamp": "not-zero-number",
663+
"Message": "bWVzc2FnZS0y",
664+
"Offset": 2,
665+
"OriginalSize": 9,
666+
"ProducerId": "not-zero-number-text",
667+
"SeqNo": 3,
668+
"StorageSize": 9,
669+
"TimestampDiff": "not-zero-number",
670+
"WriteTimestamp": "not-zero-number"
671+
},
672+
{
673+
"Codec": 0,
674+
"CreateTimestamp": "not-zero-number",
675+
"Message": "bWVzc2FnZS0z",
676+
"Offset": 3,
677+
"OriginalSize": 9,
678+
"ProducerId": "not-zero-number-text",
679+
"SeqNo": 4,
680+
"StorageSize": 9,
681+
"TimestampDiff": "not-zero-number",
682+
"WriteTimestamp": "not-zero-number"
683+
},
684+
{
685+
"Codec": 0,
686+
"CreateTimestamp": "not-zero-number",
687+
"Message": "bWVzc2FnZS00",
688+
"Offset": 4,
689+
"OriginalSize": 9,
690+
"ProducerId": "not-zero-number-text",
691+
"SeqNo": 5,
692+
"StorageSize": 9,
693+
"TimestampDiff": "not-zero-number",
694+
"WriteTimestamp": "not-zero-number"
695+
}
696+
],
697+
"StartOffset": 0,
698+
"Truncated": true
699+
}
700+
},
701+
"test.test_transfer_describe": {
702+
"connection_params": {
703+
"connection_string": "text",
704+
"database": "/Root/dedicated_db",
705+
"endpoint": "text",
706+
"oauth": {}
707+
},
708+
"error": {
709+
"issues": [
710+
{
711+
"message": "Discovery error: /Root/dedicated_db/TableNotExists: SCHEME_ERROR ({ <main>: Error: Path not found })",
712+
"severity": 1
713+
}
714+
]
715+
},
716+
"row_consistency": {},
717+
"self": {
718+
"created_at": {
719+
"plan_step": "not-zero-number-text",
720+
"tx_id": "not-zero-number-text"
721+
},
722+
"effective_permissions": [
723+
{
724+
"permission_names": [
725+
"ydb.database.connect"
726+
],
727+
"subject": "USERS"
728+
},
729+
{
730+
"permission_names": [
731+
"ydb.generic.list"
732+
],
733+
"subject": "METADATA-READERS"
734+
},
735+
{
736+
"permission_names": [
737+
"ydb.granular.select_row"
738+
],
739+
"subject": "DATA-READERS"
740+
},
741+
{
742+
"permission_names": [
743+
"ydb.tables.modify"
744+
],
745+
"subject": "DATA-WRITERS"
746+
},
747+
{
748+
"permission_names": [
749+
"ydb.granular.create_directory",
750+
"ydb.granular.write_attributes",
751+
"ydb.granular.create_table",
752+
"ydb.granular.remove_schema",
753+
"ydb.granular.create_queue",
754+
"ydb.granular.alter_schema"
755+
],
756+
"subject": "DDL-ADMINS"
757+
},
758+
{
759+
"permission_names": [
760+
"ydb.access.grant"
761+
],
762+
"subject": "ACCESS-ADMINS"
763+
},
764+
{
765+
"permission_names": [
766+
"ydb.generic.manage"
767+
],
768+
"subject": "DATABASE-ADMINS"
769+
}
770+
],
771+
"name": "TestAsyncReplication",
772+
"owner": "root@builtin",
773+
"type": "REPLICATION"
774+
}
775+
},
509776
"test.test_viewer_acl": {
510777
"/Root": {
511778
"Common": {
@@ -692,7 +959,7 @@
692959
"ACL": [
693960
{
694961
"AccessRights": [
695-
"ConnectDatabase"
962+
""
696963
],
697964
"AccessType": "Allow",
698965
"InheritanceType": [
@@ -4719,23 +4986,23 @@
47194986
"Messages": [
47204987
{
47214988
"Codec": 0, "StorageSize": 9, "SeqNo": 1, "Message": "bWVzc2FnZS0w", "OriginalSize": 9, "Offset": 0,
4722-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
4989+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47234990
},
47244991
{
47254992
"Codec": 0, "StorageSize": 9, "SeqNo": 2, "Message": "bWVzc2FnZS0x", "OriginalSize": 9, "Offset": 1,
4726-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
4993+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47274994
},
47284995
{
47294996
"Codec": 0, "StorageSize": 9, "SeqNo": 3, "Message": "bWVzc2FnZS0y", "OriginalSize": 9, "Offset": 2,
4730-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
4997+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47314998
},
47324999
{
47335000
"Codec": 0, "StorageSize": 9, "SeqNo": 4, "Message": "bWVzc2FnZS0z", "OriginalSize": 9, "Offset": 3,
4734-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5001+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47355002
},
47365003
{
47375004
"Codec": 0, "StorageSize": 9, "SeqNo": 5, "Message": "bWVzc2FnZS00", "OriginalSize": 9, "Offset": 4,
4738-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5005+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47395006
}
47405007
],
47415008
"StartOffset": 0,
@@ -4750,7 +5017,7 @@
47505017
{"Value": "value1", "Key": "key1"},
47515018
{"Value": "value2", "Key": "key2"}],
47525019
"Message": "bWVzc2FnZV93aXRoX21ldGE=", "OriginalSize": 17, "Offset": 10,
4753-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5020+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47545021
}
47555022
],
47565023
"StartOffset": 0,
@@ -4761,23 +5028,23 @@
47615028
"Messages": [
47625029
{
47635030
"Codec": 1, "StorageSize": 38, "SeqNo": 12, "Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTA=", "OriginalSize": 20, "Offset": 11,
4764-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5031+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47655032
},
47665033
{
47675034
"Codec": 1, "StorageSize": 38, "SeqNo": 13, "Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTE=", "OriginalSize": 20, "Offset": 12,
4768-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5035+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47695036
},
47705037
{
47715038
"Codec": 1, "StorageSize": 38, "SeqNo": 14, "Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTI=", "OriginalSize": 20, "Offset": 13,
4772-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5039+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47735040
},
47745041
{
47755042
"Codec": 1, "StorageSize": 38, "SeqNo": 15, "Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTM=", "OriginalSize": 20, "Offset": 14,
4776-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5043+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47775044
},
47785045
{
47795046
"Codec": 1, "StorageSize": 38, "SeqNo": 16, "Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTQ=", "OriginalSize": 20, "Offset": 15,
4780-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5047+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47815048
}
47825049
],
47835050
"StartOffset": 0,
@@ -4788,7 +5055,7 @@
47885055
"Messages": [
47895056
{
47905057
"Codec": 1, "StorageSize": 38, "SeqNo": 21, "Message": "Y29tcHJlc3NlZC1tZXNzYWdlLTk=", "OriginalSize": 20, "Offset": 20,
4791-
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "text"
5058+
"CreateTimestamp": "not-zero-number", "WriteTimestamp": "not-zero-number", "TimestampDiff": "not-zero-number", "ProducerId": "not-zero-number-text"
47925059
}
47935060
],
47945061
"StartOffset": 0,

ydb/core/viewer/tests/test.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,4 +674,3 @@ def replace_values(resp):
674674
'both_offset_and_ts': response_both_offset_and_ts
675675
}
676676
return result
677-

ydb/core/viewer/viewer_topic_data.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,11 @@ void TTopicData::FillProtoResponse(ui64 maxSingleMessageSize, ui64 maxTotalSize)
181181
setData(*messageProto, std::move(*dataChunk.MutableData()));
182182
}
183183
messageProto->SetCodec(dataChunk.GetCodec());
184-
messageProto->SetProducerId(r.GetSourceId());
184+
TString decodedSrcId;
185+
if (!r.GetSourceId().empty()) {
186+
decodedSrcId = NPQ::NSourceIdEncoding::Decode(r.GetSourceId());
187+
}
188+
messageProto->SetProducerId(decodedSrcId);
185189
messageProto->SetSeqNo(r.GetSeqNo());
186190

187191
if (dataChunk.MessageMetaSize() > 0) {

0 commit comments

Comments
 (0)