Heim >PHP-Framework >Laravel >Codebeispiel für die Verbindung von Laravel mit Prometheus
Dieser Artikel enthält Codebeispiele für die Verbindung von Laravel mit Prometheus. Freunde in Not können darauf verweisen.
Erhöhen Sie den Zähler auf der ursprünglichen Basis:
namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use traumferienwohnungen\PrometheusExporter\Middleware\AbstractResponseTimeMiddleware; class PrometheusMonitor extends AbstractResponseTimeMiddleware { protected function getRouteNames() { $routeNames = []; foreach (\Route::getRoutes() as $route){ $routeNames[] = '/'.ltrim($route->uri(), '/'); } return $routeNames; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle(Request $request, Closure $next) { if (defined('LARAVEL_START')){ $start = LARAVEL_START; } elseif (defined('LUMEN_START')){ $start = LUMEN_START; } else { $start = microtime(true); } $this->request = $request; /** @var \Illuminate\Http\Response $response */ $response = $next($request); $route_name = $this->getRouteName(); $method = $request->getMethod(); $status = $response->getStatusCode(); $duration = microtime(true) - $start; $duration_milliseconds = $duration * 1000.0; $this->countRequest($route_name, $method, $status, $duration_milliseconds); $this->initRequestMetrics($method, $status); return $response; } public function getRouteName(){ return request()->getRequestUri(); } public function initRequestMetrics($method, $status) { $namespace = config('prometheus_exporter.namespace_http_server'); $labelNames = $this->getRequestCounterLabelNames(); $name = 'request_wuc'; $help = 'http_requests count'; $counter = $this->registry->getOrRegisterCounter( $namespace, $name, $help, $labelNames ); $counter->incBy(1, [$this->getRouteName(), $method, $status]); } }
Das obige ist der detaillierte Inhalt vonCodebeispiel für die Verbindung von Laravel mit Prometheus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!