Skip to content

Commit 1c32c8d

Browse files
committed
Add base hash support and service name overrides
1 parent 5e197d1 commit 1c32c8d

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

dd-trace-core/src/main/java/datadog/trace/core/datastreams/DefaultDataStreamsMonitoring.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ public DefaultDataStreamsMonitoring(
123123

124124
this.propagator =
125125
new DataStreamsPropagator(this, this.timeSource, this.hashOfKnownTags, serviceNameOverride);
126+
// configure global tags behavior
127+
DataStreamsTags.setGlobalBaseHash(this.hashOfKnownTags);
128+
DataStreamsTags.setServiceNameOverride(serviceNameOverride);
126129
}
127130

128131
@Override

internal-api/src/main/java/datadog/trace/api/datastreams/DataStreamsTags.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import datadog.trace.util.FNV64Hash;
44

5+
import javax.xml.crypto.Data;
6+
57
public class DataStreamsTags {
68
public enum Direction {
79
Unknown,
@@ -50,6 +52,9 @@ public enum Direction {
5052
public static final String HAS_ROUTING_KEY_TAG = "has_routing_key";
5153
public static final String KAFKA_CLUSTER_ID_TAG = "kafka_cluster_id";
5254

55+
private static volatile ThreadLocal<String> serviceNameOverride;
56+
private static volatile long baseHash;
57+
5358
public static byte[] longToBytes(long val) {
5459
return new byte[] {
5560
(byte) val,
@@ -144,6 +149,14 @@ public static DataStreamsTags createWithDataset(
144149
null);
145150
}
146151

152+
public static void setServiceNameOverride(ThreadLocal<String> serviceNameOverride) {
153+
DataStreamsTags.serviceNameOverride = serviceNameOverride;
154+
}
155+
156+
public static void setGlobalBaseHash(long hash) {
157+
DataStreamsTags.baseHash = hash;
158+
}
159+
147160
public static DataStreamsTags createWithClusterId(
148161
String type, Direction direction, String topic, String clusterId) {
149162
return new DataStreamsTags(
@@ -209,6 +222,17 @@ public DataStreamsTags(
209222
kafkaClusterId != null ? KAFKA_CLUSTER_ID_TAG + ":" + kafkaClusterId : null;
210223
this.partition = partition != null ? PARTITION_TAG + ":" + partition : null;
211224

225+
if (DataStreamsTags.baseHash != 0) {
226+
this.hash = DataStreamsTags.baseHash;
227+
}
228+
229+
if (DataStreamsTags.serviceNameOverride != null) {
230+
String val = DataStreamsTags.serviceNameOverride.get();
231+
if (val != null) {
232+
this.hash = FNV64Hash.continueHash(this.hash, val, FNV64Hash.Version.v1);
233+
}
234+
}
235+
212236
// hashable tags are 0-4
213237
for (int i = 0; i < 7; i++) {
214238
String tag = this.tagByIndex(i);

0 commit comments

Comments
 (0)