File tree Expand file tree Collapse file tree 8 files changed +17
-9
lines changed
include/userver/clients/http
grpc/src/ugrpc/client/middlewares/log Expand file tree Collapse file tree 8 files changed +17
-9
lines changed Original file line number Diff line number Diff line change 1111
1212USERVER_NAMESPACE_BEGIN
1313
14+ namespace tracing {
15+ class Span ;
16+ }
17+
1418namespace clients ::http {
1519
1620class RequestState ;
@@ -51,7 +55,7 @@ class Plugin {
5155
5256 // / @brief The hook is called just after the "external" Span is created.
5357 // / You might want to add custom tags from the hook.
54- virtual void HookCreateSpan (PluginRequest& request) = 0;
58+ virtual void HookCreateSpan (PluginRequest& request, tracing::Span& span ) = 0;
5559
5660 // / @brief The hook is called after the HTTP response is received or the
5761 // / timeout is passed.
@@ -72,7 +76,7 @@ class PluginPipeline final {
7276
7377 void HookPerformRequest (RequestState& request);
7478
75- void HookCreateSpan (RequestState& request);
79+ void HookCreateSpan (RequestState& request, tracing::Span& span );
7680
7781 void HookOnCompleted (RequestState& request, Response& response);
7882
Original file line number Diff line number Diff line change @@ -38,11 +38,11 @@ namespace impl {
3838
3939PluginPipeline::PluginPipeline (const std::vector<utils::NotNull<Plugin*>>& plugins) : plugins_(plugins) {}
4040
41- void PluginPipeline::HookCreateSpan (RequestState& request_state) {
41+ void PluginPipeline::HookCreateSpan (RequestState& request_state, tracing::Span& span ) {
4242 PluginRequest req (request_state);
4343
4444 for (const auto & plugin : plugins_) {
45- plugin->HookCreateSpan (req);
45+ plugin->HookCreateSpan (req, span );
4646 }
4747}
4848
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ Plugin::Plugin() : clients::http::Plugin(kName) {}
1515
1616void Plugin::HookPerformRequest (PluginRequest&) {}
1717
18- void Plugin::HookCreateSpan (PluginRequest& request) {
18+ void Plugin::HookCreateSpan (PluginRequest& request, tracing::Span& ) {
1919 for (const auto & [name, value] : server::request::GetPropagatedHeaders ()) {
2020 request.SetHeader (name, value);
2121 }
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ class Plugin final : public http::Plugin {
1212
1313 void HookPerformRequest (PluginRequest&) override ;
1414
15- void HookCreateSpan (PluginRequest&) override ;
15+ void HookCreateSpan (PluginRequest&, tracing::Span& span ) override ;
1616
1717 void HookOnCompleted (PluginRequest&, Response&) override ;
1818
Original file line number Diff line number Diff line change 22
33#include < userver/clients/http/response.hpp>
44#include < userver/logging/log.hpp>
5+ #include < userver/tracing/span.hpp>
56#include < userver/utils/algo.hpp>
67
78#include < userver/http/common_headers.hpp>
@@ -18,13 +19,15 @@ constexpr USERVER_NAMESPACE::http::headers::PredefinedHeader kYaTracingHeaders[]
1819};
1920
2021const std::string kName = " yandex-tracing" ;
22+ const std::string kTypeTag = " type" ;
23+ const std::string kTypeRequest = " request" ;
2124} // namespace
2225
2326Plugin::Plugin () : http::Plugin(kName ) {}
2427
2528void Plugin::HookPerformRequest (PluginRequest&) {}
2629
27- void Plugin::HookCreateSpan (PluginRequest&) {}
30+ void Plugin::HookCreateSpan (PluginRequest&, tracing::Span& span ) { span. AddNonInheritableTag ( kTypeTag , kTypeRequest ); }
2831
2932void Plugin::HookOnCompleted (PluginRequest&, Response& response) {
3033 const auto & headers = response.headers ();
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ class Plugin final : public http::Plugin {
1212
1313 void HookPerformRequest (PluginRequest& request) override ;
1414
15- void HookCreateSpan (PluginRequest& request) override ;
15+ void HookCreateSpan (PluginRequest& request, tracing::Span& span ) override ;
1616
1717 void HookOnCompleted (PluginRequest& request, Response& response) override ;
1818};
Original file line number Diff line number Diff line change @@ -974,7 +974,7 @@ void RequestState::StartNewSpan(utils::impl::SourceLocation location) {
974974 auto request_editable_instance = GetEditableRequestInstance ();
975975
976976 tracing_manager_->FillRequestWithTracingContext (span, request_editable_instance);
977- plugin_pipeline_.HookCreateSpan (*this );
977+ plugin_pipeline_.HookCreateSpan (*this , span );
978978 span.AddTag (tracing::kHttpUrl , GetLoggedOriginalUrl ());
979979 span.AddTag (tracing::kMaxAttempts , retry_.retries );
980980
Original file line number Diff line number Diff line change @@ -44,6 +44,7 @@ void Middleware::PreStartCall(MiddlewareCallContext& context) const {
4444 span.SetLocalLogLevel (settings_.log_level );
4545
4646 span.AddTag (" meta_type" , std::string{context.GetCallName ()});
47+ span.AddTag (" type" , " request" );
4748
4849 if (!IsSingleRequest (context.GetCallKind ())) {
4950 SpanLogger{context.GetSpan (), settings_.log_level }.Log (
You can’t perform that action at this time.
0 commit comments