Skip to content

Commit 61376da

Browse files
Clarify endpoint constant naming to avoid confusion between vX and v0.X versions. (#10594)
Clarify endpoint constant naming to avoid confusion between `vX` and `v0.X` versions. Fixed missing const. Co-authored-by: alexey.kuznetsov <alexey.kuznetsov@datadoghq.com>
1 parent cfcbc67 commit 61376da

9 files changed

Lines changed: 58 additions & 49 deletions

File tree

communication/src/main/java/datadog/communication/ddagent/DDAgentFeaturesDiscovery.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ public class DDAgentFeaturesDiscovery implements DroppingPolicy {
4646
(byte) FIXARRAY | 2, (byte) FIXARRAY, (byte) FIXARRAY
4747
};
4848

49-
public static final String V3_ENDPOINT = "v0.3/traces";
50-
public static final String V4_ENDPOINT = "v0.4/traces";
51-
public static final String V5_ENDPOINT = "v0.5/traces";
49+
public static final String V03_ENDPOINT = "v0.3/traces";
50+
public static final String V04_ENDPOINT = "v0.4/traces";
51+
public static final String V05_ENDPOINT = "v0.5/traces";
5252

53-
public static final String V6_METRICS_ENDPOINT = "v0.6/stats";
54-
public static final String V7_CONFIG_ENDPOINT = "v0.7/config";
53+
public static final String V06_METRICS_ENDPOINT = "v0.6/stats";
54+
public static final String V07_CONFIG_ENDPOINT = "v0.7/config";
5555

5656
public static final String V01_DATASTREAMS_ENDPOINT = "v0.1/pipeline_stats";
5757

@@ -72,8 +72,8 @@ public class DDAgentFeaturesDiscovery implements DroppingPolicy {
7272
private final HttpUrl agentBaseUrl;
7373
private final Recording discoveryTimer;
7474
private final String[] traceEndpoints;
75-
private final String[] metricsEndpoints = {V6_METRICS_ENDPOINT};
76-
private final String[] configEndpoints = {V7_CONFIG_ENDPOINT};
75+
private final String[] metricsEndpoints = {V06_METRICS_ENDPOINT};
76+
private final String[] configEndpoints = {V07_CONFIG_ENDPOINT};
7777
private final boolean metricsEnabled;
7878
private final String[] dataStreamsEndpoints = {V01_DATASTREAMS_ENDPOINT};
7979
// ordered from most recent to least recent, as the logic will stick with the first one that is
@@ -113,8 +113,8 @@ public DDAgentFeaturesDiscovery(
113113
this.metricsEnabled = metricsEnabled;
114114
this.traceEndpoints =
115115
enableV05Traces
116-
? new String[] {V5_ENDPOINT, V4_ENDPOINT, V3_ENDPOINT}
117-
: new String[] {V4_ENDPOINT, V3_ENDPOINT};
116+
? new String[] {V05_ENDPOINT, V04_ENDPOINT, V03_ENDPOINT}
117+
: new String[] {V04_ENDPOINT, V03_ENDPOINT};
118118
this.discoveryTimer = monitoring.newTimer("trace.agent.discovery.time");
119119
this.discoveryState = new State();
120120
}
@@ -217,7 +217,7 @@ private String probeTracesEndpoint(State newState, String[] endpoints) {
217217
errorQueryingEndpoint(candidate, e);
218218
}
219219
}
220-
return V3_ENDPOINT;
220+
return V03_ENDPOINT;
221221
}
222222

