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

Commit d0c1d06

Browse files
author
billpyang
committed
fix:octane模式下导出metric
1 parent 2b18657 commit d0c1d06

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

src/Facades/Metric.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* @method static \OpenTelemetry\API\Metrics\HistogramInterface histogram(string $name, ?string $unit = null, ?string $description = null, array $advisories = [])
1515
* @method static \OpenTelemetry\API\Metrics\GaugeInterface gauge(string $name, ?string $unit = null, ?string $description = null, array $advisories = [])
1616
* @method static \OpenTelemetry\API\Metrics\ObservableGaugeInterface observableGauge(string $name, ?string $unit = null, ?string $description = null, array|callable $advisories = [], callable ...$callbacks)
17+
* @method static void flush()
1718
*
1819
* @see \Overtrue\LaravelOpenTelemetry\Support\Metric
1920
*/

src/Handlers/RequestTerminatedHandler.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use Laravel\Octane\Events\RequestTerminated;
88
use Overtrue\LaravelOpenTelemetry\Facades\Measure;
9+
use Overtrue\LaravelOpenTelemetry\Facades\Metric;
910

1011
class RequestTerminatedHandler
1112
{
@@ -16,5 +17,6 @@ public function handle(RequestTerminated $event): void
1617
{
1718
// In Octane mode, we need to force flush the tracer provider.
1819
Measure::flush();
20+
Metric::flush();
1921
}
2022
}

src/Support/Metric.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Illuminate\Contracts\Foundation\Application;
66
use Illuminate\Support\Facades\Log;
7+
use OpenTelemetry\API\Globals;
78
use OpenTelemetry\API\Metrics\CounterInterface;
89
use OpenTelemetry\API\Metrics\GaugeInterface;
910
use OpenTelemetry\API\Metrics\HistogramInterface;
@@ -39,6 +40,14 @@ public function isEnabled(): bool
3940
return self::$enabled;
4041
}
4142

43+
/**
44+
* Force flush (for Octane mode)
45+
*/
46+
public function flush(): void
47+
{
48+
Globals::meterProvider()?->forceFlush();
49+
}
50+
4251
// ======================= Core OpenTelemetry API =======================
4352

4453
/**

0 commit comments

Comments
 (0)