本篇文章给大家带来的内容是关于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]);
}
}
《PHP设计模式》首先介绍了设计模式,讲述了设计模式的使用及重要性,并且详细说明了应用设计模式的场合。接下来,本书通过代码示例介绍了许多设计模式。最后,本书通过全面深入的案例分析说明了如何使用设计模式来计划新的应用程序,如何采用PHP语言编写这些模式,以及如何使用书中介绍的设计模式修正和重构已有的代码块。作者采用专业的、便于使用的格式来介绍相关的概念,自学成才的编程人员与经过更多正规培训的编程人员
341
以上就是Laravel接入Prometheus的代码示例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号