223223
private void processInfoResponseHeaders(Response response) {

communication/src/test/groovy/datadog/communication/ddagent/DDAgentFeaturesDiscoveryTest.groovy

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
package datadog.communication.ddagent
22

3+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V01_DATASTREAMS_ENDPOINT
4+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V04_ENDPOINT
5+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V05_ENDPOINT
6+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V06_METRICS_ENDPOINT
7+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V07_CONFIG_ENDPOINT
8+
import static datadog.communication.http.OkHttpUtils.DATADOG_CONTAINER_ID
9+
import static datadog.communication.http.OkHttpUtils.DATADOG_CONTAINER_TAGS_HASH
10+
311
import datadog.common.container.ContainerInfo
412
import datadog.metrics.api.Monitoring
513
import datadog.trace.test.util.DDSpecification
614
import datadog.trace.util.Strings
15+
import java.nio.file.Files
16+
import java.nio.file.Paths
717
import okhttp3.Call
818
import okhttp3.Headers
919
import okhttp3.HttpUrl
@@ -15,15 +25,6 @@ import okhttp3.Response
1525
import okhttp3.ResponseBody
1626
import spock.lang.Shared
1727

18-
import java.nio.file.Files
19-
import java.nio.file.Paths
20-
21-
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V01_DATASTREAMS_ENDPOINT
22-
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V6_METRICS_ENDPOINT
23-
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V7_CONFIG_ENDPOINT
24-
import static datadog.communication.http.OkHttpUtils.DATADOG_CONTAINER_ID
25-
import static datadog.communication.http.OkHttpUtils.DATADOG_CONTAINER_TAGS_HASH
26-
2728
class DDAgentFeaturesDiscoveryTest extends DDSpecification {
2829

2930
@Shared
@@ -50,20 +51,20 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
5051
def "test parse /info response"() {
5152
setup:
5253
OkHttpClient client = Mock(OkHttpClient)
53-
DDAgentFeaturesDiscovery features = new DDAgentFeaturesDiscovery(client, monitoring, agentUrl, true, true)
54+
DDAgentFeaturesDiscovery features = new DDAgentFeaturesDiscovery(client, monitoring, agentUrl, v05Enabled, true)
5455

5556
when: "/info available"
5657
features.discover()
5758

5859
then:
5960
1 * client.newCall(_) >> { Request request -> infoResponse(request, INFO_RESPONSE) }
60-
features.getMetricsEndpoint() == V6_METRICS_ENDPOINT
61+
features.getMetricsEndpoint() == V06_METRICS_ENDPOINT
6162
!features.supportsMetrics()
62-
features.getTraceEndpoint() == "v0.5/traces"
63+
features.getTraceEndpoint() == expectedTraceEndpoint
6364
features.getDataStreamsEndpoint() == V01_DATASTREAMS_ENDPOINT
6465
features.supportsDataStreams()
6566
features.state() == INFO_STATE
66-
features.getConfigEndpoint() == V7_CONFIG_ENDPOINT
67+
features.getConfigEndpoint() == V07_CONFIG_ENDPOINT
6768
features.supportsDebugger()
6869
features.getDebuggerSnapshotEndpoint() == "debugger/v2/input"
6970
features.supportsDebuggerDiagnostics()
@@ -74,6 +75,11 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
7475
!features.supportsLongRunning()
7576
!features.supportsTelemetryProxy()
7677
0 * _
78+
79+
where:
80+
v05Enabled | expectedTraceEndpoint
81+
false | V04_ENDPOINT
82+
true | V05_ENDPOINT
7783
}
7884

7985
def "Should change discovery state atomically after discovery happened"() {
@@ -114,13 +120,13 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
114120

115121
then:
116122
1 * client.newCall(_) >> { Request request -> infoResponse(request, INFO_RESPONSE) }
117-
features.getMetricsEndpoint() == V6_METRICS_ENDPOINT
123+
features.getMetricsEndpoint() == V06_METRICS_ENDPOINT
118124
!features.supportsMetrics()
119-
features.getTraceEndpoint() == "v0.5/traces"
125+
features.getTraceEndpoint() == V05_ENDPOINT
120126
features.getDataStreamsEndpoint() == V01_DATASTREAMS_ENDPOINT
121127
features.supportsDataStreams()
122128
features.state() == INFO_STATE
123-
features.getConfigEndpoint() == V7_CONFIG_ENDPOINT
129+
features.getConfigEndpoint() == V07_CONFIG_ENDPOINT
124130
features.supportsDebugger()
125131
features.supportsDebuggerDiagnostics()
126132
features.supportsEvpProxy()
@@ -140,9 +146,9 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
140146

141147
then:
142148
1 * client.newCall(_) >> { Request request -> infoResponse(request, INFO_WITH_CLIENT_DROPPING_RESPONSE) }
143-
features.getMetricsEndpoint() == V6_METRICS_ENDPOINT
149+
features.getMetricsEndpoint() == V06_METRICS_ENDPOINT
144150
features.supportsMetrics()
145-
features.getTraceEndpoint() == "v0.5/traces"
151+
features.getTraceEndpoint() == V05_ENDPOINT
146152
features.state() == INFO_WITH_CLIENT_DROPPING_STATE
147153
0 * _
148154
}
@@ -158,9 +164,9 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
158164

159165
then:
160166
1 * client.newCall(_) >> { Request request -> infoResponse(request, INFO_WITHOUT_DATA_STREAMS_RESPONSE) }
161-
features.getMetricsEndpoint() == V6_METRICS_ENDPOINT
167+
features.getMetricsEndpoint() == V06_METRICS_ENDPOINT
162168
!features.supportsMetrics()
163-
features.getTraceEndpoint() == "v0.5/traces"
169+
features.getTraceEndpoint() == V05_ENDPOINT
164170
features.getDataStreamsEndpoint() == null
165171
!features.supportsDataStreams()
166172
features.state() == INFO_WITHOUT_DATA_STREAMS_STATE
@@ -197,7 +203,7 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
197203
0 * client.newCall({ Request request -> request.url().toString() == "http://localhost:8125/v0.3/traces" }) >> { Request request -> success(request) }
198204
features.getMetricsEndpoint() == null
199205
!features.supportsMetrics()
200-
features.getTraceEndpoint() == "v0.5/traces"
206+
features.getTraceEndpoint() == V05_ENDPOINT
201207
!features.supportsLongRunning()
202208
features.state() == PROBE_STATE
203209
0 * _
@@ -217,7 +223,7 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
217223
1 * client.newCall({ Request request -> request.url().toString() == "http://localhost:8125/v0.5/traces" }) >> { Request request -> success(request) }
218224
features.getMetricsEndpoint() == null
219225
!features.supportsMetrics()
220-
features.getTraceEndpoint() == "v0.5/traces"
226+
features.getTraceEndpoint() == V05_ENDPOINT
221227
!features.supportsLongRunning()
222228
features.state() == PROBE_STATE
223229
0 * _
@@ -499,7 +505,7 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
499505
"""
500506
infoResponse(request, response)
501507
}
502-
features.getMetricsEndpoint() == V6_METRICS_ENDPOINT
508+
features.getMetricsEndpoint() == V06_METRICS_ENDPOINT
503509
features.supportsMetrics() == expected
504510

505511
where:

dd-trace-core/src/main/java/datadog/trace/common/metrics/ConflatingMetricsAggregator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package datadog.trace.common.metrics;
22

3-
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V6_METRICS_ENDPOINT;
3+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V06_METRICS_ENDPOINT;
44
import static datadog.trace.api.DDTags.BASE_SERVICE;
55
import static datadog.trace.api.Functions.UTF8_ENCODE;
66
import static datadog.trace.bootstrap.instrumentation.api.Tags.HTTP_ENDPOINT;
@@ -118,7 +118,7 @@ public ConflatingMetricsAggregator(
118118
new OkHttpSink(
119119
sharedCommunicationObjects.agentHttpClient,
120120
sharedCommunicationObjects.agentUrl.toString(),
121-
V6_METRICS_ENDPOINT,
121+
V06_METRICS_ENDPOINT,
122122
config.isTracerMetricsBufferingEnabled(),
123123
false,
124124
DEFAULT_HEADERS),

dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/DDAgentMapperDiscovery.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package datadog.trace.common.writer.ddagent;
22

3+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V05_ENDPOINT;
4+
35
import datadog.communication.ddagent.DDAgentFeaturesDiscovery;
46
import datadog.trace.common.writer.RemoteMapper;
57
import datadog.trace.common.writer.RemoteMapperDiscovery;
@@ -25,11 +27,13 @@ private void reset() {
2527
@Override
2628
public void discover() {
2729
reset();
30+
2831
if (featuresDiscovery.getTraceEndpoint() == null) {
2932
featuresDiscovery.discover();
3033
}
34+
3135
String tracesUrl = featuresDiscovery.getTraceEndpoint();
32-
if (DDAgentFeaturesDiscovery.V5_ENDPOINT.equalsIgnoreCase(tracesUrl)) {
36+
if (V05_ENDPOINT.equalsIgnoreCase(tracesUrl)) {
3337
this.traceMapper = new TraceMapperV0_5();
3438
} else if (null != tracesUrl) {
3539
this.traceMapper = new TraceMapperV0_4();

dd-trace-core/src/test/groovy/datadog/trace/TracerConnectionReliabilityTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ class TracerConnectionReliabilityTest extends DDSpecification {
152152

153153
@Override
154154
String getTraceEndpoint() {
155-
return V4_ENDPOINT
155+
return V04_ENDPOINT
156156
}
157157

158158
@Override

dd-trace-core/src/test/groovy/datadog/trace/common/metrics/OkHttpSinkTest.groovy

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ import static datadog.trace.common.metrics.EventListener.EventType.BAD_PAYLOAD
1818
import static datadog.trace.common.metrics.EventListener.EventType.DOWNGRADED
1919
import static datadog.trace.common.metrics.EventListener.EventType.ERROR
2020
import static datadog.trace.common.metrics.EventListener.EventType.OK
21-
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V6_METRICS_ENDPOINT
21+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V06_METRICS_ENDPOINT
2222

2323
class OkHttpSinkTest extends DDSpecification {
2424

2525
def "http status code #responseCode yields #eventType"() {
2626
setup:
2727
String agentUrl = "http://localhost:8126"
28-
String path = V6_METRICS_ENDPOINT
28+
String path = V06_METRICS_ENDPOINT
2929
EventListener listener = Mock(EventListener)
3030
OkHttpClient client = Mock(OkHttpClient)
3131
OkHttpSink sink = new OkHttpSink(client, agentUrl, path, true, false, Collections.emptyMap())
@@ -58,7 +58,7 @@ class OkHttpSinkTest extends DDSpecification {
5858
// them if it's possible not to.
5959
setup:
6060
String agentUrl = "http://localhost:8126"
61-
String path = V6_METRICS_ENDPOINT
61+
String path = V06_METRICS_ENDPOINT
6262
CountDownLatch latch = new CountDownLatch(2)
6363
EventListener listener = new BlockingListener(latch)
6464
OkHttpClient client = Mock(OkHttpClient)

dd-trace-core/src/test/groovy/datadog/trace/common/writer/WriterFactoryTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ class WriterFactoryTest extends DDSpecification {
172172
} else if (hasEvpProxy) {
173173
endpoints = [DDAgentFeaturesDiscovery.V2_EVP_PROXY_ENDPOINT]
174174
} else {
175-
endpoints = [DDAgentFeaturesDiscovery.V4_ENDPOINT]
175+
endpoints = [DDAgentFeaturesDiscovery.V04_ENDPOINT]
176176
}
177177

178178
def response = [

dd-trace-core/src/traceAgentTest/groovy/MetricsIntegrationTest.groovy

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import datadog.communication.ddagent.DDAgentFeaturesDiscovery
1+
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V06_METRICS_ENDPOINT
2+
import static datadog.trace.common.metrics.EventListener.EventType.OK
3+
import static java.util.concurrent.TimeUnit.SECONDS
4+
25
import datadog.communication.http.OkHttpUtils
36
import datadog.metrics.api.Histograms
47
import datadog.metrics.impl.DDSketchHistograms
@@ -10,14 +13,10 @@ import datadog.trace.common.metrics.EventListener
1013
import datadog.trace.common.metrics.MetricKey
1114
import datadog.trace.common.metrics.OkHttpSink
1215
import datadog.trace.common.metrics.SerializingMetricWriter
13-
import okhttp3.HttpUrl
14-
1516
import java.util.concurrent.CopyOnWriteArrayList
1617
import java.util.concurrent.CountDownLatch
1718
import java.util.concurrent.atomic.AtomicLongArray
18-
19-
import static datadog.trace.common.metrics.EventListener.EventType.OK
20-
import static java.util.concurrent.TimeUnit.SECONDS
19+
import okhttp3.HttpUrl
2120

2221
class MetricsIntegrationTest extends AbstractTraceAgentTest {
2322

@@ -31,7 +30,7 @@ class MetricsIntegrationTest extends AbstractTraceAgentTest {
3130
def latch = new CountDownLatch(1)
3231
def listener = new BlockingListener(latch)
3332
def agentUrl = Config.get().getAgentUrl()
34-
OkHttpSink sink = new OkHttpSink(OkHttpUtils.buildHttpClient(HttpUrl.parse(agentUrl), 5000L), agentUrl, DDAgentFeaturesDiscovery.V6_METRICS_ENDPOINT, true, false, [:])
33+
OkHttpSink sink = new OkHttpSink(OkHttpUtils.buildHttpClient(HttpUrl.parse(agentUrl), 5000L), agentUrl, V06_METRICS_ENDPOINT, true, false, [:])
3534
sink.register(listener)
3635

3736
when:

utils/test-utils/src/main/java/datadog/trace/test/util/AssertionsUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
public class AssertionsUtils {
88
private AssertionsUtils() {
9-
// Bo-op.
9+
// No-op.
1010
}
1111

1212
public static void assertMapContainsKeyValues(Map<?, ?> actual, Map<?, ?> expectedSubset) {

0 commit comments

Comments
 (0)