Skip to content

Commit a105c16

Browse files
authored
Drop LoggingLevel (#2254)
* Drop LoggingLevel * Fix errorProne * Make disableLoggingLevel opt-in feature * Track via statsbeat * Rename * Fix compiling error * Rename
1 parent c0ebea6 commit a105c16

File tree

18 files changed

+63
-69
lines changed

18 files changed

+63
-69
lines changed

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,14 @@ public static class PreviewConfiguration {
234234
// https://portal.microsofticm.com/imp/v3/incidents/details/266992200/home
235235
public boolean disablePropagation;
236236
public boolean captureHttpServer4xxAsError = true;
237+
238+
// LoggingLevel is no longer sent by default since 3.3.0, since the data is already available
239+
// under SeverityLevel. This configuration is provided as a temporary measure for customers
240+
// who are unable to update their alerts/dashboards at the same time that they are updating
241+
// their Javaagent version
242+
// Note: this configuration option will be removed in 4.0.0
243+
public boolean captureLoggingLevelAsCustomDimension;
244+
237245
// this is to support interoperability with other systems
238246
// intentionally not allowing the removal of w3c propagator since that is key to many Azure
239247
// integrated experiences

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/exporter/LoggerExporter.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,12 @@ public class LoggerExporter implements LogExporter {
5757
new OperationLogger(Exporter.class, "Exporting log");
5858

5959
private final TelemetryClient telemetryClient;
60+
private final boolean captureLoggingLevelAsCustomDimension;
6061

61-
public LoggerExporter(TelemetryClient telemetryClient) {
62+
public LoggerExporter(
63+
TelemetryClient telemetryClient, boolean captureLoggingLevelAsCustomDimension) {
6264
this.telemetryClient = telemetryClient;
65+
this.captureLoggingLevelAsCustomDimension = captureLoggingLevelAsCustomDimension;
6366
}
6467

6568
@Override
@@ -239,18 +242,21 @@ static void setExtraAttributes(AbstractTelemetryBuilder telemetryBuilder, Attrib
239242
});
240243
}
241244

242-
private static void setLoggerProperties(
245+
private void setLoggerProperties(
243246
AbstractTelemetryBuilder telemetryBuilder,
244247
String loggerName,
245248
String threadName,
246249
Severity severity) {
247250

248251
telemetryBuilder.addProperty("SourceType", "Logger");
249252

250-
String loggingLevel = mapSeverityToLoggingLevel(severity);
251-
if (loggingLevel != null) {
252-
telemetryBuilder.addProperty("LoggingLevel", loggingLevel);
253+
if (captureLoggingLevelAsCustomDimension) {
254+
String loggingLevel = mapSeverityToLoggingLevel(severity);
255+
if (loggingLevel != null) {
256+
telemetryBuilder.addProperty("LoggingLevel", loggingLevel);
257+
}
253258
}
259+
254260
if (loggerName != null) {
255261
telemetryBuilder.addProperty("LoggerName", loggerName);
256262
}

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/OpenTelemetryConfigurer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,10 @@ private static SdkLogEmitterProviderBuilder configureLogging(
225225
}
226226

227227
private static LogExporter createLogExporter(Configuration configuration) {
228-
LogExporter logExporter = new LoggerExporter(TelemetryClient.getActive());
228+
LogExporter logExporter =
229+
new LoggerExporter(
230+
TelemetryClient.getActive(),
231+
configuration.preview.captureLoggingLevelAsCustomDimension);
229232
List<ProcessorConfig> processorConfigs = getLogProcessorConfigs(configuration);
230233
if (!processorConfigs.isEmpty()) {
231234
// Reversing the order of processors before passing it Log processor

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
@@ -60,7 +60,8 @@ enum Feature {
6060
VERTX_DISABLED(29), // preview instrumentation, vertx is ON by default in OTEL
6161
CUSTOM_DIMENSIONS_ENABLED(30), // enable customDimensions
6262
JAXRS_ANNOTATIONS_DISABLED(
63-
31); // can cause startup slowness, jaxrs-annotations is ON by default in OTEL
63+
31), // can cause startup slowness, jaxrs-annotations is ON by default in OTEL
64+
LOGGING_LEVEL_CUSTOM_PROPERTY_ENABLED(32); // preview opt-in to include LoggingLevel.
6465

6566
private static final Map<String, Feature> javaVendorFeatureMap;
6667

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,5 +174,9 @@ void trackConfigurationOptions(Configuration config) {
174174
if (!config.customDimensions.isEmpty()) {
175175
featureList.add(Feature.CUSTOM_DIMENSIONS_ENABLED);
176176
}
177+
178+
if (config.preview.captureLoggingLevelAsCustomDimension) {
179+
featureList.add(Feature.LOGGING_LEVEL_CUSTOM_PROPERTY_ENABLED);
180+
}
177181
}
178182
}

agent/agent-tooling/src/test/java/com/azure/monitor/opentelemetry/exporter/implementation/localstorage/LocalFileLoaderTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,6 @@ private static void verifyProperties(int index, JsonNode properties) {
478478
case 7: // Message
479479
assertThat(properties.get("LoggerName").asText())
480480
.isEqualTo("org.springframework.boot.web.embedded.tomcat.TomcatWebServer");
481-
assertThat(properties.get("LoggingLevel").asText()).isEqualTo("INFO");
482481
assertThat(properties.get("SourceType").asText()).isEqualTo("Logger");
483482
return;
484483
case 2:

agent/agent-tooling/src/test/java/com/microsoft/applicationinsights/agent/internal/processors/MockLoggerExporter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class MockLoggerExporter extends LoggerExporter {
3434
private final List<LogData> logs = new ArrayList<>();
3535

3636
public MockLoggerExporter(TelemetryClient telemetryClient) {
37-
super(telemetryClient);
37+
super(telemetryClient, false);
3838
}
3939

4040
public List<LogData> getLogs() {

agent/agent-tooling/src/test/resources/read-transmission.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
{"ver":1,"name":"Metric","time":"2021-06-14T17:24:28.983-0700","sampleRate":100,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"jvm_threads_live","kind":0,"value":150}],"properties":{"state":"runnable"}}}}
66
{"ver":1,"name":"Metric","time":"2021-06-14T17:24:28.983-0700","sampleRate":100,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"jdbc_connections_min","kind":0,"value":110}],"properties":{"name":"dataSource"}}}}
77
{"ver":1,"name":"Statsbeat","time":"2021-06-15T12:01:02.852-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"Request Success Count","kind":0,"value":2.0}],"properties":{"runtimeVersion":"11.0.7","os":"Windows","language":"java","attach":"codeless","instrumentation":"0","cikey":"00000000-0000-0000-0000-0FEEDDADBEEF","version":"3.1.1","rp":"unknown"}}}}
8-
{"ver":1,"name":"Message","time":"2021-06-15T08:36:09.569-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MessageData","baseData":{"ver":2,"message":"Tomcat initialized with port(s): 8080 (http)","severityLevel":"Information","properties":{"LoggerName":"org.springframework.boot.web.embedded.tomcat.TomcatWebServer","LoggingLevel":"INFO","SourceType":"Logger"}}}}
8+
{"ver":1,"name":"Message","time":"2021-06-15T08:36:09.569-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MessageData","baseData":{"ver":2,"message":"Tomcat initialized with port(s): 8080 (http)","severityLevel":"Information","properties":{"LoggerName":"org.springframework.boot.web.embedded.tomcat.TomcatWebServer","SourceType":"Logger"}}}}
99
{"ver":1,"name":"RemoteDependency","time":"2021-06-15T08:36:15.229-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.operation.id":"891b332db33c65cc6497c014f02db26d","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"DROP TABLE vet_specialties IF EXISTS","id":"d54e451407c13ad2","duration":"00:00:00.0130000","success":true,"data":"DROP TABLE vet_specialties IF EXISTS","type":"SQL","target":"b8f14b49-a2ad-4fa9-967e-c00b1d6addc4"}}}
1010
{"ver":1,"name":"Request","time":"2021-06-16T12:15:50.433-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.operation.id":"0cb22c0f071802f7f314569b007c9a1e","ai.operation.name":"GET /webjars/**","ai.cloud.roleInstance":"test-role-instance","ai.user.userAgent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36"},"data":{"baseType":"RequestData","baseData":{"ver":2,"id":"c0bfdc8f7963802c","duration":"00:00:00.0210000","responseCode":"304","success":true,"name":"GET /webjars/**","url":"http://localhost:8080/webjars/jquery/2.2.4/jquery.min.js"}}}

