Skip to content

Commit

Permalink
Add the ability to define a query collector max value
Browse files Browse the repository at this point in the history
  • Loading branch information
mpociot committed Sep 18, 2019
1 parent 4dbd143 commit f7f15fa
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 0 deletions.
1 change: 1 addition & 0 deletions config/flare.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
'anonymize_ips' => true,
'collect_git_information' => true,
'report_queries' => true,
'maximum_number_of_collected_queries' => 200,
'report_query_bindings' => true,
'report_view_data' => true,
],
Expand Down
4 changes: 4 additions & 0 deletions src/QueryRecorder/QueryRecorder.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,13 @@ public function register()

public function record(QueryExecuted $queryExecuted)
{
$maximumQueries = config('flare.reporting.maximum_number_of_collected_queries', 200);

$reportBindings = $this->app['config']->get('flare.reporting.report_query_bindings');

$this->queries[] = Query::fromQueryExecutedEvent($queryExecuted, $reportBindings);

$this->queries = array_slice($this->queries, $maximumQueries * -1, $maximumQueries);
}

public function getQueries(): array
Expand Down
26 changes: 26 additions & 0 deletions tests/QueryRecorder/QueryRecorderTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

namespace Facade\Ignition\Tests\QueryRecorder;

use Facade\Ignition\QueryRecorder\QueryRecorder;
use Facade\Ignition\Tests\TestCase;
use Illuminate\Database\Connection;
use Illuminate\Database\Events\QueryExecuted;

class QueryRecorderTest extends TestCase
{
/** @test */
public function it_only_records_up_to_50_queries()
{
$recorder = new QueryRecorder($this->app);
$connection = app(Connection::class);

foreach (range(1, 400) as $i) {
$query = new QueryExecuted('query '.$i, [], time(), $connection);
$recorder->record($query);
}

$this->assertCount(200, $recorder->getQueries());
$this->assertSame('query 201', $recorder->getQueries()[0]['sql']);
}
}

0 comments on commit f7f15fa

Please sign in to comment.