Skip to content

Commit 8f7fc87

Browse files
committed
More tests
We test that sampling works on resources with the same glob patterns Also adds a test where we test all criterias in one sampling rule.
1 parent 1453ab9 commit 8f7fc87

File tree

2 files changed

+68
-1
lines changed

2 files changed

+68
-1
lines changed

tests/ext/priority_sampling/021-rule-name-as-glob-with-question-mark.phpt

+28-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ $tests = [
1919
["f*o*e", "fooname", true],
2020
["f*o*m?", "fooname", true],
2121
["f*x*m?", "fooname", false],
22+
2223
];
2324

2425
foreach ($tests as list($pattern, $name, $matches)) {
@@ -46,7 +47,21 @@ foreach ($tests as list($pattern, $name, $matches)) {
4647
if ($root->metrics["_dd.rule_psr"] == ($matches ? 0.7 : 0.3)) {
4748
echo "As expected, $pattern " . ($matches ? "matches" : "doesn't match") . " $name (service)\n";
4849
} else {
49-
echo "$pattern " . ($matches ? "should have matched" : "shouldn't have matched") . " $name (name). Metrics found were: \n";
50+
echo "$pattern " . ($matches ? "should have matched" : "shouldn't have matched") . " $name (service). Metrics found were: \n";
51+
var_dump($root->metrics);
52+
}
53+
54+
ini_set("datadog.trace_sampling_rules", '[{"resource":"' . $pattern . '","sample_rate":0.7},{"sample_rate": 0.3]');
55+
56+
$root = \DDTrace\root_span();
57+
$root->resource = $name;
58+
59+
\DDTrace\get_priority_sampling();
60+
61+
if ($root->metrics["_dd.rule_psr"] == ($matches ? 0.7 : 0.3)) {
62+
echo "As expected, $pattern " . ($matches ? "matches" : "doesn't match") . " $name (resource)\n";
63+
} else {
64+
echo "$pattern " . ($matches ? "should have matched" : "shouldn't have matched") . " $name (resource). Metrics found were: \n";
5065
var_dump($root->metrics);
5166
}
5267
}
@@ -55,25 +70,37 @@ foreach ($tests as list($pattern, $name, $matches)) {
5570
--EXPECT--
5671
As expected, fooname matches fooname (name)
5772
As expected, fooname matches fooname (service)
73+
As expected, fooname matches fooname (resource)
5874
As expected, fooname** matches fooname (name)
5975
As expected, fooname** matches fooname (service)
76+
As expected, fooname** matches fooname (resource)
6077
As expected, **fooname matches fooname (name)
6178
As expected, **fooname matches fooname (service)
79+
As expected, **fooname matches fooname (resource)
6280
As expected, * matches fooname (name)
6381
As expected, * matches fooname (service)
82+
As expected, * matches fooname (resource)
6483
As expected, ??????? matches fooname (name)
6584
As expected, ??????? matches fooname (service)
85+
As expected, ??????? matches fooname (resource)
6686
As expected, ?????? doesn't match fooname (name)
6787
As expected, ?????? doesn't match fooname (service)
88+
As expected, ?????? doesn't match fooname (resource)
6889
As expected, ?? doesn't match fooname (name)
6990
As expected, ?? doesn't match fooname (service)
91+
As expected, ?? doesn't match fooname (resource)
7092
As expected, *? matches fooname (name)
7193
As expected, *? matches fooname (service)
94+
As expected, *? matches fooname (resource)
7295
As expected, ?* matches fooname (name)
7396
As expected, ?* matches fooname (service)
97+
As expected, ?* matches fooname (resource)
7498
As expected, f*o*e matches fooname (name)
7599
As expected, f*o*e matches fooname (service)
100+
As expected, f*o*e matches fooname (resource)
76101
As expected, f*o*m? matches fooname (name)
77102
As expected, f*o*m? matches fooname (service)
103+
As expected, f*o*m? matches fooname (resource)
78104
As expected, f*x*m? doesn't match fooname (name)
79105
As expected, f*x*m? doesn't match fooname (service)
106+
As expected, f*x*m? doesn't match fooname (resource)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
--TEST--
2+
priority_sampling rule with name match, using glob
3+
--ENV--
4+
DD_TRACE_GENERATE_ROOT_SPAN=1
5+
DD_TRACE_SAMPLING_RULES_FORMAT=glob
6+
--FILE--
7+
<?php
8+
9+
$tests = [
10+
["webserver.non-matching", "web.request", "/bar", false],
11+
["webserver", "web.request.non-matching", "/bar", false],
12+
["webserver", "web.request", "/bar.non-matching", false],
13+
["webserver", "web.request", "/b?r", true],
14+
];
15+
16+
foreach ($tests as list($servicePattern, $namePattern, $resourcePatthern, $matches)) {
17+
ini_set("datadog.trace.sampling_rules", '[{"name":"' . $namePattern . '","service":"' . $servicePattern . '","resource":"' . $resourcePatthern . '","sample_rate":0.7},{"sample_rate": 0.3}]');
18+
19+
$root = DDTrace\root_span();
20+
$root->service = "webserver";
21+
$root->name = "web.request";
22+
$root->resource = "/bar";
23+
24+
DDTrace\get_priority_sampling();
25+
26+
if ($root->metrics["_dd.rule_psr"] == ($matches ? 0.7 : 0.3)) {
27+
echo "As expected, rule $servicePattern, $namePattern, $resourcePatthern " . ($matches ? "matches" : "doesn't match") . "\n";
28+
} else {
29+
echo "Rule $servicePattern, $namePattern, $resourcePatthern " . ($matches ? "should have matched" : "shouldn't have matched") . "\n";
30+
var_dump($root->metrics);
31+
}
32+
33+
}
34+
?>
35+
36+
--EXPECT--
37+
As expected, rule webserver.non-matching, web.request, /bar doesn't match
38+
As expected, rule webserver, web.request.non-matching, /bar doesn't match
39+
As expected, rule webserver, web.request, /bar.non-matching doesn't match
40+
As expected, rule webserver, web.request, /b?r matches

0 commit comments

Comments
 (0)