From 163715a4870c5d594c5bd7f53903b76bf400a9c3 Mon Sep 17 00:00:00 2001 From: billpyang Date: Tue, 4 Nov 2025 16:20:24 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=E9=98=9F=E5=88=97=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E7=BB=93=E6=9D=9F=E5=AF=BC=E5=87=BA=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Handlers/RequestTerminatedHandler.php | 6 ++---- src/Support/MeasureDataFlusher.php | 16 ++++++++++++++++ src/Watchers/QueueWatcher.php | 5 +++++ 3 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 src/Support/MeasureDataFlusher.php diff --git a/src/Handlers/RequestTerminatedHandler.php b/src/Handlers/RequestTerminatedHandler.php index 8cd7687..045fc7c 100644 --- a/src/Handlers/RequestTerminatedHandler.php +++ b/src/Handlers/RequestTerminatedHandler.php @@ -5,8 +5,7 @@ namespace Overtrue\LaravelOpenTelemetry\Handlers; use Laravel\Octane\Events\RequestTerminated; -use Overtrue\LaravelOpenTelemetry\Facades\Measure; -use Overtrue\LaravelOpenTelemetry\Facades\Metric; +use Overtrue\LaravelOpenTelemetry\Support\MeasureDataFlusher; class RequestTerminatedHandler { @@ -16,7 +15,6 @@ class RequestTerminatedHandler public function handle(RequestTerminated $event): void { // In Octane mode, we need to force flush the tracer provider. - Measure::flush(); - Metric::flush(); + MeasureDataFlusher::flush(); } } diff --git a/src/Support/MeasureDataFlusher.php b/src/Support/MeasureDataFlusher.php new file mode 100644 index 0000000..0b89a39 --- /dev/null +++ b/src/Support/MeasureDataFlusher.php @@ -0,0 +1,16 @@ + $jobClass, 'messaging.job.status' => 'completed', ]); + + MeasureDataFlusher::flush(); } public function recordJobFailed(JobFailed $event): void @@ -87,5 +90,7 @@ public function recordJobFailed(JobFailed $event): void 'messaging.job.class' => $jobClass, 'messaging.job.status' => 'failed', ]); + + MeasureDataFlusher::flush(); } } From 9422fb31f095dfab3b96a9391d7356caa91318cf Mon Sep 17 00:00:00 2001 From: billpyang Date: Tue, 4 Nov 2025 16:26:54 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=E5=AE=8C=E5=96=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Support/MeasureDataFlusher.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Support/MeasureDataFlusher.php b/src/Support/MeasureDataFlusher.php index 0b89a39..fc833a7 100644 --- a/src/Support/MeasureDataFlusher.php +++ b/src/Support/MeasureDataFlusher.php @@ -7,10 +7,9 @@ class MeasureDataFlusher { - public static function flush(): void { Measure::flush(); Metric::flush(); } -} \ No newline at end of file +} From ebea9cee7e9eb6358c729dec9ec1ccc6d1b019a3 Mon Sep 17 00:00:00 2001 From: billpyang Date: Tue, 4 Nov 2025 16:38:16 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=E5=AE=8C=E5=96=84=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/Watchers/QueueWatcherTest.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/Watchers/QueueWatcherTest.php b/tests/Watchers/QueueWatcherTest.php index d4e9f32..e90bbf9 100644 --- a/tests/Watchers/QueueWatcherTest.php +++ b/tests/Watchers/QueueWatcherTest.php @@ -11,6 +11,7 @@ use Mockery; use OpenTelemetry\SemConv\TraceAttributes; use Overtrue\LaravelOpenTelemetry\Facades\Measure; +use Overtrue\LaravelOpenTelemetry\Support\MeasureDataFlusher; use Overtrue\LaravelOpenTelemetry\Tests\TestCase; use Overtrue\LaravelOpenTelemetry\Watchers\QueueWatcher; @@ -118,6 +119,9 @@ public function test_records_job_processed_event() 'messaging.job.status' => 'completed', ]); + $flusher = Mockery::mock('alias:'.MeasureDataFlusher::class); + $flusher->shouldReceive('flush')->once(); + $this->watcher->recordJobProcessed($event); } @@ -138,6 +142,9 @@ public function test_records_job_failed_event() 'messaging.job.status' => 'failed', ]); + $flusher = Mockery::mock('alias:'.MeasureDataFlusher::class); + $flusher->shouldReceive('flush')->once(); + $this->watcher->recordJobFailed($event); }