Laravel接入Prometheus的代码示例

互联网 19-3-2
本篇文章给大家带来的内容是关于Laravel接入Prometheus的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

在原有的基础上增加Counter计数器:

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]);     } }

以上就是Laravel接入Prometheus的代码示例的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: PHP
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Laravel测试之PHPUnit入门教程的介绍(附示例)

相关资讯