4
4
5
5
namespace Overtrue \LaravelOpenTelemetry ;
6
6
7
+ use Illuminate \Contracts \Http \Kernel ;
7
8
use Illuminate \Support \Facades \Event ;
8
9
use Illuminate \Support \Facades \Log ;
9
10
use Illuminate \Support \ServiceProvider ;
10
11
use Laravel \Octane \Events ;
11
12
use OpenTelemetry \API \Globals ;
12
- use OpenTelemetry \API \Trace \TracerInterface as Tracer ;
13
- use OpenTelemetry \ Context \ Context ;
13
+ use OpenTelemetry \API \Trace \TracerInterface ;
14
+ use Overtrue \ LaravelOpenTelemetry \ Console \ Commands \ TestCommand ;
14
15
use Overtrue \LaravelOpenTelemetry \Facades \Measure ;
16
+ use Overtrue \LaravelOpenTelemetry \Http \Middleware \AddTraceId ;
17
+ use Overtrue \LaravelOpenTelemetry \Http \Middleware \TraceRequest ;
15
18
16
19
class OpenTelemetryServiceProvider extends ServiceProvider
17
20
{
18
- /**
19
- * @throws \Illuminate\Contracts\Container\BindingResolutionException
20
- */
21
21
public function boot (): void
22
22
{
23
23
$ this ->publishes ([
@@ -47,18 +47,18 @@ public function register(): void
47
47
__DIR__ .'/../config/otel.php ' , 'otel ' ,
48
48
);
49
49
50
- $ this ->app ->singleton (\ Overtrue \ LaravelOpenTelemetry \ Support \Measure::class, function ($ app ) {
51
- return new \ Overtrue \ LaravelOpenTelemetry \ Support \Measure ($ app );
50
+ $ this ->app ->singleton (Support \Measure::class, function ($ app ) {
51
+ return new Support \Measure ($ app );
52
52
});
53
53
54
- $ this ->app ->alias (\ Overtrue \ LaravelOpenTelemetry \ Support \Measure::class, 'opentelemetry.measure ' );
54
+ $ this ->app ->alias (Support \Measure::class, 'opentelemetry.measure ' );
55
55
56
- $ this ->app ->singleton (Tracer ::class, function () {
56
+ $ this ->app ->singleton (TracerInterface ::class, function () {
57
57
return Globals::tracerProvider ()
58
58
->getTracer (config ('otel.tracer_name ' , 'overtrue.laravel-open-telemetry ' ));
59
59
});
60
60
61
- $ this ->app ->alias (Tracer ::class, 'opentelemetry.tracer ' );
61
+ $ this ->app ->alias (TracerInterface ::class, 'opentelemetry.tracer ' );
62
62
63
63
Log::debug ('OpenTelemetry: Service provider registered successfully ' );
64
64
}
@@ -77,12 +77,6 @@ protected function registerLifecycleHandlers(): void
77
77
Event::listen (Events \WorkerErrorOccurred::class, Handlers \WorkerErrorOccurredHandler::class);
78
78
Event::listen (Events \TaskReceived::class, Handlers \TaskReceivedHandler::class);
79
79
Event::listen (Events \TickReceived::class, Handlers \TickReceivedHandler::class);
80
- } elseif (! $ this ->app ->runningInConsole () && ! $ this ->app ->environment ('testing ' )) {
81
- // FPM mode: Only start in non-console and non-testing environments
82
- // Initialize context at the beginning of the request
83
- if (! Context::getCurrent ()) {
84
- Context::attach (Context::getRoot ());
85
- }
86
80
}
87
81
}
88
82
@@ -106,7 +100,7 @@ protected function registerCommands(): void
106
100
{
107
101
if ($ this ->app ->runningInConsole ()) {
108
102
$ this ->commands ([
109
- \ Overtrue \ LaravelOpenTelemetry \ Console \ Commands \ TestCommand::class,
103
+ TestCommand::class,
110
104
]);
111
105
}
112
106
}
@@ -117,21 +111,21 @@ protected function registerCommands(): void
117
111
protected function registerMiddlewares (): void
118
112
{
119
113
$ router = $ this ->app ->make ('router ' );
120
- $ kernel = $ this ->app ->make (\ Illuminate \ Contracts \ Http \ Kernel::class);
114
+ $ kernel = $ this ->app ->make (Kernel::class);
121
115
122
116
// Register OpenTelemetry root span middleware
123
- $ router ->aliasMiddleware ('otel ' , \ Overtrue \ LaravelOpenTelemetry \ Http \ Middleware \ TraceRequest::class);
117
+ $ router ->aliasMiddleware ('otel ' , TraceRequest::class);
124
118
125
- $ kernel ->prependMiddleware (\ Overtrue \ LaravelOpenTelemetry \ Http \ Middleware \ TraceRequest::class);
119
+ $ kernel ->prependMiddleware (TraceRequest::class);
126
120
127
121
// Register Trace ID middleware
128
122
if (config ('otel.middleware.trace_id.enabled ' , true )) {
129
123
// Register middleware alias
130
- $ router ->aliasMiddleware ('otel.trace_id ' , \ Overtrue \ LaravelOpenTelemetry \ Http \ Middleware \ AddTraceId::class);
124
+ $ router ->aliasMiddleware ('otel.trace_id ' , AddTraceId::class);
131
125
132
126
// Enable TraceId middleware globally by default
133
127
if (config ('otel.middleware.trace_id.global ' , true )) {
134
- $ kernel ->pushMiddleware (\ Overtrue \ LaravelOpenTelemetry \ Http \ Middleware \ AddTraceId::class);
128
+ $ kernel ->pushMiddleware (AddTraceId::class);
135
129
Log::debug ('OpenTelemetry: Middleware registered globally for automatic tracing ' );
136
130
}
137
131
}
0 commit comments