Skip to content

Commit 8727f96

Browse files
committed
updating benchmarks run
1 parent eb834d3 commit 8727f96

File tree

5 files changed

+99
-74
lines changed

5 files changed

+99
-74
lines changed

dd-java-agent/agent-bootstrap/src/test/groovy/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecoratorTest.groovy

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import datadog.trace.api.gateway.Flow
77
import datadog.trace.api.gateway.InstrumentationGateway
88
import datadog.trace.api.gateway.RequestContext
99
import datadog.trace.api.gateway.RequestContextSlot
10-
import datadog.trace.api.TraceConfig;
10+
import datadog.trace.api.TraceConfig
1111
import datadog.trace.bootstrap.ActiveSubsystems
1212
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation
1313
import datadog.trace.bootstrap.instrumentation.api.AgentSpan
@@ -360,7 +360,7 @@ class HttpServerDecoratorTest extends ServerDecoratorTest {
360360

361361
def responseSpan = Mock(AgentSpan)
362362
responseSpan.traceConfig() >> traceConfig
363-
363+
364364
def decorator = newDecorator()
365365

366366
when:
@@ -390,74 +390,74 @@ class HttpServerDecoratorTest extends ServerDecoratorTest {
390390
}
391391

392392
return new HttpServerDecorator<Map, Map, Map, Map<String, String>>() {
393-
@Override
394-
protected TracerAPI tracer() {
395-
return tracer
396-
}
393+
@Override
394+
protected TracerAPI tracer() {
395+
return tracer
396+
}
397397

398-
@Override
399-
protected String[] instrumentationNames() {
400-
return ["test1", "test2"]
401-
}
398+
@Override
399+
protected String[] instrumentationNames() {
400+
return ["test1", "test2"]
401+
}
402402

403-
@Override
404-
protected CharSequence component() {
405-
return "test-component"
406-
}
403+
@Override
404+
protected CharSequence component() {
405+
return "test-component"
406+
}
407407

408-
@Override
409-
protected AgentPropagation.ContextVisitor<Map<String, String>> getter() {
410-
return ContextVisitors.stringValuesMap()
411-
}
408+
@Override
409+
protected AgentPropagation.ContextVisitor<Map<String, String>> getter() {
410+
return ContextVisitors.stringValuesMap()
411+
}
412412

413-
@Override
414-
protected AgentPropagation.ContextVisitor<Map> responseGetter() {
415-
return new MapCarrierVisitor()
416-
}
413+
@Override
414+
protected AgentPropagation.ContextVisitor<Map> responseGetter() {
415+
return new MapCarrierVisitor()
416+
}
417417

418-
@Override
419-
CharSequence spanName() {
420-
return "http-test-span"
421-
}
418+
@Override
419+
CharSequence spanName() {
420+
return "http-test-span"
421+
}
422422

423-
@Override
424-
protected String method(Map m) {
425-
return m.method
426-
}
423+
@Override
424+
protected String method(Map m) {
425+
return m.method
426+
}
427427

428-
@Override
429-
protected URIDataAdapter url(Map m) {
430-
return m.url == null ? null : new URIDefaultDataAdapter(m.url)
431-
}
428+
@Override
429+
protected URIDataAdapter url(Map m) {
430+
return m.url == null ? null : new URIDefaultDataAdapter(m.url)
431+
}
432432

433-
@Override
434-
protected String peerHostIP(Map m) {
435-
return m.peerIp
436-
}
433+
@Override
434+
protected String peerHostIP(Map m) {
435+
return m.peerIp
436+
}
437437

438-
@Override
439-
protected int peerPort(Map m) {
440-
return m.port == null ? 0 : m.port
441-
}
438+
@Override
439+
protected int peerPort(Map m) {
440+
return m.port == null ? 0 : m.port
441+
}
442442

443-
@Override
444-
protected int status(Map m) {
445-
return m.status == null ? 0 : m.status
446-
}
443+
@Override
444+
protected int status(Map m) {
445+
return m.status == null ? 0 : m.status
446+
}
447447

448-
static class MapCarrierVisitor
448+
static class MapCarrierVisitor
449449
implements AgentPropagation.ContextVisitor<Map> {
450-
@Override
451-
void forEachKey(Map carrier, AgentPropagation.KeyClassifier classifier) {
452-
Map<String, String> headers = carrier.headers
453-
if (headers != null) {
454-
for (Map.Entry<String, String> entry : headers.entrySet()) {
455-
classifier.accept(entry.key, entry.value)
450+
@Override
451+
void forEachKey(Map carrier, AgentPropagation.KeyClassifier classifier) {
452+
Map<String, String> headers = carrier.headers
453+
if (headers != null) {
454+
for (Map.Entry<String, String> entry : headers.entrySet()) {
455+
classifier.accept(entry.key, entry.value)
456+
}
456457
}
457458
}
458459
}
459460
}
460-
}
461461
}
462462

463463
def "test startSpan and InstrumentationGateway"() {

dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
* <pre>
77
* DDTracer.builder().withProperties(new Properties()).build()
88
* </pre>
9-
* <p>
10-
* If using dd-java-agent, these keys represent settings that should be configured via system
9+
*
10+
* <p>If using dd-java-agent, these keys represent settings that should be configured via system
1111
* properties, environment variables, or config properties file. See online documentation for
1212
* details.
1313
*/
@@ -111,6 +111,5 @@ public final class GeneralConfig {
111111
public static final String SSI_INJECTION_FORCE = "inject.force";
112112
public static final String INSTRUMENTATION_SOURCE = "instrumentation.source";
113113

114-
private GeneralConfig() {
115-
}
114+
private GeneralConfig() {}
116115
}

telemetry/src/jmh/java/datadog/telemetry/configsources/ConfigSourcesBenchmark.java

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,32 @@
55
import static datadog.trace.api.config.GeneralConfig.VERSION;
66
import static java.util.concurrent.TimeUnit.MILLISECONDS;
77

8-
import java.net.URI;
9-
import java.util.ArrayList;
10-
import java.util.List;
11-
import java.util.Properties;
12-
138
import datadog.communication.ddagent.DDAgentFeaturesDiscovery;
9+
import datadog.communication.http.HttpRetryPolicy;
1410
import datadog.communication.monitor.Monitoring;
11+
import datadog.telemetry.TelemetryClient;
1512
import datadog.telemetry.TelemetryRunnable;
1613
import datadog.telemetry.TelemetryService;
1714
import datadog.trace.api.Config;
18-
import datadog.trace.core.baggage.BaggagePropagator;
15+
import java.util.ArrayList;
16+
import java.util.Properties;
17+
import okhttp3.HttpUrl;
18+
import okhttp3.OkHttpClient;
19+
import okhttp3.Request;
1920
import org.openjdk.jmh.annotations.Benchmark;
2021
import org.openjdk.jmh.annotations.BenchmarkMode;
2122
import org.openjdk.jmh.annotations.Level;
22-
import org.openjdk.jmh.annotations.Measurement;
2323
import org.openjdk.jmh.annotations.Mode;
2424
import org.openjdk.jmh.annotations.OutputTimeUnit;
2525
import org.openjdk.jmh.annotations.Scope;
2626
import org.openjdk.jmh.annotations.Setup;
2727
import org.openjdk.jmh.annotations.State;
28-
import org.openjdk.jmh.annotations.Warmup;
2928

3029
@OutputTimeUnit(MILLISECONDS)
3130
@BenchmarkMode(Mode.Throughput)
3231
@State(Scope.Benchmark)
3332
public class ConfigSourcesBenchmark {
34-
33+
3534
// Simple mock for DDAgentFeaturesDiscovery for benchmarking purposes
3635
private static class MockFeaturesDiscovery extends DDAgentFeaturesDiscovery {
3736
private final boolean supportsDataStreams;
@@ -52,22 +51,49 @@ public boolean supportsDataStreams() {
5251
return supportsDataStreams;
5352
}
5453
}
55-
54+
55+
private static class NoopTelemetryClient extends TelemetryClient {
56+
57+
public NoopTelemetryClient(
58+
OkHttpClient okHttpClient,
59+
HttpRetryPolicy.Factory httpRetryPolicy,
60+
HttpUrl url,
61+
String apiKey) {
62+
super(okHttpClient, httpRetryPolicy, url, apiKey);
63+
}
64+
65+
@Override
66+
public Result sendHttpRequest(Request.Builder httpRequestBuilder) {
67+
return Result.SUCCESS;
68+
}
69+
}
70+
5671
private Properties props;
57-
TelemetryRunnable telemetryRunnable;
58-
@Setup(Level.Trial)
72+
TelemetryService service;
73+
74+
@Setup(Level.Iteration)
5975
public void setUp() {
6076
props = new Properties();
6177
props.setProperty(SERVICE_NAME, "benchmark-service");
6278
props.setProperty(ENV, "benchmark-env");
6379
props.setProperty(VERSION, "1");
6480
DDAgentFeaturesDiscovery featuresDiscovery = new MockFeaturesDiscovery(false);
65-
TelemetryService service = TelemetryService.build(featuresDiscovery, null, null, false, false);
66-
telemetryRunnable = new TelemetryRunnable(service, new ArrayList<>());
81+
HttpUrl url =
82+
new HttpUrl.Builder()
83+
.scheme("https")
84+
.host("example.com")
85+
.addPathSegment("path")
86+
.addQueryParameter("key", "value")
87+
.build();
88+
NoopTelemetryClient telemetryClient =
89+
new NoopTelemetryClient(null, HttpRetryPolicy.Factory.NEVER_RETRY, url, "");
90+
service = TelemetryService.build(featuresDiscovery, telemetryClient, null, false, false);
6791
}
92+
6893
@Benchmark
6994
public void runTelemetry() {
7095
Config c = Config.get(props);
96+
TelemetryRunnable telemetryRunnable = new TelemetryRunnable(service, new ArrayList<>());
7197
telemetryRunnable.run();
7298
}
7399
}

telemetry/src/main/java/datadog/telemetry/TelemetryRouter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ public TelemetryClient.Result sendRequest(TelemetryRequest request) {
6464
currentClient = agentClient;
6565
}
6666
}
67-
6867
return result;
6968
}
7069

telemetry/src/main/java/datadog/telemetry/TelemetryRunnable.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ private List<MetricPeriodicAction> findMetricPeriodicActions(
5858
@Override
5959
public void run() {
6060
// Ensure that Config has been initialized, so ConfigCollector can collect all settings first.
61-
// Config.get();
61+
// Config.get();
6262

6363
collectConfigChanges();
6464

@@ -68,6 +68,7 @@ public void run() {
6868
try {
6969
if (!startupEventSent) {
7070
startupEventSent = sendAppStartedEvent();
71+
return;
7172
}
7273
if (startupEventSent) {
7374
mainLoopIteration();

0 commit comments

Comments
 (0)