Skip to content

Commit bc4a4a4

Browse files
Merge pull request #431 from Microsoft/reorganizeSanitizationLogic
Reorganize sanitization logic (Please review carefully)
2 parents 96ca725 + 4e29a75 commit bc4a4a4

File tree

57 files changed

+531
-1896
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+531
-1896
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# CHANGELOG
22

33
## Version 1.0.10
4+
- `track()` method of 'com.microsoft.applicationinsights.TelemetryClient' is now modified. No longer performing pre-sanitization
5+
- All Sanitization will now occur in `com.microsoft.applicationinsights.telemetry.JsonTelemetryDataSerializer` class.
6+
- Method `sanitize` of interface `com.microsoft.applicationinsights.telemetry.Telemetry` is now obsolete.
7+
- The auto generated schema classes now have writer method with limits according to endpoint.
48
- Fixed issue #403 (Exceeding property length invalidates custom event)
59
- Fixed issue #401 (Custom key and property sanitized)
610
- Fixed Request Telemetry Sending bug with new schema.

core/src/main/java/com/microsoft/applicationinsights/TelemetryClient.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -416,12 +416,6 @@ public void track(Telemetry telemetry) {
416416
throw new IllegalArgumentException("Instrumentation key cannot be undefined.");
417417
}
418418

419-
try {
420-
telemetry.sanitize();
421-
} catch (Throwable t) {
422-
InternalLogger.INSTANCE.error("Exception while sanitizing telemetry: '%s'",t.getMessage());
423-
}
424-
425419
if (!activateProcessors(telemetry)) {
426420
return;
427421
}

core/src/main/java/com/microsoft/applicationinsights/TelemetryConfiguration.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,16 @@
2121

2222
package com.microsoft.applicationinsights;
2323

24-
import java.util.ArrayList;
25-
import java.util.List;
26-
24+
import com.google.common.base.Strings;
2725
import com.microsoft.applicationinsights.channel.TelemetryChannel;
28-
2926
import com.microsoft.applicationinsights.extensibility.ContextInitializer;
3027
import com.microsoft.applicationinsights.extensibility.TelemetryInitializer;
3128
import com.microsoft.applicationinsights.extensibility.TelemetryModule;
3229
import com.microsoft.applicationinsights.extensibility.TelemetryProcessor;
3330
import com.microsoft.applicationinsights.internal.config.TelemetryConfigurationFactory;
34-
import com.microsoft.applicationinsights.internal.logger.InternalLogger;
35-
import com.microsoft.applicationinsights.internal.util.Sanitizer;
3631

37-
import com.google.common.base.Strings;
32+
import java.util.ArrayList;
33+
import java.util.List;
3834

3935
/**
4036
* Encapsulates the global telemetry configuration typically loaded from the ApplicationInsights.xml file.
@@ -186,9 +182,6 @@ public String getInstrumentationKey() {
186182
* @throws IllegalArgumentException when the new value is null or empty
187183
*/
188184
public void setInstrumentationKey(String key) {
189-
if (!Sanitizer.isUUID(key)) {
190-
InternalLogger.INSTANCE.trace("Telemetry Configuration: instrumentation key '%s' is not in UUID format", key);
191-
}
192185

193186
// A non null, non empty instrumentation key is a must
194187
if (Strings.isNullOrEmpty(key)) {

core/src/main/java/com/microsoft/applicationinsights/extensibility/context/OperationContext.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,24 @@ public void setId(String id) {
5151
MapUtil.setStringValueOrRemove(tags, ContextTagKeys.getKeys().getOperationId(), id);
5252
}
5353

54+
/**
55+
* Set the Operation Parent id
56+
* @param parentId
57+
*/
58+
public void setParentId(String parentId) {
59+
MapUtil.setStringValueOrRemove(tags, ContextTagKeys.getKeys().getOperationParentId(), parentId);
60+
}
61+
62+
63+
/**
64+
* Get the operation parent id
65+
* @return
66+
*/
67+
68+
public String getParentId() {
69+
return MapUtil.getValueOrNull(tags, ContextTagKeys.getKeys().getOperationParentId());
70+
}
71+
5472
/**
5573
* Gets the operation name.
5674
* @return Operation name.

core/src/main/java/com/microsoft/applicationinsights/internal/schemav2/Application.java

Lines changed: 0 additions & 108 deletions
This file was deleted.

core/src/main/java/com/microsoft/applicationinsights/internal/schemav2/AvailabilityData.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -232,17 +232,12 @@ protected void serializeContent(JsonTelemetryDataSerializer writer) throws IOExc
232232
{
233233
super.serializeContent(writer);
234234
writer.write("ver", ver);
235-
236-
writer.write("id", id);
237-
238-
writer.write("name", name);
239-
235+
writer.writeRequired("id", id, 64);
236+
writer.writeRequired("name", name, 1024);
240237
writer.write("duration", duration);
241-
242238
writer.write("success", success);
243-
244-
writer.write("runLocation", runLocation);
245-
writer.write("message", message);
239+
writer.write("runLocation", runLocation, 1024);
240+
writer.write("message", message, 8192);
246241
writer.write("properties", properties);
247242
writer.write("measurements", measurements);
248243
}

core/src/main/java/com/microsoft/applicationinsights/internal/schemav2/Base.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,12 @@
2222
* Generated from Base.bond (https://github.com/Microsoft/bond)
2323
*/
2424
package com.microsoft.applicationinsights.internal.schemav2;
25-
import java.io.IOException;
26-
import java.util.HashMap;
27-
import java.util.List;
28-
import java.util.ArrayList;
29-
import java.util.concurrent.ConcurrentMap;
30-
import java.util.concurrent.ConcurrentHashMap;
25+
26+
import com.google.common.base.Preconditions;
3127
import com.microsoft.applicationinsights.telemetry.JsonSerializable;
32-
import com.microsoft.applicationinsights.telemetry.Duration;
3328
import com.microsoft.applicationinsights.telemetry.JsonTelemetryDataSerializer;
34-
import com.google.common.base.Preconditions;
29+
30+
import java.io.IOException;
3531

3632
/**
3733
* Data contract class Base.
@@ -84,7 +80,7 @@ public void serialize(JsonTelemetryDataSerializer writer) throws IOException
8480
*/
8581
protected void serializeContent(JsonTelemetryDataSerializer writer) throws IOException
8682
{
87-
writer.write("baseType", baseType);
83+
writer.writeRequired("baseType", baseType, 1000);
8884
}
8985

9086
/**

core/src/main/java/com/microsoft/applicationinsights/internal/schemav2/Cloud.java

Lines changed: 0 additions & 131 deletions
This file was deleted.

core/src/main/java/com/microsoft/applicationinsights/internal/schemav2/Data.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,10 @@
2222
* Generated from Data.bond (https://github.com/Microsoft/bond)
2323
*/
2424
package com.microsoft.applicationinsights.internal.schemav2;
25-
import java.io.IOException;
26-
import java.util.HashMap;
27-
import java.util.List;
28-
import java.util.ArrayList;
29-
import java.util.concurrent.ConcurrentMap;
30-
import java.util.concurrent.ConcurrentHashMap;
31-
import com.microsoft.applicationinsights.telemetry.JsonSerializable;
32-
import com.microsoft.applicationinsights.telemetry.Duration;
25+
3326
import com.microsoft.applicationinsights.telemetry.JsonTelemetryDataSerializer;
34-
import com.google.common.base.Preconditions;
27+
28+
import java.io.IOException;
3529

3630
/**
3731
* Data contract class Data.

0 commit comments

Comments
 (0)