Skip to content

Commit 5b147a3

Browse files
author
lukekuzmish
committed
tests
1 parent c29d0a7 commit 5b147a3

1 file changed

Lines changed: 84 additions & 0 deletions

File tree

tests/UnitTests/DogStatsd/SocketsTest.php

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1750,6 +1750,90 @@ public function testDDTags()
17501750
);
17511751
}
17521752

1753+
public function testFilterGlobalTagsCallbackReceivesConfigAndEnvTags()
1754+
{
1755+
putenv("DD_VERSION=1.2.3");
1756+
putenv("DD_ENV=prod");
1757+
putenv("DD_SERVICE=myService");
1758+
$this->disableOriginDetectionLinux();
1759+
1760+
$receivedTags = null;
1761+
$dog = new DogStatsd(array(
1762+
'global_tags' => array(
1763+
'my_tag' => 'tag_value',
1764+
),
1765+
'disable_telemetry' => false,
1766+
'filter_global_tags_callback' => function ($tags) use (&$receivedTags) {
1767+
$receivedTags = $tags;
1768+
unset($tags['env']);
1769+
$tags['service'] = 'filteredService';
1770+
$tags['callback_tag'] = 'callback_value';
1771+
1772+
return $tags;
1773+
}
1774+
));
1775+
1776+
$this->assertSame(
1777+
array(
1778+
'my_tag' => 'tag_value',
1779+
'env' => 'prod',
1780+
'service' => 'myService',
1781+
'version' => '1.2.3'
1782+
),
1783+
$receivedTags
1784+
);
1785+
1786+
$dog->timing('metric', 42, 1.0);
1787+
$spy = $this->getSocketSpy();
1788+
$this->assertSame(
1789+
1,
1790+
count($spy->argsFromSocketSendtoCalls),
1791+
'Should send 1 UDP message'
1792+
);
1793+
$expectedUdpMessage = 'metric:42|ms|#my_tag:tag_value,service:filteredService,version:1.2.3,callback_tag:callback_value';
1794+
$argsPassedToSocketSendTo = $spy->argsFromSocketSendtoCalls[0];
1795+
1796+
$this->assertSameWithTelemetry(
1797+
$expectedUdpMessage,
1798+
$argsPassedToSocketSendTo[1],
1799+
"",
1800+
array("tags" => "my_tag:tag_value,service:filteredService,version:1.2.3,callback_tag:callback_value")
1801+
);
1802+
}
1803+
1804+
public function testFilterGlobalTagsCallbackCanRemoveAllTags()
1805+
{
1806+
putenv("DD_VERSION=1.2.3");
1807+
putenv("DD_ENV=prod");
1808+
putenv("DD_SERVICE=myService");
1809+
$this->disableOriginDetectionLinux();
1810+
1811+
$dog = new DogStatsd(array(
1812+
'global_tags' => array(
1813+
'my_tag' => 'tag_value',
1814+
),
1815+
'disable_telemetry' => false,
1816+
'filter_global_tags_callback' => function ($tags) {
1817+
return array();
1818+
}
1819+
));
1820+
1821+
$dog->timing('metric', 42, 1.0);
1822+
$spy = $this->getSocketSpy();
1823+
$this->assertSame(
1824+
1,
1825+
count($spy->argsFromSocketSendtoCalls),
1826+
'Should send 1 UDP message'
1827+
);
1828+
$expectedUdpMessage = 'metric:42|ms';
1829+
$argsPassedToSocketSendTo = $spy->argsFromSocketSendtoCalls[0];
1830+
1831+
$this->assertSameWithTelemetry(
1832+
$expectedUdpMessage,
1833+
$argsPassedToSocketSendTo[1]
1834+
);
1835+
}
1836+
17531837
public function testCardinality()
17541838
{
17551839
$dog = new DogStatsd(array("disable_telemetry" => false));

0 commit comments

Comments
 (0)