您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Laravel接入Prometheus的代码示例

2024/2/21 22:03:03发布16次查看
本篇文章给大家带来的内容是关于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的代码示例的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product