Skip to content

Commit 99c14ba

Browse files
heyamstrask
andauthored
Add test for customDimensions for Statsbeat (#2078)
* Add test for statsbeat & customDimensions config * Fix spotless * Track customDimensions config usage * Address comment Co-authored-by: Trask Stalnaker <[email protected]> Co-authored-by: Trask Stalnaker <[email protected]>
1 parent d99a4dd commit 99c14ba

File tree

4 files changed

+55
-1
lines changed

4 files changed

+55
-1
lines changed

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/statsbeat/Feature.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ enum Feature {
5757
CAPTURE_HTTP_SERVER_4XX_AS_SUCCESS(26),
5858
CAPTURE_HTTP_SERVER_HEADERS(27),
5959
CAPTURE_HTTP_CLIENT_HEADERS(28),
60-
VERTX_DISABLED(29); // preview instrumentation, vertx is ON by default in OTEL
60+
VERTX_DISABLED(29), // preview instrumentation, vertx is ON by default in OTEL
61+
CUSTOM_DIMENSIONS_ENABLED(30); // enable customDimensions
6162

6263
private static final Map<String, Feature> javaVendorFeatureMap;
6364

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/statsbeat/FeatureStatsbeat.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,5 +170,10 @@ void trackConfigurationOptions(Configuration config) {
170170
|| !config.preview.captureHttpClientHeaders.responseHeaders.isEmpty()) {
171171
featureList.add(Feature.CAPTURE_HTTP_CLIENT_HEADERS);
172172
}
173+
174+
// customDimensions
175+
if (!config.customDimensions.isEmpty()) {
176+
featureList.add(Feature.CUSTOM_DIMENSIONS_ENABLED);
177+
}
173178
}
174179
}

agent/agent-tooling/src/test/java/com/microsoft/applicationinsights/agent/internal/statsbeat/CustomDimensionsTest.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525

2626
import com.microsoft.applicationinsights.agent.internal.common.PropertyHelper;
2727
import com.microsoft.applicationinsights.agent.internal.common.SystemInformation;
28+
import com.microsoft.applicationinsights.agent.internal.configuration.Configuration;
29+
import com.microsoft.applicationinsights.agent.internal.exporter.models.MetricsData;
30+
import com.microsoft.applicationinsights.agent.internal.exporter.models.TelemetryItem;
31+
import com.microsoft.applicationinsights.agent.internal.telemetry.TelemetryClient;
2832
import java.util.HashMap;
2933
import java.util.Map;
3034
import org.junit.jupiter.api.Test;
@@ -82,4 +86,43 @@ public void testRuntimeVersion() {
8286

8387
assertThat(properties.get("runtimeVersion")).isEqualTo(System.getProperty("java.version"));
8488
}
89+
90+
@Test
91+
public void testCustomDimensionsConfigShouldNotImpactStatsbeatCustomDimensions() {
92+
Configuration configuration = new Configuration();
93+
configuration.customDimensions.put("firstTag", "abc");
94+
configuration.customDimensions.put("secondTag", "def");
95+
TelemetryClient telemetryClient =
96+
TelemetryClient.builder().setCustomDimensions(configuration.customDimensions).build();
97+
NetworkStatsbeat networkStatsbeat = new NetworkStatsbeat();
98+
TelemetryItem networkItem =
99+
networkStatsbeat.createStatsbeatTelemetry(telemetryClient, "test-network", 0.0);
100+
assertThat(networkItem.getTags()).doesNotContainKey("firstTag");
101+
assertThat(networkItem.getTags()).doesNotContainKey("secondTag");
102+
assertThat(((MetricsData) networkItem.getData().getBaseData()).getProperties())
103+
.doesNotContainKey("firstTag");
104+
assertThat(((MetricsData) networkItem.getData().getBaseData()).getProperties())
105+
.doesNotContainKey("secondTag");
106+
107+
AttachStatsbeat attachStatsbeat = new AttachStatsbeat(new CustomDimensions());
108+
TelemetryItem attachItem =
109+
attachStatsbeat.createStatsbeatTelemetry(telemetryClient, "test-attach", 0.0);
110+
assertThat(attachItem.getTags()).doesNotContainKey("firstTag");
111+
assertThat(attachItem.getTags()).doesNotContainKey("secondTag");
112+
assertThat(((MetricsData) attachItem.getData().getBaseData()).getProperties())
113+
.doesNotContainKey("firstTag");
114+
assertThat(((MetricsData) attachItem.getData().getBaseData()).getProperties())
115+
.doesNotContainKey("secondTag");
116+
117+
FeatureStatsbeat featureStatsbeat =
118+
new FeatureStatsbeat(new CustomDimensions(), FeatureType.FEATURE);
119+
TelemetryItem featureItem =
120+
featureStatsbeat.createStatsbeatTelemetry(telemetryClient, "test-feature", 0.0);
121+
assertThat(featureItem.getTags()).doesNotContainKey("firstTag");
122+
assertThat(featureItem.getTags()).doesNotContainKey("secondTag");
123+
assertThat(((MetricsData) featureItem.getData().getBaseData()).getProperties())
124+
.doesNotContainKey("firstTag");
125+
assertThat(((MetricsData) featureItem.getData().getBaseData()).getProperties())
126+
.doesNotContainKey("secondTag");
127+
}
85128
}

test/smoke/appServers/global-resources/faststatsbeat_applicationinsights.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
"disabled": false
66
}
77
},
8+
"customDimensions": {
9+
"tag1": "abc",
10+
"tag2": "def",
11+
"service.version": "123"
12+
},
813
"internal": {
914
"statsbeat": {
1015
"disabledAll": false,

0 commit comments

Comments
 (0)