agent/agent-tooling/src/test/resources/write-transmission.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
{"ver":1,"name":"Metric","time":"2021-06-14T17:24:28.983-0700","sampleRate":100,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"jvm_threads_live","kind":0,"value":150}],"properties":{"state":"runnable"}}}}
66
{"ver":1,"name":"Metric","time":"2021-06-14T17:24:28.983-0700","sampleRate":100,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"jdbc_connections_min","kind":0,"value":110}],"properties":{"name":"dataSource"}}}}
77
{"ver":1,"name":"Statsbeat","time":"2021-06-15T12:01:02.852-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"Request Success Count","kind":0,"value":2.0}],"properties":{"runtimeVersion":"11.0.7","os":"Windows","language":"java","attach":"codeless","instrumentation":"0","cikey":"00000000-0000-0000-0000-0FEEDDADBEEF","version":"3.1.1","rp":"unknown"}}}}
8-
{"ver":1,"name":"Message","time":"2021-06-15T08:36:09.569-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MessageData","baseData":{"ver":2,"message":"Tomcat initialized with port(s): 8080 (http)","severityLevel":"Information","properties":{"LoggerName":"org.springframework.boot.web.embedded.tomcat.TomcatWebServer","LoggingLevel":"INFO","SourceType":"Logger"}}}}
8+
{"ver":1,"name":"Message","time":"2021-06-15T08:36:09.569-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"MessageData","baseData":{"ver":2,"message":"Tomcat initialized with port(s): 8080 (http)","severityLevel":"Information","properties":{"LoggerName":"org.springframework.boot.web.embedded.tomcat.TomcatWebServer","SourceType":"Logger"}}}}
99
{"ver":1,"name":"RemoteDependency","time":"2021-06-15T08:36:15.229-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.operation.id":"891b332db33c65cc6497c014f02db26d","ai.cloud.roleInstance":"test-role-instance"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"DROP TABLE vet_specialties IF EXISTS","id":"d54e451407c13ad2","duration":"00:00:00.0130000","success":true,"data":"DROP TABLE vet_specialties IF EXISTS","type":"SQL","target":"b8f14b49-a2ad-4fa9-967e-c00b1d6addc4"}}}
1010
{"ver":1,"name":"Request","time":"2021-06-16T12:15:50.433-0700","sampleRate":100.0,"iKey":"00000000-0000-0000-0000-0FEEDDADBEEF","tags":{"ai.internal.sdkVersion":"java:3.1.1","ai.internal.nodeName":"test-role-name","ai.operation.id":"0cb22c0f071802f7f314569b007c9a1e","ai.operation.name":"GET /webjars/**","ai.cloud.roleInstance":"test-role-instance","ai.user.userAgent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36"},"data":{"baseType":"RequestData","baseData":{"ver":2,"id":"c0bfdc8f7963802c","duration":"00:00:00.0210000","responseCode":"304","success":true,"name":"GET /webjars/**","url":"http://localhost:8080/webjars/jquery/2.2.4/jquery.min.js"}}}

test/smoke/testApps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,9 @@ public void test() throws Exception {
5656
assertEquals("hello", md.getMessage());
5757
assertEquals(SeverityLevel.Information, md.getSeverityLevel());
5858
assertEquals("Logger", md.getProperties().get("SourceType"));
59-
assertEquals("INFO", md.getProperties().get("LoggingLevel"));
6059
assertEquals("smoketestapp", md.getProperties().get("LoggerName"));
6160
assertNotNull(md.getProperties().get("ThreadName"));
6261
assertEquals("z", md.getProperties().get("tenant"));
63-
assertEquals(5, md.getProperties().size());
62+
assertEquals(4, md.getProperties().size());
6463
}
6564
}

0 commit comments

Comments
 (0)