1515import com .datadog .debugger .probe .ProbeDefinition ;
1616import com .datadog .debugger .probe .SpanDecorationProbe ;
1717import com .datadog .debugger .probe .SpanProbe ;
18+ import com .datadog .debugger .probe .TriggerProbe ;
19+ import com .datadog .debugger .probe .Where ;
1820import datadog .remoteconfig .state .ParsedConfigKey ;
1921import datadog .trace .api .Config ;
22+ import datadog .trace .bootstrap .debugger .ProbeId ;
2023import java .io .IOException ;
2124import java .nio .charset .StandardCharsets ;
2225import java .util .Arrays ;
@@ -129,6 +132,9 @@ public void testMultipleSingleProbesConfigurations() {
129132 MetricProbe metricProbe = createMetricProbe (UUID .randomUUID ().toString ());
130133 LogProbe logProbe = createLogProbe (UUID .randomUUID ().toString ());
131134 SpanProbe spanProbe = createSpanProbe (UUID .randomUUID ().toString ());
135+ SpanDecorationProbe spanDecorationProbe =
136+ createSpanDecorationProbe (UUID .randomUUID ().toString ());
137+ TriggerProbe triggerProbe = createTriggerProbe (UUID .randomUUID ().toString ());
132138
133139 acceptMetricProbe (listener , metricProbe );
134140 listener .commit (NOOP );
@@ -142,16 +148,40 @@ public void testMultipleSingleProbesConfigurations() {
142148 listener .commit (NOOP );
143149 assertDefinitions (acceptor .getDefinitions (), metricProbe , logProbe , spanProbe );
144150
151+ acceptSpanDecorationProbe (listener , spanDecorationProbe );
152+ listener .commit (NOOP );
153+ assertDefinitions (
154+ acceptor .getDefinitions (), metricProbe , logProbe , spanProbe , spanDecorationProbe );
155+
156+ acceptTriggerProbe (listener , triggerProbe );
157+ listener .commit (NOOP );
158+ assertDefinitions (
159+ acceptor .getDefinitions (),
160+ metricProbe ,
161+ logProbe ,
162+ spanProbe ,
163+ spanDecorationProbe ,
164+ triggerProbe );
165+
145166 removeMetricProbe (listener , metricProbe );
146167 listener .commit (NOOP );
147- assertDefinitions (acceptor .getDefinitions (), logProbe , spanProbe );
168+ assertDefinitions (
169+ acceptor .getDefinitions (), logProbe , spanProbe , spanDecorationProbe , triggerProbe );
148170
149171 removeLogProbe (listener , logProbe );
150172 listener .commit (NOOP );
151- assertDefinitions (acceptor .getDefinitions (), spanProbe );
173+ assertDefinitions (acceptor .getDefinitions (), spanProbe , spanDecorationProbe , triggerProbe );
152174
153175 removeSpanProbe (listener , spanProbe );
154176 listener .commit (NOOP );
177+ assertDefinitions (acceptor .getDefinitions (), spanDecorationProbe , triggerProbe );
178+
179+ removeSpanDecorationProbe (listener , spanDecorationProbe );
180+ listener .commit (NOOP );
181+ assertDefinitions (acceptor .getDefinitions (), triggerProbe );
182+
183+ removeTriggerProbe (listener , triggerProbe );
184+ listener .commit (NOOP );
155185 assertTrue (acceptor .getDefinitions ().isEmpty ());
156186 }
157187
@@ -166,13 +196,17 @@ public void testMergeConfigWithSingleProbe() {
166196 MetricProbe metricProbe = createMetricProbe ("345" );
167197 LogProbe logProbe = createLogProbe ("567" );
168198 SpanProbe spanProbe = createSpanProbe ("890" );
199+ SpanDecorationProbe spanDecorationProbe = createSpanDecorationProbe ("891" );
200+ TriggerProbe triggerProbe = createTriggerProbe ("892" );
169201
170202 Configuration config =
171203 Configuration .builder ()
172204 .setService (SERVICE_NAME )
173205 .add (metricProbe )
174206 .add (logProbe )
175207 .add (spanProbe )
208+ .add (spanDecorationProbe )
209+ .add (triggerProbe )
176210 .add (new LogProbe .Sampling (3.0 ))
177211 .addDenyList (createFilteredList ())
178212 .build ();
@@ -181,7 +215,13 @@ public void testMergeConfigWithSingleProbe() {
181215 acceptConfig (listener , config , UUID .randomUUID ().toString ());
182216 listener .commit (NOOP );
183217 assertDefinitions (
184- acceptor .getDefinitions (), logProbeWithSnapshot , metricProbe , logProbe , spanProbe );
218+ acceptor .getDefinitions (),
219+ logProbeWithSnapshot ,
220+ metricProbe ,
221+ logProbe ,
222+ spanProbe ,
223+ spanDecorationProbe ,
224+ triggerProbe );
185225 }
186226
187227 @ Test
@@ -248,6 +288,12 @@ byte[] toContent(SpanDecorationProbe probe) {
248288 .getBytes (StandardCharsets .UTF_8 );
249289 }
250290
291+ byte [] toContent (TriggerProbe probe ) {
292+ return DebuggerProductChangesListener .Adapter .TRIGGER_PROBE_JSON_ADAPTER
293+ .toJson (probe )
294+ .getBytes (StandardCharsets .UTF_8 );
295+ }
296+
251297 void acceptConfig (
252298 DebuggerProductChangesListener listener , Configuration config , String configId ) {
253299 assertDoesNotThrow (() -> listener .accept (createConfigKey (configId ), toContent (config ), NOOP ));
@@ -289,10 +335,28 @@ void acceptSpanDecorationProbe(
289335 createConfigKey ("spanDecorationProbe_" + probe .getId ()), toContent (probe ), NOOP ));
290336 }
291337
338+ void acceptTriggerProbe (DebuggerProductChangesListener listener , TriggerProbe probe ) {
339+ assertDoesNotThrow (
340+ () ->
341+ listener .accept (
342+ createConfigKey ("triggerProbe_" + probe .getId ()), toContent (probe ), NOOP ));
343+ }
344+
292345 void removeSpanProbe (DebuggerProductChangesListener listener , SpanProbe probe ) {
293346 assertDoesNotThrow (() -> listener .remove (createConfigKey ("spanProbe_" + probe .getId ()), NOOP ));
294347 }
295348
349+ void removeSpanDecorationProbe (
350+ DebuggerProductChangesListener listener , SpanDecorationProbe probe ) {
351+ assertDoesNotThrow (
352+ () -> listener .remove (createConfigKey ("spanDecorationProbe_" + probe .getId ()), NOOP ));
353+ }
354+
355+ void removeTriggerProbe (DebuggerProductChangesListener listener , TriggerProbe probe ) {
356+ assertDoesNotThrow (
357+ () -> listener .remove (createConfigKey ("triggerProbe_" + probe .getId ()), NOOP ));
358+ }
359+
296360 LogProbe createLogProbeWithSnapshot (String id ) {
297361 return LogProbe .builder ()
298362 .probeId (id , 0 )
@@ -325,6 +389,18 @@ SpanProbe createSpanProbe(String id) {
325389 .build ();
326390 }
327391
392+ SpanDecorationProbe createSpanDecorationProbe (String id ) {
393+ return SpanDecorationProbe .builder ()
394+ .probeId (id , 0 )
395+ .where (null , null , null , 1966 , "src/main/java/java/lang/String.java" )
396+ .targetSpan (SpanDecorationProbe .TargetSpan .ACTIVE )
397+ .build ();
398+ }
399+
400+ TriggerProbe createTriggerProbe (String id ) {
401+ return new TriggerProbe (new ProbeId (id , 0 ), Where .of ("java.lang.String" , "indexOf" , null ));
402+ }
403+
328404 Configuration .FilterList createFilteredList () {
329405 return new Configuration .FilterList (
330406 Collections .singletonList ("datadog" ), Collections .singletonList ("class1" ));
0 commit comments