6
6
use Illuminate \Http \Request ;
7
7
use OpenTelemetry \API \Trace \SpanInterface ;
8
8
use OpenTelemetry \API \Trace \StatusCode ;
9
- use OpenTelemetry \Context \Context ;
10
- use OpenTelemetry \Contrib \Propagation \ServerTiming \ServerTimingPropagator ;
11
- use OpenTelemetry \Contrib \Propagation \TraceResponse \TraceResponsePropagator ;
12
9
use OpenTelemetry \SemConv \TraceAttributes ;
13
10
use Overtrue \LaravelOpenTelemetry \Facades \Measure ;
14
- use Overtrue \LaravelOpenTelemetry \Support \ResponsePropagationSetter ;
15
11
use Overtrue \LaravelOpenTelemetry \Traits \InteractWithHttpHeaders ;
16
12
use Symfony \Component \HttpFoundation \Response ;
17
13
use Throwable ;
@@ -34,18 +30,12 @@ public function handle(Request $request, Closure $next, ?string $name = null)
34
30
);
35
31
36
32
$ span = Measure::activeSpan ()->setAttributes ($ this ->getRequestSpanAttributes ($ request ));
37
- $ context = Context::getCurrent ();
38
33
39
34
try {
40
35
$ response = $ next ($ request );
41
36
42
37
$ this ->recordHeaders ($ span , $ request );
43
38
44
- if ($ response instanceof Response) {
45
- $ this ->recordHttpResponseToSpan ($ span , $ response );
46
- $ this ->propagateHeaderToResponse ($ context , $ response );
47
- }
48
-
49
39
// Add trace id to response header if configured.
50
40
if ($ traceIdHeaderName = config ('otel.response_trace_header_name ' )) {
51
41
$ response ->headers ->set ($ traceIdHeaderName , Measure::traceId ());
@@ -60,41 +50,6 @@ public function handle(Request $request, Closure $next, ?string $name = null)
60
50
}
61
51
}
62
52
63
- protected function recordHttpResponseToSpan (SpanInterface $ span , Response $ response ): void
64
- {
65
- $ span ->setAttribute (TraceAttributes::NETWORK_PROTOCOL_VERSION , $ response ->getProtocolVersion ());
66
- $ span ->setAttribute (TraceAttributes::HTTP_RESPONSE_STATUS_CODE , $ response ->getStatusCode ());
67
-
68
- if (($ content = $ response ->getContent ()) !== false ) {
69
- $ span ->setAttribute (TraceAttributes::HTTP_RESPONSE_BODY_SIZE , strlen ($ content ));
70
- }
71
-
72
- $ this ->recordHeaders ($ span , $ response );
73
-
74
- if ($ response ->isSuccessful ()) {
75
- $ span ->setStatus (StatusCode::STATUS_OK );
76
- }
77
-
78
- if ($ response ->isServerError () || $ response ->isClientError ()) {
79
- $ span ->setStatus (StatusCode::STATUS_ERROR );
80
- }
81
- }
82
-
83
- protected function propagateHeaderToResponse ($ context , Response $ response ): void
84
- {
85
- // Propagate `server-timing` header to response, if ServerTimingPropagator is present
86
- if (class_exists ('OpenTelemetry\Contrib\Propagation\ServerTiming\ServerTimingPropagator ' )) {
87
- $ prop = new ServerTimingPropagator ();
88
- $ prop ->inject ($ response , ResponsePropagationSetter::instance (), $ context );
89
- }
90
-
91
- // Propagate `traceresponse` header to response, if TraceResponsePropagator is present
92
- if (class_exists ('OpenTelemetry\Contrib\Propagation\TraceResponse\TraceResponsePropagator ' )) {
93
- $ prop = new TraceResponsePropagator ();
94
- $ prop ->inject ($ response , ResponsePropagationSetter::instance (), $ context );
95
- }
96
- }
97
-
98
53
protected function recordHeaders (SpanInterface $ span , Request |Response $ http ): SpanInterface
99
54
{
100
55
$ prefix = match (true ) {
0 commit comments