From ec03bd2197c405e36df178767a9e4672a2b89e57 Mon Sep 17 00:00:00 2001 From: Saju Varghese Date: Fri, 15 Nov 2024 08:58:01 -0800 Subject: [PATCH] chore: update tests around sampling rates --- tests/unit/ClientTest.php | 80 +++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 32 deletions(-) diff --git a/tests/unit/ClientTest.php b/tests/unit/ClientTest.php index 92bd409..7dbe98c 100644 --- a/tests/unit/ClientTest.php +++ b/tests/unit/ClientTest.php @@ -58,32 +58,42 @@ public function testCountWithFloatValue() ); } + public function sampleRateData() + { + return [ + [0.9, 1, '0.9'], + [0.9, 0.5, '0.5'], + ]; + } + /** + * @dataProvider sampleRateData * @group sampling */ - public function testCountWithSamplingRate() + public function testCountWithSamplingRate(float $globalSampleRate, float $sampleRate, string $expectedSampleRate) { - $client = new Client($this->connection, 'test', 9 / 10); + $client = new Client($this->connection, 'test', $globalSampleRate); for ($i = 0; $i < 10; $i++) { - $client->count('foo.baz', 100, 1); + $client->count('foo.baz', 100, $sampleRate); } $this->assertEquals( - 'test.foo.baz:100|c|@0.9', + "test.foo.baz:100|c|@{$expectedSampleRate}", $this->connection->getLastMessage() ); } /** + * @dataProvider sampleRateData * @group sampling */ - public function testCountWithSamplingRateAndTags() + public function testCountWithSamplingRateAndTags(float $globalSampleRate, float $sampleRate, string $expectedSampleRate) { - $client = new Client($this->connection, 'test', 9 / 10); + $client = new Client($this->connection, 'test', $globalSampleRate); for ($i = 0; $i < 10; $i++) { - $client->count('foo.baz', 100, 1, ['tag' => 'value']); + $client->count('foo.baz', 100, $sampleRate, ['tag' => 'value']); } $this->assertEquals( - 'test.foo.baz:100|c|@0.9|#tag:value', + "test.foo.baz:100|c|@{$expectedSampleRate}|#tag:value", $this->connection->getLastMessage() ); } @@ -98,31 +108,33 @@ public function testIncrement() } /** + * @dataProvider sampleRateData * @group sampling */ - public function testIncrementWithSamplingRate() + public function testIncrementWithSamplingRate(float $globalSampleRate, float $sampleRate, string $expectedSampleRate) { - $client = new Client($this->connection, 'test', 0.9); + $client = new Client($this->connection, 'test', $globalSampleRate); for ($i = 0; $i < 10; $i++) { - $client->increment('foo.baz', 1); + $client->increment('foo.baz', $sampleRate); } $this->assertEquals( - 'test.foo.baz:1|c|@0.9', + "test.foo.baz:1|c|@{$expectedSampleRate}", $this->connection->getLastMessage() ); } /** + * @dataProvider sampleRateData * @group sampling */ - public function testIncrementWithSamplingRateAndTags() + public function testIncrementWithSamplingRateAndTags(float $globalSampleRate, float $sampleRate, string $expectedSampleRate) { - $client = new Client($this->connection, 'test', 0.9); + $client = new Client($this->connection, 'test', $globalSampleRate); for ($i = 0; $i < 10; $i++) { - $client->increment('foo.baz', 1, ['tag' => 'value']); + $client->increment('foo.baz', $sampleRate, ['tag' => 'value']); } $this->assertEquals( - 'test.foo.baz:1|c|@0.9|#tag:value', + "test.foo.baz:1|c|@{$expectedSampleRate}|#tag:value", $this->connection->getLastMessage() ); } @@ -137,31 +149,33 @@ public function testDecrement() } /** + * @dataProvider sampleRateData * @group sampling */ - public function testDecrementWithSamplingRate() + public function testDecrementWithSamplingRate(float $globalSampleRate, float $sampleRate, string $expectedSampleRate) { - $client = new Client($this->connection, 'test', 0.9); + $client = new Client($this->connection, 'test', $globalSampleRate); for ($i = 0; $i < 10; $i++) { - $client->decrement('foo.baz', 1); + $client->decrement('foo.baz', $sampleRate); } $this->assertEquals( - 'test.foo.baz:-1|c|@0.9', + "test.foo.baz:-1|c|@{$expectedSampleRate}", $this->connection->getLastMessage() ); } /** + * @dataProvider sampleRateData * @group sampling */ - public function testDecrementWithSamplingRateAndTags() + public function testDecrementWithSamplingRateAndTags(float $globalSampleRate, float $sampleRate, string $expectedSampleRate) { - $client = new Client($this->connection, 'test', 0.9); + $client = new Client($this->connection, 'test', $globalSampleRate); for ($i = 0; $i < 10; $i++) { - $client->decrement('foo.baz', 1, ['tag' => 'value']); + $client->decrement('foo.baz', $sampleRate, ['tag' => 'value']); } $this->assertEquals( - 'test.foo.baz:-1|c|@0.9|#tag:value', + "test.foo.baz:-1|c|@{$expectedSampleRate}|#tag:value", $this->connection->getLastMessage() ); } @@ -177,16 +191,17 @@ public function testCanMeasureTimingWithClosure() /** + * @dataProvider sampleRateData * @group sampling */ - public function testTimingWithSamplingRate() + public function testTimingWithSamplingRate(float $globalSampleRate, float $sampleRate, string $expectedSampleRate) { - $client = new Client($this->connection, 'test', 0.9); + $client = new Client($this->connection, 'test', $globalSampleRate); for ($i = 0; $i < 10; $i++) { - $client->timing('foo.baz', 2000, 1); + $client->timing('foo.baz', 2000, $sampleRate); } $this->assertEquals( - 'test.foo.baz:2000|ms|@0.9', + "test.foo.baz:2000|ms|@{$expectedSampleRate}", $this->connection->getLastMessage() ); } @@ -218,20 +233,21 @@ public function testEndTimingReturnsTiming() } /** + * @dataProvider sampleRateData * @group sampling */ - public function testStartEndTimingWithSamplingRate() + public function testStartEndTimingWithSamplingRate(float $globalSampleRate, float $sampleRate, string $expectedSampleRate) { - $client = new Client($this->connection, 'test', 0.9); + $client = new Client($this->connection, 'test', $globalSampleRate); for ($i = 0; $i < 10; $i++) { $client->startTiming('foo.baz'); usleep(10000); - $client->endTiming('foo.baz'); + $client->endTiming('foo.baz', $sampleRate); } // ranges between 1000 and 1001ms $this->assertMatchesRegularExpression( - '/^test\.foo\.baz:1[0-9](.[0-9]+)?\|ms\|@0.9$/', + "/^test\.foo\.baz:1[0-9](.[0-9]+)?\|ms\|@{$expectedSampleRate}$/", $this->connection->getLastMessage() ); }