Skip to content

Commit eeef1e2

Browse files
tweak telemetry collection (#2174)
1 parent 7a960f1 commit eeef1e2

File tree

2 files changed

+51
-10
lines changed

2 files changed

+51
-10
lines changed

src/main/java/com/stripe/net/HttpClient.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -201,23 +201,23 @@ protected static String buildXStripeClientUserAgentString() {
201201
}
202202

203203
static String buildXStripeClientUserAgentString(String aiAgent) {
204-
String[] propertyNames = {
205-
"os.name",
206-
"os.version",
207-
"os.arch",
208-
"java.version",
209-
"java.vendor",
210-
"java.vm.version",
211-
"java.vm.vendor"
212-
};
204+
String[] propertyNames = {"java.version", "java.vendor", "java.vm.version", "java.vm.vendor"};
213205

214206
Map<String, String> propertyMap = new HashMap<>();
215207
for (String propertyName : propertyNames) {
216208
propertyMap.put(propertyName, System.getProperty(propertyName));
217209
}
218210
propertyMap.put("bindings.version", Stripe.VERSION);
219211
propertyMap.put("lang", "Java");
220-
propertyMap.put("publisher", "Stripe");
212+
if (Stripe.enableTelemetry) {
213+
propertyMap.put(
214+
"platform",
215+
System.getProperty("os.name")
216+
+ " "
217+
+ System.getProperty("os.version")
218+
+ " "
219+
+ System.getProperty("os.arch"));
220+
}
221221
if (Stripe.getAppInfo() != null) {
222222
propertyMap.put("application", ApiResource.INTERNAL_GSON.toJson(Stripe.getAppInfo()));
223223
}

src/test/java/com/stripe/net/HttpClientTest.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,4 +254,45 @@ public void testBuildXStripeClientUserAgentStringWithAIAgent() {
254254
com.google.gson.JsonParser.parseString(json).getAsJsonObject();
255255
assertEquals("cursor", parsed.get("ai_agent").getAsString());
256256
}
257+
258+
@Test
259+
public void testBuildXStripeClientUserAgentStringOmitsPublisherAndOsKeys() {
260+
String json = HttpClient.buildXStripeClientUserAgentString("");
261+
com.google.gson.JsonObject parsed =
262+
com.google.gson.JsonParser.parseString(json).getAsJsonObject();
263+
assertTrue(!parsed.has("publisher"));
264+
assertTrue(!parsed.has("os.name"));
265+
assertTrue(!parsed.has("os.version"));
266+
assertTrue(!parsed.has("os.arch"));
267+
}
268+
269+
@Test
270+
public void testBuildXStripeClientUserAgentStringPlatformWithTelemetry() {
271+
boolean originalTelemetry = Stripe.enableTelemetry;
272+
try {
273+
Stripe.enableTelemetry = true;
274+
String json = HttpClient.buildXStripeClientUserAgentString("");
275+
com.google.gson.JsonObject parsed =
276+
com.google.gson.JsonParser.parseString(json).getAsJsonObject();
277+
assertTrue(parsed.has("platform"));
278+
String platform = parsed.get("platform").getAsString();
279+
assertTrue(platform.contains(System.getProperty("os.name")));
280+
} finally {
281+
Stripe.enableTelemetry = originalTelemetry;
282+
}
283+
}
284+
285+
@Test
286+
public void testBuildXStripeClientUserAgentStringNoPlatformWithoutTelemetry() {
287+
boolean originalTelemetry = Stripe.enableTelemetry;
288+
try {
289+
Stripe.enableTelemetry = false;
290+
String json = HttpClient.buildXStripeClientUserAgentString("");
291+
com.google.gson.JsonObject parsed =
292+
com.google.gson.JsonParser.parseString(json).getAsJsonObject();
293+
assertTrue(!parsed.has("platform"));
294+
} finally {
295+
Stripe.enableTelemetry = originalTelemetry;
296+
}
297+
}
257298
}

0 commit comments

Comments
 (0)