update tests
This commit is contained in:
parent
31eaa993eb
commit
4b056b8c1e
6 changed files with 18 additions and 58 deletions
|
@ -18,10 +18,12 @@ composer require superbalist/laravel-prometheus-exporter
|
|||
```
|
||||
|
||||
Register the service provider in app.php
|
||||
|
||||
#### Laravel
|
||||
```php
|
||||
'providers' => [
|
||||
// ...
|
||||
Superbalist\LaravelPrometheusExporter\PrometheusServiceProvider::class,
|
||||
Superbalist\LaravelPrometheusExporter\LaravelServiceProvider::class,
|
||||
]
|
||||
```
|
||||
|
||||
|
@ -33,6 +35,11 @@ Register the facade in app.php
|
|||
]
|
||||
```
|
||||
|
||||
#### Lumen
|
||||
```php
|
||||
$app->register(Superbalist\LaravelPrometheusExporter\LumenServiceProvider::class);
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The package has a default configuration which uses the following environment variables.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace Superbalist\LaravelPrometheusExporter;
|
||||
|
||||
class LaravelPrometheusServiceProvider extends PrometheusServiceProvider
|
||||
class LaravelServiceProvider extends PrometheusServiceProvider
|
||||
{
|
||||
/**
|
||||
* Perform post-registration booting of services.
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace Superbalist\LaravelPrometheusExporter;
|
||||
|
||||
class LumenPrometheusServiceProvider extends PrometheusServiceProvider
|
||||
class LumenServiceProvider extends PrometheusServiceProvider
|
||||
{
|
||||
/**
|
||||
* Load routes.
|
|
@ -2,40 +2,25 @@
|
|||
|
||||
namespace Superbalist\LaravelPrometheusExporter;
|
||||
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Prometheus\RenderTextFormat;
|
||||
|
||||
class MetricsController extends Controller
|
||||
{
|
||||
/**
|
||||
* @var ResponseFactory
|
||||
*/
|
||||
protected $responseFactory;
|
||||
|
||||
/**
|
||||
* @var PrometheusExporter
|
||||
*/
|
||||
protected $prometheusExporter;
|
||||
|
||||
/**
|
||||
* @param ResponseFactory $responseFactory
|
||||
* @param PrometheusExporter $prometheusExporter
|
||||
*/
|
||||
public function __construct(ResponseFactory $responseFactory, PrometheusExporter $prometheusExporter)
|
||||
public function __construct(PrometheusExporter $prometheusExporter)
|
||||
{
|
||||
$this->responseFactory = $responseFactory;
|
||||
$this->prometheusExporter = $prometheusExporter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ResponseFactory
|
||||
*/
|
||||
public function getResponseFactory()
|
||||
{
|
||||
return $this->responseFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return PrometheusExporter
|
||||
*/
|
||||
|
@ -59,6 +44,6 @@ class MetricsController extends Controller
|
|||
$renderer = new RenderTextFormat();
|
||||
$result = $renderer->render($metrics);
|
||||
|
||||
return $this->responseFactory->make($result, 200, ['Content-Type' => RenderTextFormat::MIME_TYPE]);
|
||||
return Response::create($result, 200, ['Content-Type' => RenderTextFormat::MIME_TYPE]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
<?php
|
||||
|
||||
/** @var \Illuminate\Routing\Route $route */
|
||||
$route = Route::get(
|
||||
config('prometheus.metrics_route_path'),
|
||||
\Superbalist\LaravelPrometheusExporter\MetricsController::class . '@getMetrics'
|
||||
);
|
||||
|
||||
if ($name = config('prometheus.metrics_route_name')) {
|
||||
$route->name($name);
|
||||
}
|
||||
|
||||
$middleware = config('prometheus.metrics_route_middleware');
|
||||
|
||||
if ($middleware) {
|
||||
$route->middleware($middleware);
|
||||
}
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
namespace Tests;
|
||||
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Illuminate\Http\Response;
|
||||
use Mockery;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Prometheus\RenderTextFormat;
|
||||
|
@ -14,35 +12,22 @@ class MetricsControllerTest extends TestCase
|
|||
{
|
||||
public function testConstruct()
|
||||
{
|
||||
$responseFactory = Mockery::mock(ResponseFactory::class);
|
||||
$exporter = Mockery::mock(PrometheusExporter::class);
|
||||
$controller = new MetricsController($responseFactory, $exporter);
|
||||
$this->assertSame($responseFactory, $controller->getResponseFactory());
|
||||
$controller = new MetricsController($exporter);
|
||||
$this->assertSame($exporter, $controller->getPrometheusExporter());
|
||||
}
|
||||
|
||||
public function testGetMetrics()
|
||||
{
|
||||
$response = Mockery::mock(Response::class);
|
||||
|
||||
$responseFactory = Mockery::mock(ResponseFactory::class);
|
||||
$responseFactory->shouldReceive('make')
|
||||
->once()
|
||||
->withArgs([
|
||||
"\n",
|
||||
200,
|
||||
['Content-Type' => RenderTextFormat::MIME_TYPE],
|
||||
])
|
||||
->andReturn($response);
|
||||
|
||||
$exporter = Mockery::mock(PrometheusExporter::class);
|
||||
$exporter->shouldReceive('export')
|
||||
->once()
|
||||
->andReturn([]);
|
||||
|
||||
$controller = new MetricsController($responseFactory, $exporter);
|
||||
$controller = new MetricsController($exporter);
|
||||
|
||||
$r = $controller->getMetrics();
|
||||
$this->assertSame($response, $r);
|
||||
$response = $controller->getMetrics();
|
||||
$this->assertSame(200, $response->getStatusCode());
|
||||
$this->assertSame(RenderTextFormat::MIME_TYPE, $response->headers->get('Content-Type'));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue