Skip to content

Commit

Permalink
more tests for jacoco
Browse files Browse the repository at this point in the history
API clean up
  • Loading branch information
evanchooly committed Oct 31, 2024
1 parent 0d7b0a3 commit cd3beb8
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.datadog.debugger.probe.LogProbe;
import com.datadog.debugger.probe.MetricProbe;
import com.datadog.debugger.probe.ProbeDefinition;
import com.datadog.debugger.probe.Sampling;
import com.datadog.debugger.probe.SpanDecorationProbe;
import com.datadog.debugger.probe.SpanProbe;
import com.datadog.debugger.probe.TriggerProbe;
Expand Down Expand Up @@ -71,7 +70,7 @@ public int hashCode() {
private final Collection<SpanDecorationProbe> spanDecorationProbes;
private final FilterList allowList;
private final FilterList denyList;
private final Sampling sampling;
private final LogProbe.Sampling sampling;

public Configuration(String service, Collection<LogProbe> logProbes) {
this(service, null, logProbes, null);
Expand All @@ -94,7 +93,7 @@ public Configuration(
Collection<SpanDecorationProbe> spanDecorationProbes,
FilterList allowList,
FilterList denyList,
Sampling sampling) {
LogProbe.Sampling sampling) {
this.service = serviceName;
this.metricProbes = metricProbes;
this.logProbes = logProbes;
Expand Down Expand Up @@ -138,7 +137,7 @@ public FilterList getDenyList() {
return denyList;
}

public Sampling getSampling() {
public LogProbe.Sampling getSampling() {
return sampling;
}

Expand Down Expand Up @@ -214,7 +213,7 @@ public static class Builder {
private List<SpanDecorationProbe> spanDecorationProbes = null;
private FilterList allowList = null;
private FilterList denyList = null;
private Sampling sampling = null;
private LogProbe.Sampling sampling = null;

public Configuration.Builder setService(String service) {
this.service = service;
Expand Down Expand Up @@ -275,7 +274,7 @@ public Configuration.Builder add(SpanDecorationProbe probe) {
return this;
}

public Configuration.Builder add(Sampling newSampling) {
public Configuration.Builder add(LogProbe.Sampling newSampling) {
if (newSampling != null) {
sampling = newSampling;
}
Expand Down Expand Up @@ -366,7 +365,7 @@ public Configuration.Builder addDenyList(FilterList newDenyList) {
return this;
}

public Configuration.Builder setSampling(Sampling sampling) {
public Configuration.Builder setSampling(LogProbe.Sampling sampling) {
this.sampling = sampling;
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,8 @@ public ProbeImplementation resolve(String encodedProbeId) {
return definition;
}

private static void applyRateLimiter(ConfigurationComparer changes, Sampling globalSampling) {
private static void applyRateLimiter(
ConfigurationComparer changes, LogProbe.Sampling globalSampling) {
// ensure rate is up-to-date for all new probes
for (ProbeDefinition added : changes.getAddedDefinitions()) {
if (added instanceof Sampled) {
Expand All @@ -259,7 +260,7 @@ private static void applyRateLimiter(ConfigurationComparer changes, Sampling glo
}
// set global sampling
if (globalSampling != null) {
ProbeRateLimiter.setGlobalSnapshotRate(globalSampling.getEventsPerSecond());
ProbeRateLimiter.setGlobalSnapshotRate(globalSampling.getSnapshotsPerSecond());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,12 @@ public Sampling(double snapshotsPerSecond) {
this.snapshotsPerSecond = snapshotsPerSecond;
}

public double getSnapshotsPerSecond() {
return snapshotsPerSecond;
}

@Override
public Double getEventsPerSecond() {
public double getEventsPerSecond() {
return snapshotsPerSecond;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,29 @@

/** Stores sampling configuration */
public class Sampling {
private Integer coolDownInSeconds;
private Double eventsPerSecond;
private int coolDownInSeconds;
private double eventsPerSecond;
private volatile long nextExecution;
private int executionInterval = -1;

public Sampling() {}

public Sampling(int coolDownInSeconds) {
this.coolDownInSeconds = coolDownInSeconds;
this.executionInterval = coolDownInSeconds * 1000;
}

public Sampling(double eventsPerSecond) {
this.eventsPerSecond = eventsPerSecond;
}

public Sampling(int coolDownInSeconds, double eventsPerSecond) {
this.coolDownInSeconds = coolDownInSeconds;
this.executionInterval = coolDownInSeconds * 1000;

this.eventsPerSecond = eventsPerSecond;
}

public int getCoolDownInSeconds() {
return coolDownInSeconds;
}
Expand All @@ -23,21 +39,10 @@ public boolean inCoolDown() {
return true;
}

public Sampling setCoolDownInSeconds(int coolDownInSeconds) {
this.coolDownInSeconds = coolDownInSeconds;
this.executionInterval = coolDownInSeconds * 1000;
return this;
}

public Double getEventsPerSecond() {
public double getEventsPerSecond() {
return eventsPerSecond;
}

public Sampling setEventsPerSecond(Double eventsPerSecond) {
this.eventsPerSecond = eventsPerSecond;
return this;
}

private int getExecutionInterval() {
if (executionInterval == -1) {
executionInterval = coolDownInSeconds * 1000;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,7 @@ public void deserializeLogProbes() throws Exception {

@Test
public void roundtripSerialization() throws Exception {
String buffer = serialize();
System.out.println(buffer);
deserialize(buffer);
deserialize(serialize());
}

@Test
Expand Down Expand Up @@ -275,7 +273,8 @@ private Configuration createConfig1() {
"log1", "this is a log line with arg={arg}", "java.lang.String", "indexOf", "(String)");
SpanProbe span1 = createSpan("span1", "java.lang.String", "indexOf", "(String)");
TriggerProbe triggerProbe =
createTriggerProbe("debug1", "java.lang.String", "indexOf", "(String)");
createTriggerProbe("debug1", "java.lang.String", "indexOf", "(String)")
.setSampling(new Sampling(47, 12.0));

SpanDecorationProbe.Decoration decoration =
new SpanDecorationProbe.Decoration(
Expand All @@ -297,7 +296,7 @@ private Configuration createConfig1() {
Configuration.FilterList denyList =
new Configuration.FilterList(
asList("java.security"), asList("javax.security.auth.AuthPermission"));
Sampling globalSampling = new LogProbe.Sampling(10.0);
LogProbe.Sampling globalSampling = new LogProbe.Sampling(10.0);
return new Configuration(
"service1",
asList(metric1),
Expand Down Expand Up @@ -345,7 +344,7 @@ private Configuration createConfig2() {
Configuration.FilterList denyList =
new Configuration.FilterList(
asList("java.security"), asList("javax.security.auth.AuthPermission"));
Sampling globalSampling = new LogProbe.Sampling(10.0);
LogProbe.Sampling globalSampling = new LogProbe.Sampling(10.0);
return new Configuration(
"service2",
asList(metric2),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.datadog.debugger.probe;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.junit.jupiter.api.Test;

public class SamplingTest {
@Test
public void sampling() {
Sampling sampling = new Sampling();

assertEquals(0, sampling.getEventsPerSecond());
assertEquals(0, sampling.getCoolDownInSeconds());
assertFalse(sampling.inCoolDown());
}

@Test
public void inCoolDown() {
Sampling sampling = new Sampling(5);

assertEquals(0, sampling.getEventsPerSecond());
assertEquals(5, sampling.getCoolDownInSeconds());
assertFalse(sampling.inCoolDown());
assertTrue(sampling.inCoolDown());
}

@Test
public void constructors() {
assertEquals(new Sampling(0, 0.0), new Sampling());
assertEquals(new Sampling(0, 42.0), new Sampling(42.0));
assertEquals(new Sampling(10, 0.0), new Sampling(10));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,7 @@ public void cooldown() throws IOException, URISyntaxException {
final String className = "com.datadog.debugger.TriggerProbe01";
TriggerProbe probe1 =
createTriggerProbe(
TRIGGER_PROBE_ID1,
className,
"entry",
"()",
null,
new Sampling().setEventsPerSecond(10.0).setCoolDownInSeconds(10));
TRIGGER_PROBE_ID1, className, "entry", "()", null, new Sampling(10, 10.0));
installProbes(
Configuration.builder()
.setService(SERVICE_NAME)
Expand Down Expand Up @@ -113,13 +108,7 @@ public void sampling() throws IOException, URISyntaxException {

final String className = "com.datadog.debugger.TriggerProbe01";
TriggerProbe probe1 =
createTriggerProbe(
TRIGGER_PROBE_ID1,
className,
"entry",
"()",
null,
new Sampling().setEventsPerSecond(10.0));
createTriggerProbe(TRIGGER_PROBE_ID1, className, "entry", "()", null, new Sampling(10.0));
Configuration config =
Configuration.builder()
.setService(SERVICE_NAME)
Expand Down Expand Up @@ -148,7 +137,7 @@ public void conditions() throws IOException, URISyntaxException {
"entry",
"(int)",
new ProbeCondition(when(lt(ref("value"), value(25))), "value < 25"),
new Sampling().setEventsPerSecond(10.0));
new Sampling(10.0));
installProbes(
Configuration.builder()
.setService(SERVICE_NAME)
Expand Down

0 comments on commit cd3beb8

Please sign in to comment.