2
2
3
3
namespace Cosmastech \StatsDClientAdapter \Adapters \League ;
4
4
5
+ use Cosmastech \StatsDClientAdapter \Adapters \Concerns \HasDefaultTagsTrait ;
5
6
use Cosmastech \StatsDClientAdapter \Adapters \Concerns \TagNormalizerAwareTrait ;
6
7
use Cosmastech \StatsDClientAdapter \Adapters \Contracts \TagNormalizerAware ;
7
8
use Cosmastech \StatsDClientAdapter \Adapters \StatsDClientAdapter ;
14
15
15
16
class LeagueStatsDClientAdapter implements StatsDClientAdapter, TagNormalizerAware
16
17
{
18
+ use HasDefaultTagsTrait;
17
19
use TagNormalizerAwareTrait;
18
20
19
21
public function __construct (
20
22
protected readonly LeagueStatsDClientInterface $ leagueStatsDClient ,
21
- protected readonly SampleRateSendDeciderInterface $ sampleRateSendDecider
23
+ protected readonly SampleRateSendDeciderInterface $ sampleRateSendDecider ,
24
+ array $ defaultTags = [],
22
25
) {
26
+ $ this ->setDefaultTags ($ defaultTags );
23
27
}
24
28
25
29
/**
@@ -28,12 +32,17 @@ public function __construct(
28
32
public static function fromConfig (
29
33
array $ config ,
30
34
string $ instanceName = 'default ' ,
31
- ?SampleRateSendDeciderInterface $ sampleRateSendDecider = null
35
+ ?SampleRateSendDeciderInterface $ sampleRateSendDecider = null ,
36
+ array $ defaultTags = []
32
37
): static {
33
38
$ instance = Client::instance ($ instanceName );
34
39
$ instance ->configure ($ config );
35
40
36
- return new static ($ instance , $ sampleRateSendDecider ?? new SampleRateSendDecider ());
41
+ return new self (
42
+ $ instance ,
43
+ $ sampleRateSendDecider ?? new SampleRateSendDecider (),
44
+ $ defaultTags
45
+ );
37
46
}
38
47
39
48
/**
@@ -45,7 +54,11 @@ public function timing(string $stat, float $durationMs, float $sampleRate = 1.0,
45
54
return ;
46
55
}
47
56
48
- $ this ->leagueStatsDClient ->timing ($ stat , $ durationMs , $ this ->normalizeTags ($ tags ));
57
+ $ this ->leagueStatsDClient ->timing (
58
+ $ stat ,
59
+ $ durationMs ,
60
+ $ this ->normalizeTags ($ this ->mergeTags ($ tags ))
61
+ );
49
62
}
50
63
51
64
/**
@@ -57,7 +70,11 @@ public function gauge(string $stat, float $value, float $sampleRate = 1.0, array
57
70
return ;
58
71
}
59
72
60
- $ this ->leagueStatsDClient ->gauge ($ stat , $ value , $ tags );
73
+ $ this ->leagueStatsDClient ->gauge (
74
+ $ stat ,
75
+ $ value ,
76
+ $ this ->normalizeTags ($ this ->mergeTags ($ tags ))
77
+ );
61
78
}
62
79
63
80
public function histogram (string $ stat , float $ value , float $ sampleRate = 1.0 , array $ tags = []): void
@@ -79,31 +96,50 @@ public function set(string $stat, float|string $value, float $sampleRate = 1.0,
79
96
return ;
80
97
}
81
98
82
- $ this ->leagueStatsDClient ->set ($ stat , $ value , $ tags );
99
+ $ this ->leagueStatsDClient ->set (
100
+ $ stat ,
101
+ $ value ,
102
+ $ this ->normalizeTags ($ this ->mergeTags ($ tags ))
103
+ );
83
104
}
84
105
85
106
/**
86
107
* @throws ConnectionException
87
108
*/
88
109
public function increment (array |string $ stats , float $ sampleRate = 1.0 , array $ tags = [], int $ value = 1 ): void
89
110
{
90
- $ this ->leagueStatsDClient ->increment ($ stats , $ value , $ sampleRate , $ tags );
111
+ $ this ->leagueStatsDClient ->increment (
112
+ $ stats ,
113
+ $ value ,
114
+ $ sampleRate ,
115
+ $ this ->normalizeTags ($ this ->mergeTags ($ tags ))
116
+ );
91
117
}
92
118
93
119
/**
94
120
* @throws ConnectionException
95
121
*/
96
122
public function decrement (array |string $ stats , float $ sampleRate = 1.0 , array $ tags = [], int $ value = 1 ): void
97
123
{
98
- $ this ->leagueStatsDClient ->decrement ($ stats , $ value , $ sampleRate , $ tags );
124
+ $ this ->leagueStatsDClient ->decrement (
125
+ $ stats ,
126
+ $ value ,
127
+ $ sampleRate ,
128
+ $ this ->normalizeTags ($ this ->mergeTags ($ tags ))
129
+ );
99
130
}
100
131
101
132
/**
102
133
* @throws ConnectionException
103
134
*/
104
135
public function updateStats (array |string $ stats , int $ delta = 1 , $ sampleRate = 1.0 , $ tags = null ): void
105
136
{
106
- $ this ->increment ($ stats , $ sampleRate , $ tags , $ delta );
137
+ $ this ->increment (
138
+ $ stats ,
139
+ $ sampleRate ,
140
+ $ this ->normalizeTags ($ this ->mergeTags ($ tags )),
141
+ $ delta
142
+ );
107
143
}
108
144
109
145
public function getClient (): LeagueStatsDClientInterface
0 commit comments