Skip to content

Commit 4e6ba21

Browse files
authored
Add support for resource attributes (#295)
Signed-off-by: Pavol Loffay <[email protected]>
1 parent bf68d69 commit 4e6ba21

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

javaagent-core/src/main/java/org/hypertrace/agent/core/config/EnvironmentConfig.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ private EnvironmentConfig() {}
3838
public static final String CONFIG_FILE_PROPERTY = HT_PREFIX + "config.file";
3939
static final String SERVICE_NAME = HT_PREFIX + "service.name";
4040
static final String ENABLED = HT_PREFIX + "enabled";
41+
static final String RESOURCE_ATTRIBUTES = HT_PREFIX + ".resource.attributes";
4142

4243
static final String PROPAGATION_FORMATS = HT_PREFIX + "propagation.formats";
4344

@@ -71,6 +72,19 @@ public static AgentConfig.Builder applyPropertiesAndEnvVars(AgentConfig.Builder
7172
builder.setEnabled(BoolValue.newBuilder().setValue(Boolean.valueOf(enabled)).build());
7273
}
7374

75+
String attributes = getProperty(RESOURCE_ATTRIBUTES);
76+
if (attributes != null) {
77+
String[] attrs = attributes.split(",");
78+
for (String attr : attrs) {
79+
String[] keyValArr = attr.split("=");
80+
if (keyValArr.length == 2) {
81+
String key = keyValArr[0];
82+
String val = keyValArr[1];
83+
builder.putResourceAttributes(key, val);
84+
}
85+
}
86+
}
87+
7488
Reporting.Builder reportingBuilder = applyReporting(builder.getReporting().toBuilder());
7589
builder.setReporting(reportingBuilder);
7690

javaagent-core/src/main/proto

Submodule proto updated 1 file

javaagent-core/src/test/java/org/hypertrace/agent/core/config/EnvironmentConfigTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class EnvironmentConfigTest {
3939
@ClearSystemProperty(key = EnvironmentConfig.CAPTURE_BODY_MAX_SIZE_BYTES)
4040
@ClearSystemProperty(key = EnvironmentConfig.JAVAAGENT_FILTER_JAR_PATHS)
4141
@ClearSystemProperty(key = EnvironmentConfig.ENABLED)
42+
@ClearSystemProperty(key = EnvironmentConfig.RESOURCE_ATTRIBUTES)
4243
public void systemProperties() {
4344
// when tests are run in parallel the env vars/sys props set it junit-pioneer are visible to
4445
// parallel tests
@@ -53,13 +54,17 @@ public void systemProperties() {
5354
System.setProperty(EnvironmentConfig.CAPTURE_BODY_MAX_SIZE_BYTES, "512");
5455
System.setProperty(EnvironmentConfig.JAVAAGENT_FILTER_JAR_PATHS, "/path1.jar,/path/2/jar.jar");
5556
System.setProperty(EnvironmentConfig.ENABLED, "false");
57+
System.setProperty(EnvironmentConfig.RESOURCE_ATTRIBUTES, "key1=val1,key2=val2");
5658

5759
AgentConfig.Builder configBuilder = AgentConfig.newBuilder();
5860
configBuilder.setServiceName(StringValue.newBuilder().setValue("foo"));
5961

6062
AgentConfig agentConfig = EnvironmentConfig.applyPropertiesAndEnvVars(configBuilder).build();
6163
Assertions.assertEquals(false, agentConfig.getEnabled().getValue());
6264
Assertions.assertEquals("foo", agentConfig.getServiceName().getValue());
65+
Assertions.assertEquals(2, agentConfig.getResourceAttributesCount());
66+
Assertions.assertEquals("val1", agentConfig.getResourceAttributesMap().get("key1"));
67+
Assertions.assertEquals("val2", agentConfig.getResourceAttributesMap().get("key2"));
6368
Assertions.assertEquals(
6469
Arrays.asList(PropagationFormat.B3, PropagationFormat.TRACECONTEXT),
6570
agentConfig.getPropagationFormatsList());

0 commit comments

Comments
 (0)