Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package datadog.communication.ddagent;

import static datadog.communication.serialization.msgpack.MsgPackWriter.FIXARRAY;
import static java.util.Collections.singletonList;

import com.squareup.moshi.JsonAdapter;
import com.squareup.moshi.Moshi;
import com.squareup.moshi.Types;
Expand All @@ -11,7 +14,6 @@
import datadog.trace.util.Strings;
import java.nio.ByteBuffer;
import java.security.NoSuchAlgorithmException;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
Expand All @@ -32,6 +34,12 @@ public class DDAgentFeaturesDiscovery implements DroppingPolicy {
.build()
.adapter(Types.newParameterizedType(Map.class, String.class, Object.class));

// Currently all the endpoints that we probe expect a msgpack body of an array of arrays, v3/v4
// arbitrary size and v5 two elements, so let's give them a two element array of empty arrays
private static final byte[] PROBE_MESSAGE = {
(byte) FIXARRAY | 2, (byte) FIXARRAY, (byte) FIXARRAY
};

public static final String V3_ENDPOINT = "v0.3/traces";
public static final String V4_ENDPOINT = "v0.4/traces";
public static final String V5_ENDPOINT = "v0.5/traces";
Expand Down Expand Up @@ -191,7 +199,9 @@ private String probeTracesEndpoint(String[] endpoints) {
client
.newCall(
new Request.Builder()
.put(OkHttpUtils.msgpackRequestBodyOf(Collections.<ByteBuffer>emptyList()))
.put(
OkHttpUtils.msgpackRequestBodyOf(
singletonList(ByteBuffer.wrap(PROBE_MESSAGE))))
.url(agentBaseUrl.resolve(candidate))
.build())
.execute()) {
Expand Down
Loading