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

Commit ddb0477

Browse files
authored
Merge pull request #9 from billyang-arch/main
fix:队列任务执行结束导出监控信息
2 parents 268ecc4 + ebea9ce commit ddb0477

File tree

4 files changed

+29
-4
lines changed

4 files changed

+29
-4
lines changed

src/Handlers/RequestTerminatedHandler.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
namespace Overtrue\LaravelOpenTelemetry\Handlers;
66

77
use Laravel\Octane\Events\RequestTerminated;
8-
use Overtrue\LaravelOpenTelemetry\Facades\Measure;
9-
use Overtrue\LaravelOpenTelemetry\Facades\Metric;
8+
use Overtrue\LaravelOpenTelemetry\Support\MeasureDataFlusher;
109

1110
class RequestTerminatedHandler
1211
{
@@ -16,7 +15,6 @@ class RequestTerminatedHandler
1615
public function handle(RequestTerminated $event): void
1716
{
1817
// In Octane mode, we need to force flush the tracer provider.
19-
Measure::flush();
20-
Metric::flush();
18+
MeasureDataFlusher::flush();
2119
}
2220
}

src/Support/MeasureDataFlusher.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace Overtrue\LaravelOpenTelemetry\Support;
4+
5+
use Overtrue\LaravelOpenTelemetry\Facades\Measure;
6+
use Overtrue\LaravelOpenTelemetry\Facades\Metric;
7+
8+
class MeasureDataFlusher
9+
{
10+
public static function flush(): void
11+
{
12+
Measure::flush();
13+
Metric::flush();
14+
}
15+
}

src/Watchers/QueueWatcher.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Illuminate\Queue\Events\JobQueued;
1212
use OpenTelemetry\SemConv\TraceAttributes;
1313
use Overtrue\LaravelOpenTelemetry\Facades\Measure;
14+
use Overtrue\LaravelOpenTelemetry\Support\MeasureDataFlusher;
1415

1516
/**
1617
* Queue Watcher
@@ -76,6 +77,8 @@ public function recordJobProcessed(JobProcessed $event): void
7677
'messaging.job.class' => $jobClass,
7778
'messaging.job.status' => 'completed',
7879
]);
80+
81+
MeasureDataFlusher::flush();
7982
}
8083

8184
public function recordJobFailed(JobFailed $event): void
@@ -87,5 +90,7 @@ public function recordJobFailed(JobFailed $event): void
8790
'messaging.job.class' => $jobClass,
8891
'messaging.job.status' => 'failed',
8992
]);
93+
94+
MeasureDataFlusher::flush();
9095
}
9196
}

tests/Watchers/QueueWatcherTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Mockery;
1212
use OpenTelemetry\SemConv\TraceAttributes;
1313
use Overtrue\LaravelOpenTelemetry\Facades\Measure;
14+
use Overtrue\LaravelOpenTelemetry\Support\MeasureDataFlusher;
1415
use Overtrue\LaravelOpenTelemetry\Tests\TestCase;
1516
use Overtrue\LaravelOpenTelemetry\Watchers\QueueWatcher;
1617

@@ -118,6 +119,9 @@ public function test_records_job_processed_event()
118119
'messaging.job.status' => 'completed',
119120
]);
120121

122+
$flusher = Mockery::mock('alias:'.MeasureDataFlusher::class);
123+
$flusher->shouldReceive('flush')->once();
124+
121125
$this->watcher->recordJobProcessed($event);
122126
}
123127

@@ -138,6 +142,9 @@ public function test_records_job_failed_event()
138142
'messaging.job.status' => 'failed',
139143
]);
140144

145+
$flusher = Mockery::mock('alias:'.MeasureDataFlusher::class);
146+
$flusher->shouldReceive('flush')->once();
147+
141148
$this->watcher->recordJobFailed($event);
142149
}
143150

0 commit comments

Comments
 (0)