Skip to content
This repository was archived by the owner on Dec 5, 2025. It is now read-only.

Commit 80756b5

Browse files
committed
wip: cli
1 parent 615b7cb commit 80756b5

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

config/otle.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
*/
2121
'automatically_trace_requests' => env('OTLE_AUTO_TRACE_REQUESTS', true),
2222

23+
/**
24+
* Auto start console tracer
25+
*/
26+
'automatically_trace_cli' => env('OTLE_AUTO_TRACE_CLI', true),
27+
2328
/**
2429
* Allow to trace requests with specific headers. You can use `*` as wildcard.
2530
*/

src/Middlewares/MeasureRequest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function handle(Request $request, Closure $next, ?string $name = null)
4242

4343
$span = Measure::span(sprintf('%s:%s', $request?->method() ?? 'unknown', $request->url()))
4444
->setAttributes($this->getRequestSpanAttributes($request))
45-
->start(false);
45+
->start();
4646
$context = $span->storeInContext(Context::getCurrent());
4747
$scope = $context->activate();
4848

src/OpenTelemetryServiceProvider.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@
77
use Illuminate\Config\Repository;
88
use Illuminate\Contracts\Http\Kernel;
99
use Illuminate\Support\ServiceProvider;
10+
use OpenTelemetry\API\Trace\SpanKind;
1011
use OpenTelemetry\SDK\Common\Time\ClockFactory;
1112
use Overtrue\LaravelOpenTelemetry\Middlewares\MeasureRequest;
1213
use Overtrue\LaravelOpenTelemetry\Support\CarbonClock;
1314
use Overtrue\LaravelOpenTelemetry\Support\Measure;
1415
use Overtrue\LaravelOpenTelemetry\Support\OpenTelemetryMonologHandler;
16+
use Overtrue\LaravelOpenTelemetry\Watchers\CommandWatcher;
17+
use Overtrue\LaravelOpenTelemetry\Watchers\ScheduledTaskWatcher;
1518

1619
class OpenTelemetryServiceProvider extends ServiceProvider
1720
{
@@ -30,6 +33,28 @@ public function boot(): void
3033
if (config('otle.automatically_trace_requests')) {
3134
$this->injectHttpMiddleware(app(Kernel::class));
3235
}
36+
37+
if ($this->app->runningInConsole() && config('otle.automatically_trace_cli')) {
38+
$tracer = $this->app->make(TracerManager::class)->driver(config('otle.default'));
39+
$tracer->register($this->app);
40+
41+
foreach ([
42+
CommandWatcher::class,
43+
ScheduledTaskWatcher::class,
44+
] as $watcher) {
45+
$this->app->make($watcher)->register($this->app);
46+
}
47+
48+
$span = Facades\Measure::span('artisan')
49+
->setSpanKind(SpanKind::KIND_SERVER)
50+
->start();
51+
$scope = $span->activate();
52+
53+
$this->app->terminating(function () use ($span, $scope) {
54+
$span->end();
55+
$scope->detach();
56+
});
57+
}
3358
}
3459

3560
public function register(): void

src/Watchers/EventWatcher.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function recordEvent($event): void
2121
return;
2222
}
2323

24-
Measure::activeSpan()->addEvent(sprintf('[EVENT] %s fired', $event), [
24+
Measure::activeSpan()->addEvent(sprintf('[Event] %s fired', $event), [
2525
'event.name' => $event,
2626
]);
2727
}

0 commit comments

Comments
 (0)