@@ -106,7 +106,8 @@ class TJsonQuery : public TViewerPipeClient<TJsonQuery> {
106
106
}
107
107
108
108
TJsonQuery (IViewer* viewer, NMon::TEvHttpInfo::TPtr& ev)
109
- : Viewer(viewer)
109
+ : TBase(ev)
110
+ , Viewer(viewer)
110
111
, Event(ev)
111
112
{
112
113
}
@@ -193,6 +194,9 @@ class TJsonQuery : public TViewerPipeClient<TJsonQuery> {
193
194
auto event = std::make_unique<NKqp::TEvKqp::TEvCreateSessionRequest>();
194
195
if (Database) {
195
196
event->Record .MutableRequest ()->SetDatabase (Database);
197
+ if (Span) {
198
+ Span.Attribute (" database" , Database);
199
+ }
196
200
}
197
201
BLOG_TRACE (" Creating session" );
198
202
Send (NKqp::MakeKqpProxyID (SelfId ().NodeId ()), event.release ());
@@ -440,6 +444,9 @@ class TJsonQuery : public TViewerPipeClient<TJsonQuery> {
440
444
441
445
void ReplyAndPassAway (TString data) {
442
446
Send (Event->Sender , new NMon::TEvHttpInfoRes (data, 0 , NMon::IEvHttpInfoRes::EContentType::Custom));
447
+ if (Span) {
448
+ Span.End ();
449
+ }
443
450
PassAway ();
444
451
}
445
452
@@ -454,14 +461,19 @@ class TJsonQuery : public TViewerPipeClient<TJsonQuery> {
454
461
while (protoIssues->size () > 0 && (*protoIssues)[0 ].issuesSize () > 0 ) {
455
462
protoIssues = (*protoIssues)[0 ].mutable_issues ();
456
463
}
464
+ TString message;
457
465
if (protoIssues->size () > 0 ) {
458
466
const Ydb::Issue::IssueMessage& issue = (*protoIssues)[0 ];
459
467
NProtobufJson::Proto2Json (issue, jsonResponse[" error" ]);
468
+ message = issue.message ();
460
469
}
461
470
for (const auto & queryIssue : *protoIssues) {
462
471
NJson::TJsonValue& issue = jsonIssues.AppendValue ({});
463
472
NProtobufJson::Proto2Json (queryIssue, issue);
464
473
}
474
+ if (Span) {
475
+ Span.EndError (message);
476
+ }
465
477
}
466
478
467
479
void MakeOkReply (NJson::TJsonValue& jsonResponse, NKikimrKqp::TEvQueryResponse& record) {
@@ -591,6 +603,9 @@ class TJsonQuery : public TViewerPipeClient<TJsonQuery> {
591
603
if (response.HasQueryStats ()) {
592
604
NProtobufJson::Proto2Json (response.GetQueryStats (), jsonResponse[" stats" ]);
593
605
}
606
+ if (Span) {
607
+ Span.EndOk ();
608
+ }
594
609
}
595
610
};
596
611
@@ -619,6 +634,11 @@ YAML::Node TJsonRequestSwagger<TJsonQuery>::GetSwagger() {
619
634
* `explain-scan` - explain scan query (ScanQuery)
620
635
* `explain-script` - explain script query (ScriptingService)
621
636
* `cancel-query` - cancel query (using query_id)
637
+ - name: database
638
+ in: query
639
+ description: database name
640
+ type: string
641
+ required: false
622
642
- name: query
623
643
in: query
624
644
description: SQL query text
@@ -637,11 +657,6 @@ YAML::Node TJsonRequestSwagger<TJsonQuery>::GetSwagger() {
637
657
type: string
638
658
enum: [yql_v1, pg]
639
659
required: false
640
- - name: database
641
- in: query
642
- description: database name
643
- type: string
644
- required: false
645
660
- name: schema
646
661
in: query
647
662
description: >
0 commit comments