From 6b82d80124bab55a61ff8905f0edbe39da3d85b9 Mon Sep 17 00:00:00 2001 From: Walt Moorhouse <60402633+KrogerWalt@users.noreply.github.com> Date: Mon, 12 Sep 2022 14:16:50 -0700 Subject: [PATCH 01/46] Build changes: Add an Automatic Module Name to Runtime Attach library (#2503) * Build changes needed to add an Automatic Module Name to Runtime Attach (#1) Build changes needed to add an Automatic Module Name so this library can be imported into modular java projects. * I'll build with 17 since that's what we're using for the modular app that needs this. * going back to 8 since the groovy warnings don't matter. * changelog updates from PR review. * Update agent/runtime-attach/build.gradle.kts Co-authored-by: Trask Stalnaker * changelog updates to give new name. * ran ./gradlew :spotlessApply as per pipeline failure message Co-authored-by: Trask Stalnaker --- CHANGELOG.md | 12 ++++++++++++ agent/runtime-attach/build.gradle.kts | 3 +++ 2 files changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ca4efa5986..0fd65391cd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # CHANGELOG +# Version 3.4.0-BETA.2 + +Migration notes: + +* If you were using Automatic naming before, you will need to update your module-info.java file. + Change ```requires applicationinsights.runtime.attach;``` to + ```requires com.microsoft.applicationinsights.runtime.attach;``` and everything should work. + +Enhancements: + +* Automatic module name enttry added to Runtime Attach library Jar to support Modular Java. + # Version 3.4.0-BETA Migration notes: diff --git a/agent/runtime-attach/build.gradle.kts b/agent/runtime-attach/build.gradle.kts index 4198a79b963..0b472a3c251 100644 --- a/agent/runtime-attach/build.gradle.kts +++ b/agent/runtime-attach/build.gradle.kts @@ -20,5 +20,8 @@ tasks { from({ agent.singleFile }) + manifest { + attributes("Automatic-Module-Name" to "com.microsoft.applicationinsights.attach") + } } } From 78bd11c0e5b0119015557713bb0357250c771d2e Mon Sep 17 00:00:00 2001 From: Helen <56097766+heyams@users.noreply.github.com> Date: Mon, 12 Sep 2022 15:23:18 -0700 Subject: [PATCH 02/46] Fix a typo (#2516) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fd65391cd0..2281218b8e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ Migration notes: Enhancements: -* Automatic module name enttry added to Runtime Attach library Jar to support Modular Java. +* Automatic module name entry added to Runtime Attach library Jar to support Modular Java. # Version 3.4.0-BETA From 2d85732f5b288057381ec8f109623cb4347f16da Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Tue, 13 Sep 2022 03:10:13 -0700 Subject: [PATCH 03/46] Add start-up diagnostics (resident-set size, native memory tracking) and the ability to disable the JVM C2 compiler during start-up (#2500) --- .../agent/internal/init/CommandExecutor.java | 85 +++++++++++ .../agent/internal/init/FirstEntryPoint.java | 7 + .../agent/internal/init/JvmCompiler.java | 46 ++++++ .../internal/init/StartupDiagnostics.java | 134 ++++++++++++++++++ 4 files changed, 272 insertions(+) create mode 100644 agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/CommandExecutor.java create mode 100644 agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/JvmCompiler.java create mode 100644 agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/StartupDiagnostics.java diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/CommandExecutor.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/CommandExecutor.java new file mode 100644 index 00000000000..d620bf95901 --- /dev/null +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/CommandExecutor.java @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.microsoft.applicationinsights.agent.internal.init; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.Charset; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import javax.annotation.Nullable; +import org.slf4j.Logger; + +class CommandExecutor { + + private CommandExecutor() {} + + static String execute(ProcessBuilder processBuilder) { + IllegalStateException exitException = null; + String result = null; + try { + Process process = processBuilder.start(); + int exitValue = process.waitFor(); + exitException = + buildExitValueExceptionIfNecessary(processBuilder.command(), exitValue, process); + if (exitException == null) { + InputStream inputStream = process.getInputStream(); + result = toString(inputStream); + } + process.destroy(); + } catch (IllegalStateException | IOException | InterruptedException e) { + throw combineExceptionsIfNecessary(exitException, e, processBuilder.command()); + } + if (exitException != null) { + throw exitException; + } + return result; + } + + static String executeWithoutException(ProcessBuilder processBuilder, Logger startupLogger) { + try { + return execute(processBuilder); + } catch (RuntimeException e) { + startupLogger.error("Error when executing command " + processBuilder.command() + ".", e); + if (e.getSuppressed().length == 1) { + return e.getMessage() + " (Suppressed: " + e.getSuppressed()[0] + ")"; + } + return e.getMessage(); + } + } + + @Nullable + private static IllegalStateException buildExitValueExceptionIfNecessary( + List command, int exitValue, Process directivesClearProcess) throws IOException { + if (exitValue != 0) { + InputStream errorStream = directivesClearProcess.getErrorStream(); + String error = toString(errorStream); + return new IllegalStateException( + "Error executing command " + Arrays.asList(command) + ": " + error + "."); + } + return null; + } + + private static String toString(InputStream inputStream) throws IOException { + try (BufferedReader bufferedReader = + new BufferedReader(new InputStreamReader(inputStream, Charset.defaultCharset()))) { + return bufferedReader.lines().collect(Collectors.joining(System.lineSeparator())); + } + } + + private static IllegalStateException combineExceptionsIfNecessary( + @Nullable IllegalStateException exitValueException, Exception e, List command) { + IllegalStateException exceptionWithMessage = + new IllegalStateException( + "Error related to the execution of " + Arrays.asList(command) + ".", e); + if (exitValueException == null) { + return exceptionWithMessage; + } + exitValueException.addSuppressed(exceptionWithMessage); + return exitValueException; + } +} diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java index 2ab8f811fc3..5c8f1ccdb04 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java @@ -90,6 +90,13 @@ public void init() { ConfigurationBuilder.logConfigurationWarnMessages(); ClassicSdkInstrumentation.registerTransformers(); + + StartupDiagnostics.execute(); + + if (JvmCompiler.hasToDisableJvmCompilerDirectives()) { + JvmCompiler.disableJvmCompilerDirectives(); + } + } catch (Exception e) { throw new IllegalStateException(e); } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/JvmCompiler.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/JvmCompiler.java new file mode 100644 index 00000000000..5395eb562c2 --- /dev/null +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/JvmCompiler.java @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.microsoft.applicationinsights.agent.internal.init; + +import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.PidFinder; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; + +class JvmCompiler { + + // To disable C2 compiler during Application Insights set-up, for Java >= 9, do the following + // things. + // Execute with -XX:+UnlockDiagnosticVMOptions -XX:CompilerDirectivesFile=path/jvm-disable-c2.json + // Content of jvm-disable-c2.json file: + // [ + // { + // match: [ + // "*::*" + // ], + // c2: { + // Exclude: true + // } + // } + // ] + private static final String + APPLICATIONINSIGHTS_EXPERIMENT_CLEAR_COMPILER_DIRECTIVES_AFTER_INITIALIZATION = + "applicationinsights.experiment.clear-compiler-directives-after-initialization"; + + private JvmCompiler() {} + + static boolean hasToDisableJvmCompilerDirectives() { + return Boolean.getBoolean( + APPLICATIONINSIGHTS_EXPERIMENT_CLEAR_COMPILER_DIRECTIVES_AFTER_INITIALIZATION); + } + + @SuppressFBWarnings( + value = "SECCI", // Command Injection + justification = "No user data is used to construct the command below") + static void disableJvmCompilerDirectives() { + CommandExecutor.execute(new ProcessBuilder("jcmd", pid(), "Compiler.directives_clear")); + } + + private static String pid() { + return new PidFinder().getValue(); + } +} diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/StartupDiagnostics.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/StartupDiagnostics.java new file mode 100644 index 00000000000..8a13b91b960 --- /dev/null +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/StartupDiagnostics.java @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.microsoft.applicationinsights.agent.internal.init; + +import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.PidFinder; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Optional; +import java.util.stream.Stream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +class StartupDiagnostics { + + public static final String APPLICATIONINSIGHTS_DEBUG_RSS_ENABLED = + "applicationinsights.debug.startup.rss.enabled"; + + // Execute with -XX:NativeMemoryTracking=summary + private static final String APPLICATIONINSIGHTS_DEBUG_NATIVE_MEM_TRACKING_ENABLED = + "applicationinsights.debug.startup.native-mem-tracking.enabled"; + + public static final String APPLICATIONINSIGHTS_DEBUG_DIAG_EXPORT_TO_FILE = + "applicationinsights.debug.startup.diag-export-to-file"; + + private static final Logger startupLogger = + LoggerFactory.getLogger("com.microsoft.applicationinsights.agent"); + + static class DiagnosticsReport { + + final StringBuilder diagnosticBuilder = new StringBuilder(); + + void addDiagnostic(String diagnostic) { + diagnosticBuilder.append(diagnostic); + diagnosticBuilder.append(System.lineSeparator()); + diagnosticBuilder.append(System.lineSeparator()); + } + + boolean isEmpty() { + return diagnosticBuilder.length() == 0; + } + + @Override + public String toString() { + return diagnosticBuilder.toString(); + } + } + + private StartupDiagnostics() {} + + static void execute() { + + DiagnosticsReport diagnosticsReport = new DiagnosticsReport(); + + if (Boolean.getBoolean(APPLICATIONINSIGHTS_DEBUG_RSS_ENABLED)) { + String os = System.getProperty("os.name"); + if (os.equals("Linux")) { + String residentSetSize = findResidentSetSize(); + diagnosticsReport.addDiagnostic(residentSetSize); + } + } + + if (Boolean.getBoolean(APPLICATIONINSIGHTS_DEBUG_NATIVE_MEM_TRACKING_ENABLED)) { + String nativeSummary = executeNativeMemoryDiag(); + diagnosticsReport.addDiagnostic(nativeSummary); + } + + generateReport(diagnosticsReport); + } + + private static void generateReport(DiagnosticsReport diagnosticsReport) { + if (!diagnosticsReport.isEmpty()) { + startupLogger.info("Start-up diagnostics" + File.separator + diagnosticsReport); + boolean exportToFile = Boolean.getBoolean(APPLICATIONINSIGHTS_DEBUG_DIAG_EXPORT_TO_FILE); + if (exportToFile) { + saveIntoFile(diagnosticsReport); + } + } + } + + private static String findResidentSetSize() { + try (Stream lines = Files.lines(Paths.get("/proc/self/status"))) { + return lines.filter(line -> line.startsWith("VmRSS")).findAny().orElse(""); + } catch (IOException e) { + startupLogger.error("Error when retrieving rss", e); + return e.getMessage(); + } + } + + private static void saveIntoFile(DiagnosticsReport diagnosticsReport) { + Optional optionalTempDir = createTempDirIfNotExists(); + if (optionalTempDir.isPresent()) { + File tempDir = optionalTempDir.get(); + File diagFile = new File(tempDir, "diagnostics.txt"); + write(diagnosticsReport, diagFile); + } + } + + private static void write(DiagnosticsReport diagnosticsReport, File diagFile) { + byte[] diagReportAsBytes = diagnosticsReport.toString().getBytes(StandardCharsets.UTF_8); + try { + Files.write(diagFile.toPath(), diagReportAsBytes); + } catch (IOException e) { + startupLogger.error("Error occurred when writing diag report.", e); + } + } + + private static Optional createTempDirIfNotExists() { + String tempDirectory = System.getProperty("java.io.tmpdir"); + File folder = new File(tempDirectory, "applicationinsights"); + if (!folder.exists() && !folder.mkdirs()) { + startupLogger.error("Failed to create directory: " + tempDirectory); + return Optional.empty(); + } + return Optional.of(folder); + } + + @SuppressFBWarnings( + value = "SECCI", // Command Injection + justification = "No user data is used to construct the command below") + private static String executeNativeMemoryDiag() { + ProcessBuilder processBuilder = + new ProcessBuilder("jcmd", pid(), "VM.native_memory", "summary"); + return CommandExecutor.executeWithoutException(processBuilder, startupLogger); + } + + private static String pid() { + return new PidFinder().getValue(); + } +} From f073ce05b496dae9d9a21da95b6ebd93aa6d544c Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Wed, 14 Sep 2022 01:24:38 -0700 Subject: [PATCH 04/46] Add classpath and input arguments to the self-diagnostics (#2517) --- .../agent/internal/init/FirstEntryPoint.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java index 5c8f1ccdb04..110c4e5b142 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java @@ -97,6 +97,12 @@ public void init() { JvmCompiler.disableJvmCompilerDirectives(); } + if (startupLogger.isDebugEnabled()) { + startupLogger.debug("Classpath: " + System.getProperty("java.class.path")); + startupLogger.debug( + "Input arguments: " + ManagementFactory.getRuntimeMXBean().getInputArguments()); + } + } catch (Exception e) { throw new IllegalStateException(e); } From 4d10e1a705894e5824f10b737f29fbafec899105 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 14 Sep 2022 10:13:50 -0700 Subject: [PATCH 05/46] Allow suppressing all metrics (#2490) * Allow suppressing all metrics * Remove stream --- .../internal/telemetry/MetricFilter.java | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/telemetry/MetricFilter.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/telemetry/MetricFilter.java index af6011a5608..55c8fa7ba39 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/telemetry/MetricFilter.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/telemetry/MetricFilter.java @@ -3,10 +3,7 @@ package com.microsoft.applicationinsights.agent.internal.telemetry; -import static java.util.Arrays.asList; - import com.microsoft.applicationinsights.agent.internal.configuration.Configuration; -import com.microsoft.applicationinsights.agent.internal.perfcounter.MetricNames; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -16,16 +13,6 @@ public class MetricFilter { - private static final Set NON_FILTERABLE_METRIC_NAMES = - new HashSet<>( - asList( - MetricNames.TOTAL_CPU_PERCENTAGE, - MetricNames.PROCESS_CPU_PERCENTAGE, - MetricNames.PROCESS_CPU_PERCENTAGE_NORMALIZED, - MetricNames.PROCESS_MEMORY, - MetricNames.TOTAL_MEMORY, - MetricNames.PROCESS_IO)); - // OpenTelemetry Collector also supports include // but we aren't adding this support, at least not yet, since it implicitly excludes everything // else @@ -38,8 +25,8 @@ public MetricFilter(Configuration.ProcessorConfig metricFilterConfiguration) { this.exclude = new IncludeExclude(metricFilterConfiguration.exclude); } - boolean matches(String metricName) { - return !exclude.matches(metricName); + boolean exclude(String metricName) { + return exclude.matches(metricName); } public static class IncludeExclude { @@ -85,12 +72,9 @@ boolean matches(String metricName) { } public static boolean shouldSkip(String metricName, List metricFilters) { - if (!MetricFilter.NON_FILTERABLE_METRIC_NAMES.contains(metricName)) { - for (MetricFilter metricFilter : metricFilters) { - if (!metricFilter.matches(metricName)) { - // user configuration filtered out this metric name - return true; - } + for (MetricFilter metricFilter : metricFilters) { + if (metricFilter.exclude(metricName)) { + return true; } } return false; From 3faa91bce7edbf19e5087ce0804a3ceacb89e473 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 14 Sep 2022 10:21:03 -0700 Subject: [PATCH 06/46] Simplify metrics views (#2515) --- .../PreAggregatedStandardMetrics.java | 100 ------------ .../BootstrapSemanticAttributes.java | 29 ---- .../api/instrumenter/UserAgents.java | 20 --- .../instrumenter/http/HttpClientMetrics.java | 141 ---------------- .../instrumenter/http/HttpServerMetrics.java | 154 ------------------ .../http/TemporaryMetricsView.java | 129 --------------- .../api/instrumenter/rpc/MetricsView.java | 132 --------------- .../instrumenter/rpc/RpcClientMetrics.java | 95 ----------- .../instrumenter/rpc/RpcServerMetrics.java | 95 ----------- .../agent/internal/init/SecondEntryPoint.java | 20 +-- .../sdk/metrics/ViewBuilderAccessor.java | 15 ++ .../metrics/internal/view/AiViewRegistry.java | 38 +++++ .../sdk/metrics/internal/view/MetricView.java | 70 ++++++++ .../view/MetricViewAttributesProcessor.java | 97 +++++++++++ .../sdk/metrics/internal/view/UserAgents.java | 17 ++ .../internal/PreAggregatedMetricsTest.java | 6 +- agent/agent/build.gradle.kts | 8 - .../implementation/AiSemanticAttributes.java | 2 + 18 files changed, 247 insertions(+), 921 deletions(-) delete mode 100644 agent/agent-bootstrap/src/main/java/com/microsoft/applicationinsights/agent/bootstrap/PreAggregatedStandardMetrics.java delete mode 100644 agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/BootstrapSemanticAttributes.java delete mode 100644 agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/UserAgents.java delete mode 100644 agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientMetrics.java delete mode 100644 agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerMetrics.java delete mode 100644 agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/TemporaryMetricsView.java delete mode 100644 agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/MetricsView.java delete mode 100644 agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetrics.java delete mode 100644 agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetrics.java create mode 100644 agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/ViewBuilderAccessor.java create mode 100644 agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/AiViewRegistry.java create mode 100644 agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricView.java create mode 100644 agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java create mode 100644 agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java diff --git a/agent/agent-bootstrap/src/main/java/com/microsoft/applicationinsights/agent/bootstrap/PreAggregatedStandardMetrics.java b/agent/agent-bootstrap/src/main/java/com/microsoft/applicationinsights/agent/bootstrap/PreAggregatedStandardMetrics.java deleted file mode 100644 index a4cc9829891..00000000000 --- a/agent/agent-bootstrap/src/main/java/com/microsoft/applicationinsights/agent/bootstrap/PreAggregatedStandardMetrics.java +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.microsoft.applicationinsights.agent.bootstrap; - -import static io.opentelemetry.instrumentation.api.instrumenter.BootstrapSemanticAttributes.IS_PRE_AGGREGATED; -import static io.opentelemetry.instrumentation.api.instrumenter.BootstrapSemanticAttributes.IS_SYNTHETIC; - -import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.api.trace.Span; -import io.opentelemetry.context.Context; -import io.opentelemetry.instrumentation.api.instrumenter.BootstrapSemanticAttributes; -import io.opentelemetry.instrumentation.api.instrumenter.UserAgents; -import javax.annotation.Nullable; - -public class PreAggregatedStandardMetrics { - - @Nullable private static volatile AttributeGetter attributeGetter; - - public static void setAttributeGetter(AttributeGetter attributeGetter) { - PreAggregatedStandardMetrics.attributeGetter = attributeGetter; - } - - public static void applyHttpClientView( - AttributesBuilder builder, - Context context, - Attributes startAttributes, - Attributes endAttributes) { - - Span span = Span.fromContext(context); - applyCommon(builder, span); - } - - public static void applyHttpServerView( - AttributesBuilder builder, - Context context, - Attributes startAttributes, - Attributes endAttributes) { - - Span span = Span.fromContext(context); - applyCommon(builder, span); - - // is_synthetic is only applied to server requests - builder.put(IS_SYNTHETIC, UserAgents.isBot(endAttributes, startAttributes)); - } - - public static void applyRpcClientView( - AttributesBuilder builder, - Context context, - Attributes startAttributes, - Attributes endAttributes) { - - applyHttpClientView(builder, context, startAttributes, endAttributes); - } - - public static void applyRpcServerView( - AttributesBuilder builder, - Context context, - Attributes startAttributes, - Attributes endAttributes) { - - applyHttpServerView(builder, context, startAttributes, endAttributes); - } - - private static void applyCommon(AttributesBuilder builder, Span span) { - - // this is needed for detecting telemetry signals that will trigger pre-aggregated metrics via - // auto instrumentations - span.setAttribute(IS_PRE_AGGREGATED, true); - - if (attributeGetter == null) { - return; - } - String connectionString = - attributeGetter.get(span, BootstrapSemanticAttributes.CONNECTION_STRING); - if (connectionString != null) { - builder.put(BootstrapSemanticAttributes.CONNECTION_STRING, connectionString); - } else { - // back compat support - String instrumentationKey = - attributeGetter.get(span, BootstrapSemanticAttributes.INSTRUMENTATION_KEY); - if (instrumentationKey != null) { - builder.put(BootstrapSemanticAttributes.INSTRUMENTATION_KEY, instrumentationKey); - } - } - String roleName = attributeGetter.get(span, BootstrapSemanticAttributes.ROLE_NAME); - if (roleName != null) { - builder.put(BootstrapSemanticAttributes.ROLE_NAME, roleName); - } - } - - @FunctionalInterface - public interface AttributeGetter { - T get(Span span, AttributeKey key); - } - - private PreAggregatedStandardMetrics() {} -} diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/BootstrapSemanticAttributes.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/BootstrapSemanticAttributes.java deleted file mode 100644 index e8a7a9bc263..00000000000 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/BootstrapSemanticAttributes.java +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package io.opentelemetry.instrumentation.api.instrumenter; - -import static io.opentelemetry.api.common.AttributeKey.booleanKey; - -import io.opentelemetry.api.common.AttributeKey; - -public final class BootstrapSemanticAttributes { - - // replaced by ai.preview.connection_string - @Deprecated - public static final AttributeKey INSTRUMENTATION_KEY = - AttributeKey.stringKey("ai.preview.instrumentation_key"); - - public static final AttributeKey CONNECTION_STRING = - AttributeKey.stringKey("ai.preview.connection_string"); - - public static final AttributeKey ROLE_NAME = - AttributeKey.stringKey("ai.preview.service_name"); - - public static final AttributeKey IS_SYNTHETIC = - booleanKey("applicationinsights.internal.is_synthetic"); - public static final AttributeKey IS_PRE_AGGREGATED = - booleanKey("applicationinsights.internal.is_pre_aggregated"); - - private BootstrapSemanticAttributes() {} -} diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/UserAgents.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/UserAgents.java deleted file mode 100644 index e9a5d2f8ba6..00000000000 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/UserAgents.java +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package io.opentelemetry.instrumentation.api.instrumenter; - -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; - -public final class UserAgents { - - public static boolean isBot(Attributes endAttributes, Attributes startAttributes) { - String userAgent = endAttributes.get(SemanticAttributes.HTTP_USER_AGENT); - if (userAgent == null) { - userAgent = startAttributes.get(SemanticAttributes.HTTP_USER_AGENT); - } - return userAgent != null && userAgent.contains("AlwaysOn"); - } - - private UserAgents() {} -} diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientMetrics.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientMetrics.java deleted file mode 100644 index 27b02f55f91..00000000000 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientMetrics.java +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// Includes work from: -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.instrumenter.http; - -import static io.opentelemetry.instrumentation.api.instrumenter.http.TemporaryMetricsView.applyClientDurationAndSizeView; -import static java.util.logging.Level.FINE; - -import com.google.auto.value.AutoValue; -import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.metrics.DoubleHistogram; -import io.opentelemetry.api.metrics.LongHistogram; -import io.opentelemetry.api.metrics.Meter; -import io.opentelemetry.context.Context; -import io.opentelemetry.context.ContextKey; -import io.opentelemetry.instrumentation.api.instrumenter.OperationListener; -import io.opentelemetry.instrumentation.api.instrumenter.OperationMetrics; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; -import java.util.concurrent.TimeUnit; -import java.util.logging.Logger; -import javax.annotation.Nullable; - -/** - * {@link OperationListener} which keeps track of HTTP - * client metrics. - */ -public final class HttpClientMetrics implements OperationListener { - - private static final double NANOS_PER_MS = TimeUnit.MILLISECONDS.toNanos(1); - - private static final ContextKey HTTP_CLIENT_REQUEST_METRICS_STATE = - ContextKey.named("http-client-request-metrics-state"); - - private static final Logger logger = Logger.getLogger(HttpClientMetrics.class.getName()); - - /** - * Returns a {@link OperationMetrics} which can be used to enable recording of {@link - * HttpClientMetrics} on an {@link - * io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder}. - */ - public static OperationMetrics get() { - return HttpClientMetrics::new; - } - - private final DoubleHistogram duration; - private final LongHistogram requestSize; - private final LongHistogram responseSize; - - private HttpClientMetrics(Meter meter) { - duration = - meter - .histogramBuilder("http.client.duration") - .setUnit("ms") - .setDescription("The duration of the outbound HTTP request") - .build(); - requestSize = - meter - .histogramBuilder("http.client.request.size") - .setUnit("By") - .setDescription("The size of HTTP request messages") - .ofLongs() - .build(); - responseSize = - meter - .histogramBuilder("http.client.response.size") - .setUnit("By") - .setDescription("The size of HTTP response messages") - .ofLongs() - .build(); - } - - @Override - public Context onStart(Context context, Attributes startAttributes, long startNanos) { - return context.with( - HTTP_CLIENT_REQUEST_METRICS_STATE, - new AutoValue_HttpClientMetrics_State(startAttributes, startNanos)); - } - - @Override - public void onEnd(Context context, Attributes endAttributes, long endNanos) { - State state = context.get(HTTP_CLIENT_REQUEST_METRICS_STATE); - if (state == null) { - logger.log( - FINE, - "No state present when ending context {0}. Cannot record HTTP request metrics.", - context); - return; - } - - // START APPLICATION INSIGHTS MODIFICATIONS: passing context - - Attributes durationAndSizeAttributes = - applyClientDurationAndSizeView(context, state.startAttributes(), endAttributes); - - // END APPLICATION MODIFICATIONS CODE - - duration.record( - (endNanos - state.startTimeNanos()) / NANOS_PER_MS, durationAndSizeAttributes, context); - Long requestLength = - getAttribute( - SemanticAttributes.HTTP_REQUEST_CONTENT_LENGTH, endAttributes, state.startAttributes()); - if (requestLength != null) { - requestSize.record(requestLength, durationAndSizeAttributes); - } - Long responseLength = - getAttribute( - SemanticAttributes.HTTP_RESPONSE_CONTENT_LENGTH, - endAttributes, - state.startAttributes()); - if (responseLength != null) { - responseSize.record(responseLength, durationAndSizeAttributes); - } - } - - @Nullable - private static T getAttribute(AttributeKey key, Attributes... attributesList) { - for (Attributes attributes : attributesList) { - T value = attributes.get(key); - if (value != null) { - return value; - } - } - return null; - } - - @AutoValue - abstract static class State { - - abstract Attributes startAttributes(); - - abstract long startTimeNanos(); - } -} diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerMetrics.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerMetrics.java deleted file mode 100644 index 3d8e6cddf2b..00000000000 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerMetrics.java +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// Includes work from: -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.instrumenter.http; - -import static io.opentelemetry.instrumentation.api.instrumenter.http.TemporaryMetricsView.applyActiveRequestsView; -import static io.opentelemetry.instrumentation.api.instrumenter.http.TemporaryMetricsView.applyServerDurationAndSizeView2; -import static java.util.logging.Level.FINE; - -import com.google.auto.value.AutoValue; -import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.metrics.DoubleHistogram; -import io.opentelemetry.api.metrics.LongHistogram; -import io.opentelemetry.api.metrics.LongUpDownCounter; -import io.opentelemetry.api.metrics.Meter; -import io.opentelemetry.context.Context; -import io.opentelemetry.context.ContextKey; -import io.opentelemetry.instrumentation.api.instrumenter.OperationListener; -import io.opentelemetry.instrumentation.api.instrumenter.OperationMetrics; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; -import java.util.concurrent.TimeUnit; -import java.util.logging.Logger; -import javax.annotation.Nullable; - -/** - * {@link OperationListener} which keeps track of HTTP - * server metrics. - */ -public final class HttpServerMetrics implements OperationListener { - - private static final double NANOS_PER_MS = TimeUnit.MILLISECONDS.toNanos(1); - - private static final ContextKey HTTP_SERVER_REQUEST_METRICS_STATE = - ContextKey.named("http-server-request-metrics-state"); - - private static final Logger logger = Logger.getLogger(HttpServerMetrics.class.getName()); - - /** - * Returns a {@link OperationMetrics} which can be used to enable recording of {@link - * HttpServerMetrics} on an {@link - * io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder}. - */ - public static OperationMetrics get() { - return HttpServerMetrics::new; - } - - private final LongUpDownCounter activeRequests; - private final DoubleHistogram duration; - private final LongHistogram requestSize; - private final LongHistogram responseSize; - - private HttpServerMetrics(Meter meter) { - activeRequests = - meter - .upDownCounterBuilder("http.server.active_requests") - .setUnit("requests") - .setDescription("The number of concurrent HTTP requests that are currently in-flight") - .build(); - - duration = - meter - .histogramBuilder("http.server.duration") - .setUnit("ms") - .setDescription("The duration of the inbound HTTP request") - .build(); - requestSize = - meter - .histogramBuilder("http.server.request.size") - .setUnit("By") - .setDescription("The size of HTTP request messages") - .ofLongs() - .build(); - responseSize = - meter - .histogramBuilder("http.server.response.size") - .setUnit("By") - .setDescription("The size of HTTP response messages") - .ofLongs() - .build(); - } - - @Override - public Context onStart(Context context, Attributes startAttributes, long startNanos) { - activeRequests.add(1, applyActiveRequestsView(startAttributes), context); - - return context.with( - HTTP_SERVER_REQUEST_METRICS_STATE, - new AutoValue_HttpServerMetrics_State(startAttributes, startNanos)); - } - - @Override - public void onEnd(Context context, Attributes endAttributes, long endNanos) { - State state = context.get(HTTP_SERVER_REQUEST_METRICS_STATE); - if (state == null) { - logger.log( - FINE, - "No state present when ending context {0}. Cannot record HTTP request metrics.", - context); - return; - } - activeRequests.add(-1, applyActiveRequestsView(state.startAttributes()), context); - - // START APPLICATION INSIGHTS MODIFICATIONS: passing context - - Attributes durationAndSizeAttributes = - applyServerDurationAndSizeView2(context, state.startAttributes(), endAttributes); - - // END APPLICATION INSIGHTS CODE - - duration.record( - (endNanos - state.startTimeNanos()) / NANOS_PER_MS, durationAndSizeAttributes, context); - Long requestLength = - getAttribute( - SemanticAttributes.HTTP_REQUEST_CONTENT_LENGTH, endAttributes, state.startAttributes()); - if (requestLength != null) { - requestSize.record(requestLength, durationAndSizeAttributes); - } - Long responseLength = - getAttribute( - SemanticAttributes.HTTP_RESPONSE_CONTENT_LENGTH, - endAttributes, - state.startAttributes()); - if (responseLength != null) { - responseSize.record(responseLength, durationAndSizeAttributes); - } - } - - @Nullable - private static T getAttribute(AttributeKey key, Attributes... attributesList) { - for (Attributes attributes : attributesList) { - T value = attributes.get(key); - if (value != null) { - return value; - } - } - return null; - } - - @AutoValue - abstract static class State { - - abstract Attributes startAttributes(); - - abstract long startTimeNanos(); - } -} diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/TemporaryMetricsView.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/TemporaryMetricsView.java deleted file mode 100644 index f15a4a5723d..00000000000 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/TemporaryMetricsView.java +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// Includes work from: -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.instrumenter.http; - -import com.microsoft.applicationinsights.agent.bootstrap.PreAggregatedStandardMetrics; -import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.context.Context; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; -import java.util.HashSet; -import java.util.Set; -import java.util.function.BiConsumer; - -// this is temporary, see -// /~https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/3962#issuecomment-906606325 -@SuppressWarnings("rawtypes") -final class TemporaryMetricsView { - - private static final Set durationAlwaysInclude = buildDurationAlwaysInclude(); - private static final Set durationClientView = buildDurationClientView(); - private static final Set durationServerView = buildDurationServerView(); - private static final Set activeRequestsView = buildActiveRequestsView(); - - private static Set buildDurationAlwaysInclude() { - // the list of included metrics is from - // /~https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/http-metrics.md#attributes - Set view = new HashSet<>(); - // START APPLICATION INSIGHTS MODIFICATIONS - // view.add(SemanticAttributes.HTTP_METHOD); - view.add(SemanticAttributes.HTTP_STATUS_CODE); // Optional - // view.add(SemanticAttributes.HTTP_FLAVOR); // Optional - // END APPLICATION INSIGHTS MODIFICATIONS - return view; - } - - private static Set buildDurationClientView() { - // We pull identifying attributes according to: - // /~https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/http-metrics.md#attribute-alternatives - // We only pull net.peer.name and net.peer.port because http.url has too high cardinality - Set view = new HashSet<>(durationAlwaysInclude); - view.add(SemanticAttributes.NET_PEER_NAME); - view.add(SemanticAttributes.NET_PEER_PORT); - return view; - } - - private static Set buildDurationServerView() { - // We pull identifying attributes according to: - // /~https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/http-metrics.md#attribute-alternatives - // With the following caveat: - // - we always rely on http.route + http.host in this repository. - // - we prefer http.route (which is scrubbed) over http.target (which is not scrubbed). - Set view = new HashSet<>(durationAlwaysInclude); - // START APPLICATION INSIGHTS MODIFICATIONS - // view.add(SemanticAttributes.HTTP_SCHEME); - // view.add(SemanticAttributes.HTTP_HOST); - // view.add(SemanticAttributes.HTTP_ROUTE); - // END APPLICATION INSIGHTS MODIFICATIONS - return view; - } - - private static Set buildActiveRequestsView() { - // the list of included metrics is from - // /~https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/http-metrics.md#attributes - Set view = new HashSet<>(); - view.add(SemanticAttributes.HTTP_METHOD); - view.add(SemanticAttributes.HTTP_HOST); - view.add(SemanticAttributes.HTTP_SCHEME); - view.add(SemanticAttributes.HTTP_FLAVOR); - view.add(SemanticAttributes.HTTP_SERVER_NAME); - return view; - } - - // START APPLICATION INSIGHTS MODIFICATIONS - - static Attributes applyClientDurationAndSizeView( - Context context, Attributes startAttributes, Attributes endAttributes) { - AttributesBuilder filtered = Attributes.builder(); - applyView(filtered, startAttributes, durationClientView); - applyView(filtered, endAttributes, durationClientView); - - PreAggregatedStandardMetrics.applyHttpClientView( - filtered, context, startAttributes, endAttributes); - - return filtered.build(); - } - - // had to add "2" to this method name because sometimes compilation picks up the upstream version - static Attributes applyServerDurationAndSizeView2( - Context context, Attributes startAttributes, Attributes endAttributes) { - AttributesBuilder filtered = Attributes.builder(); - applyView(filtered, startAttributes, durationServerView); - applyView(filtered, endAttributes, durationServerView); - - PreAggregatedStandardMetrics.applyHttpServerView( - filtered, context, startAttributes, endAttributes); - - return filtered.build(); - } - - // END APPLICATION INSIGHTS MODIFICATIONS - - static Attributes applyActiveRequestsView(Attributes attributes) { - AttributesBuilder filtered = Attributes.builder(); - applyView(filtered, attributes, activeRequestsView); - return filtered.build(); - } - - @SuppressWarnings("unchecked") - private static void applyView( - AttributesBuilder filtered, Attributes attributes, Set view) { - attributes.forEach( - (BiConsumer) - (key, value) -> { - if (view.contains(key)) { - filtered.put(key, value); - } - }); - } - - private TemporaryMetricsView() {} -} diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/MetricsView.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/MetricsView.java deleted file mode 100644 index 5afc21d60e4..00000000000 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/MetricsView.java +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// Includes work from: -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.instrumenter.rpc; - -import com.microsoft.applicationinsights.agent.bootstrap.PreAggregatedStandardMetrics; -import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.context.Context; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; -import java.util.HashSet; -import java.util.Set; -import java.util.function.BiConsumer; - -// this is temporary, see -// /~https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/3962#issuecomment-906606325 -@SuppressWarnings("rawtypes") -final class MetricsView { - - private static final Set alwaysInclude = buildAlwaysInclude(); - private static final Set clientView = buildClientView(); - private static final Set serverView = buildServerView(); - private static final Set serverFallbackView = buildServerFallbackView(); - - private static Set buildAlwaysInclude() { - // the list of recommended metrics attributes is from - // /~https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/rpc.md#attributes - Set view = new HashSet<>(); - view.add(SemanticAttributes.RPC_SYSTEM); - // START APPLICATION INSIGHTS MODIFICATIONS - // view.add(SemanticAttributes.RPC_SERVICE); - // view.add(SemanticAttributes.RPC_METHOD); - // END APPLICATION INSIGHTS MODIFICATIONS - return view; - } - - private static Set buildClientView() { - // the list of rpc client metrics attributes is from - // /~https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/rpc.md#attributes - Set view = new HashSet<>(alwaysInclude); - view.add(SemanticAttributes.NET_PEER_NAME); - view.add(SemanticAttributes.NET_PEER_PORT); - // START APPLICATION INSIGHTS MODIFICATIONS - // view.add(SemanticAttributes.NET_TRANSPORT); - // END APPLICATION INSIGHTS MODIFICATIONS - return view; - } - - private static Set buildServerView() { - // the list of rpc server metrics attributes is from - // /~https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/rpc.md#attributes - Set view = new HashSet<>(alwaysInclude); - // START APPLICATION INSIGHTS MODIFICATIONS - // view.add(SemanticAttributes.NET_HOST_NAME); - // view.add(SemanticAttributes.NET_TRANSPORT); - // END APPLICATION INSIGHTS MODIFICATIONS - return view; - } - - private static Set buildServerFallbackView() { - // the list of rpc server metrics attributes is from - // /~https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/rpc.md#attributes - Set view = new HashSet<>(alwaysInclude); - // START APPLICATION INSIGHTS MODIFICATIONS - // view.add(SemanticAttributes.NET_HOST_IP); - // view.add(SemanticAttributes.NET_TRANSPORT); - // END APPLICATION INSIGHTS MODIFICATIONS - return view; - } - - private static boolean containsAttribute( - AttributeKey key, Attributes startAttributes, Attributes endAttributes) { - return startAttributes.get(key) != null || endAttributes.get(key) != null; - } - - // START APPLICATION INSIGHTS MODIFICATIONS - - static Attributes applyClientView( - Context context, Attributes startAttributes, Attributes endAttributes) { - AttributesBuilder filtered = applyView(clientView, startAttributes, endAttributes); - - PreAggregatedStandardMetrics.applyRpcClientView( - filtered, context, startAttributes, endAttributes); - - return filtered.build(); - } - - static Attributes applyServerView( - Context context, Attributes startAttributes, Attributes endAttributes) { - Set fullSet = serverView; - if (!containsAttribute(SemanticAttributes.NET_HOST_NAME, startAttributes, endAttributes)) { - fullSet = serverFallbackView; - } - AttributesBuilder filtered = applyView(fullSet, startAttributes, endAttributes); - - PreAggregatedStandardMetrics.applyRpcServerView( - filtered, context, startAttributes, endAttributes); - - return filtered.build(); - } - - // END APPLICATION INSIGHTS MODIFICATIONS - - static AttributesBuilder applyView( - Set view, Attributes startAttributes, Attributes endAttributes) { - AttributesBuilder filtered = Attributes.builder(); - applyView(filtered, startAttributes, view); - applyView(filtered, endAttributes, view); - return filtered; - } - - @SuppressWarnings("unchecked") - private static void applyView( - AttributesBuilder filtered, Attributes attributes, Set view) { - attributes.forEach( - (BiConsumer) - (key, value) -> { - if (view.contains(key)) { - filtered.put(key, value); - } - }); - } - - private MetricsView() {} -} diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetrics.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetrics.java deleted file mode 100644 index 9128f5befeb..00000000000 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetrics.java +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// Includes work from: -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.instrumenter.rpc; - -import static io.opentelemetry.instrumentation.api.instrumenter.rpc.MetricsView.applyClientView; -import static java.util.logging.Level.FINE; - -import com.google.auto.value.AutoValue; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.metrics.DoubleHistogram; -import io.opentelemetry.api.metrics.Meter; -import io.opentelemetry.context.Context; -import io.opentelemetry.context.ContextKey; -import io.opentelemetry.instrumentation.api.instrumenter.OperationListener; -import io.opentelemetry.instrumentation.api.instrumenter.OperationMetrics; -import java.util.concurrent.TimeUnit; -import java.util.logging.Logger; - -/** - * {@link OperationListener} which keeps track of RPC - * client metrics. - */ -public final class RpcClientMetrics implements OperationListener { - - private static final double NANOS_PER_MS = TimeUnit.MILLISECONDS.toNanos(1); - - private static final ContextKey RPC_CLIENT_REQUEST_METRICS_STATE = - ContextKey.named("rpc-client-request-metrics-state"); - - private static final Logger logger = Logger.getLogger(RpcClientMetrics.class.getName()); - - private final DoubleHistogram clientDurationHistogram; - - private RpcClientMetrics(Meter meter) { - clientDurationHistogram = - meter - .histogramBuilder("rpc.client.duration") - .setDescription("The duration of an outbound RPC invocation") - .setUnit("ms") - .build(); - } - - /** - * Returns a {@link OperationMetrics} which can be used to enable recording of {@link - * RpcClientMetrics} on an {@link - * io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder}. - */ - public static OperationMetrics get() { - return RpcClientMetrics::new; - } - - @Override - public Context onStart(Context context, Attributes startAttributes, long startNanos) { - return context.with( - RPC_CLIENT_REQUEST_METRICS_STATE, - new AutoValue_RpcClientMetrics_State(startAttributes, startNanos)); - } - - @Override - public void onEnd(Context context, Attributes endAttributes, long endNanos) { - State state = context.get(RPC_CLIENT_REQUEST_METRICS_STATE); - if (state == null) { - logger.log( - FINE, - "No state present when ending context {0}. Cannot record RPC request metrics.", - context); - return; - } - - // START APPLICATION INSIGHTS MODIFICATIONS: passing context - - clientDurationHistogram.record( - (endNanos - state.startTimeNanos()) / NANOS_PER_MS, - applyClientView(context, state.startAttributes(), endAttributes), - context); - - // END APPLICATION INSIGHTS MODIFICATIONS - } - - @AutoValue - abstract static class State { - - abstract Attributes startAttributes(); - - abstract long startTimeNanos(); - } -} diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetrics.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetrics.java deleted file mode 100644 index 20923afafde..00000000000 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetrics.java +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// Includes work from: -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.instrumenter.rpc; - -import static io.opentelemetry.instrumentation.api.instrumenter.rpc.MetricsView.applyServerView; -import static java.util.logging.Level.FINE; - -import com.google.auto.value.AutoValue; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.metrics.DoubleHistogram; -import io.opentelemetry.api.metrics.Meter; -import io.opentelemetry.context.Context; -import io.opentelemetry.context.ContextKey; -import io.opentelemetry.instrumentation.api.instrumenter.OperationListener; -import io.opentelemetry.instrumentation.api.instrumenter.OperationMetrics; -import java.util.concurrent.TimeUnit; -import java.util.logging.Logger; - -/** - * {@link OperationListener} which keeps track of RPC - * server metrics. - */ -public final class RpcServerMetrics implements OperationListener { - - private static final double NANOS_PER_MS = TimeUnit.MILLISECONDS.toNanos(1); - - private static final ContextKey RPC_SERVER_REQUEST_METRICS_STATE = - ContextKey.named("rpc-server-request-metrics-state"); - - private static final Logger logger = Logger.getLogger(RpcServerMetrics.class.getName()); - - private final DoubleHistogram serverDurationHistogram; - - private RpcServerMetrics(Meter meter) { - serverDurationHistogram = - meter - .histogramBuilder("rpc.server.duration") - .setDescription("The duration of an inbound RPC invocation") - .setUnit("ms") - .build(); - } - - /** - * Returns a {@link OperationMetrics} which can be used to enable recording of {@link - * RpcServerMetrics} on an {@link - * io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder}. - */ - public static OperationMetrics get() { - return RpcServerMetrics::new; - } - - @Override - public Context onStart(Context context, Attributes startAttributes, long startNanos) { - return context.with( - RPC_SERVER_REQUEST_METRICS_STATE, - new AutoValue_RpcServerMetrics_State(startAttributes, startNanos)); - } - - @Override - public void onEnd(Context context, Attributes endAttributes, long endNanos) { - State state = context.get(RPC_SERVER_REQUEST_METRICS_STATE); - if (state == null) { - logger.log( - FINE, - "No state present when ending context {0}. Cannot record RPC request metrics.", - context); - return; - } - - // START APPLICATION INSIGHTS MODIFICATIONS: passing context - - serverDurationHistogram.record( - (endNanos - state.startTimeNanos()) / NANOS_PER_MS, - applyServerView(context, state.startAttributes(), endAttributes), - context); - - // END APPLICATION INSIGHTS MODIFICATIONS - } - - @AutoValue - abstract static class State { - - abstract Attributes startAttributes(); - - abstract long startTimeNanos(); - } -} diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/SecondEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/SecondEntryPoint.java index 6cb968079bc..d39f448fe05 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/SecondEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/SecondEntryPoint.java @@ -18,7 +18,6 @@ import com.google.auto.service.AutoService; import com.microsoft.applicationinsights.agent.bootstrap.AiAppId; import com.microsoft.applicationinsights.agent.bootstrap.AzureFunctions; -import com.microsoft.applicationinsights.agent.bootstrap.PreAggregatedStandardMetrics; import com.microsoft.applicationinsights.agent.internal.classicsdk.BytecodeUtilImpl; import com.microsoft.applicationinsights.agent.internal.common.FriendlyException; import com.microsoft.applicationinsights.agent.internal.configuration.Configuration; @@ -44,10 +43,8 @@ import com.microsoft.applicationinsights.agent.internal.telemetry.MetricFilter; import com.microsoft.applicationinsights.agent.internal.telemetry.TelemetryClient; import com.microsoft.applicationinsights.agent.internal.telemetry.TelemetryObservers; -import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.api.trace.Span; import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider; @@ -60,7 +57,7 @@ import io.opentelemetry.sdk.metrics.export.MetricReader; import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader; import io.opentelemetry.sdk.metrics.export.PeriodicMetricReaderBuilder; -import io.opentelemetry.sdk.trace.ReadableSpan; +import io.opentelemetry.sdk.metrics.internal.view.AiViewRegistry; import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder; import io.opentelemetry.sdk.trace.data.SpanData; import io.opentelemetry.sdk.trace.export.BatchSpanProcessor; @@ -91,9 +88,6 @@ public class SecondEntryPoint implements AutoConfigurationCustomizerProvider { @Override public void customize(AutoConfigurationCustomizer autoConfiguration) { - - PreAggregatedStandardMetrics.setAttributeGetter(new AttributeGetterImpl()); - File tempDir = TempDirs.getApplicationInsightsTempDir( startupLogger, @@ -558,6 +552,8 @@ private static SdkMeterProviderBuilder configureMetrics( configuration.preview.metricIntervalSeconds * 1000); metricReader = readerBuilder.setInterval(Duration.ofMillis(intervalMillis)).build(); + AiViewRegistry.registerViews(builder); + return builder.registerMetricReader(metricReader); } @@ -603,14 +599,4 @@ public CompletableResultCode shutdown() { return delegate.shutdown(); } } - - public static class AttributeGetterImpl implements PreAggregatedStandardMetrics.AttributeGetter { - @Override - public T get(Span span, AttributeKey key) { - if (span instanceof ReadableSpan) { - return ((ReadableSpan) span).getAttribute(key); - } - return null; - } - } } diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/ViewBuilderAccessor.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/ViewBuilderAccessor.java new file mode 100644 index 00000000000..bcf5b849c18 --- /dev/null +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/ViewBuilderAccessor.java @@ -0,0 +1,15 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package io.opentelemetry.sdk.metrics; + +import io.opentelemetry.sdk.metrics.internal.view.AttributesProcessor; + +public class ViewBuilderAccessor { + + public static void add(ViewBuilder viewBuilder, AttributesProcessor attributeProcessor) { + viewBuilder.addAttributesProcessor(attributeProcessor); + } + + private ViewBuilderAccessor() {} +} diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/AiViewRegistry.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/AiViewRegistry.java new file mode 100644 index 00000000000..1fe76bff193 --- /dev/null +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/AiViewRegistry.java @@ -0,0 +1,38 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package io.opentelemetry.sdk.metrics.internal.view; + +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.sdk.metrics.InstrumentSelector; +import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder; +import io.opentelemetry.sdk.metrics.View; +import io.opentelemetry.sdk.metrics.ViewBuilder; +import io.opentelemetry.sdk.metrics.ViewBuilderAccessor; +import java.util.Set; + +// there's already a ViewRegistry class in this SDK package +// (and we have to hijack the package to get access to package-private details for now) +public class AiViewRegistry { + + public static void registerViews(SdkMeterProviderBuilder builder) { + for (MetricView view : MetricView.values()) { + registerView( + builder, view.getInstrumentName(), view.getAttributeKeys(), view.isCaptureSynthetic()); + } + } + + private static void registerView( + SdkMeterProviderBuilder builder, + String instrumentName, + Set> attributeKeys, + boolean captureSynthetic) { + ViewBuilder viewBuilder = View.builder(); + ViewBuilderAccessor.add( + viewBuilder, new MetricViewAttributesProcessor(attributeKeys, captureSynthetic)); + builder.registerView( + InstrumentSelector.builder().setName(instrumentName).build(), viewBuilder.build()); + } + + private AiViewRegistry() {} +} diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricView.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricView.java new file mode 100644 index 00000000000..ca4e10380b1 --- /dev/null +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricView.java @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package io.opentelemetry.sdk.metrics.internal.view; + +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; +import java.util.HashSet; +import java.util.Set; + +@SuppressWarnings("rawtypes") +enum MetricView { + HTTP_CLIENT_VIEW("http.client.duration", httpClientDurationAttributeKeys(), false), + HTTP_SERVER_VIEW("http.server.duration", httpServerDurationAttributeKeys(), true), + RPC_CLIENT_VIEW("rpc.client.duration", rpcClientDurationAttributeKeys(), false), + RPC_SERVER_VIEW("rpc.server.duration", rpcServerDurationAttributeKeys(), false); + + private final String instrumentName; + + @SuppressWarnings("ImmutableEnumChecker") + private final Set> attributeKeys; + + private final boolean captureSynthetic; + + MetricView(String instrumentName, Set> attributeKeys, boolean captureSynthetic) { + this.instrumentName = instrumentName; + this.attributeKeys = attributeKeys; + this.captureSynthetic = captureSynthetic; + } + + String getInstrumentName() { + return instrumentName; + } + + Set> getAttributeKeys() { + return attributeKeys; + } + + boolean isCaptureSynthetic() { + return captureSynthetic; + } + + private static Set> httpClientDurationAttributeKeys() { + Set> view = new HashSet<>(3); + view.add(SemanticAttributes.HTTP_STATUS_CODE); + view.add(SemanticAttributes.NET_PEER_NAME); + view.add(SemanticAttributes.NET_PEER_PORT); + return view; + } + + private static Set> httpServerDurationAttributeKeys() { + Set> view = new HashSet<>(1); + view.add(SemanticAttributes.HTTP_STATUS_CODE); + return view; + } + + private static Set> rpcClientDurationAttributeKeys() { + Set> view = new HashSet<>(3); + view.add(SemanticAttributes.RPC_SYSTEM); + view.add(SemanticAttributes.NET_PEER_NAME); + view.add(SemanticAttributes.NET_PEER_PORT); + return view; + } + + private static Set> rpcServerDurationAttributeKeys() { + Set> view = new HashSet<>(1); + view.add(SemanticAttributes.RPC_SYSTEM); + return view; + } +} diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java new file mode 100644 index 00000000000..32ffbf472b5 --- /dev/null +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package io.opentelemetry.sdk.metrics.internal.view; + +import static com.azure.monitor.opentelemetry.exporter.implementation.AiSemanticAttributes.IS_PRE_AGGREGATED; + +import com.azure.monitor.opentelemetry.exporter.implementation.AiSemanticAttributes; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.common.AttributesBuilder; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.context.Context; +import io.opentelemetry.sdk.trace.ReadableSpan; +import java.util.Set; +import java.util.function.BiConsumer; + +@SuppressWarnings("rawtypes") +class MetricViewAttributesProcessor extends AttributesProcessor { + + private final Set> attributeKeys; + private final boolean captureSynthetic; + + MetricViewAttributesProcessor(Set> attributeKeys, boolean captureSynthetic) { + this.attributeKeys = attributeKeys; + this.captureSynthetic = captureSynthetic; + } + + @Override + public Attributes process(Attributes incoming, Context context) { + + Span span = Span.fromContext(context); + + // this is needed for detecting telemetry signals that will trigger pre-aggregated metrics via + // auto instrumentations + span.setAttribute(AiSemanticAttributes.IS_PRE_AGGREGATED, true); + + AttributesBuilder filtered = Attributes.builder(); + applyCommon(filtered, span); + applyView(filtered, incoming, attributeKeys); + if (captureSynthetic) { + filtered.put(AiSemanticAttributes.IS_SYNTHETIC, UserAgents.isBot(incoming)); + } + return filtered.build(); + } + + @Override + public boolean usesContext() { + return true; + } + + private static void applyCommon(AttributesBuilder builder, Span span) { + + // this is needed for detecting telemetry signals that will trigger pre-aggregated metrics via + // auto instrumentations + span.setAttribute(IS_PRE_AGGREGATED, true); + + if (!(span instanceof ReadableSpan)) { + return; + } + + ReadableSpan readableSpan = (ReadableSpan) span; + + String connectionString = readableSpan.getAttribute(AiSemanticAttributes.CONNECTION_STRING); + if (connectionString != null) { + // support for connectionStringOverrides + // and for Classic SDK's setConnectionString() + builder.put(AiSemanticAttributes.CONNECTION_STRING, connectionString); + } else { + // back compat support for instrumentationKeyOverrides + // and for Classic SDK's setInstrumentationKey() + String instrumentationKey = + readableSpan.getAttribute(AiSemanticAttributes.INSTRUMENTATION_KEY); + if (instrumentationKey != null) { + builder.put(AiSemanticAttributes.INSTRUMENTATION_KEY, instrumentationKey); + } + } + String roleName = readableSpan.getAttribute(AiSemanticAttributes.ROLE_NAME); + if (roleName != null) { + // support for roleNameOverrides and for Classic SDK's setConnectionString() + // and Classic SDK set... + builder.put(AiSemanticAttributes.ROLE_NAME, roleName); + } + } + + @SuppressWarnings("unchecked") + private static void applyView( + AttributesBuilder filtered, Attributes attributes, Set> view) { + attributes.forEach( + (BiConsumer) + (key, value) -> { + if (view.contains(key)) { + filtered.put(key, value); + } + }); + } +} diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java new file mode 100644 index 00000000000..6b038e5eb3a --- /dev/null +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package io.opentelemetry.sdk.metrics.internal.view; + +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; + +final class UserAgents { + + static boolean isBot(Attributes attributes) { + String userAgent = attributes.get(SemanticAttributes.HTTP_USER_AGENT); + return userAgent != null && userAgent.contains("AlwaysOn"); + } + + private UserAgents() {} +} diff --git a/agent/agent-tooling/src/test/java/com/microsoft/applicationinsights/agent/internal/PreAggregatedMetricsTest.java b/agent/agent-tooling/src/test/java/com/microsoft/applicationinsights/agent/internal/PreAggregatedMetricsTest.java index 5658e08644d..8e26e07b6b5 100644 --- a/agent/agent-tooling/src/test/java/com/microsoft/applicationinsights/agent/internal/PreAggregatedMetricsTest.java +++ b/agent/agent-tooling/src/test/java/com/microsoft/applicationinsights/agent/internal/PreAggregatedMetricsTest.java @@ -35,7 +35,9 @@ import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerMetrics; import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcClientMetrics; import io.opentelemetry.sdk.metrics.SdkMeterProvider; +import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder; import io.opentelemetry.sdk.metrics.data.MetricData; +import io.opentelemetry.sdk.metrics.internal.view.AiViewRegistry; import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import java.util.Collection; @@ -55,7 +57,9 @@ public class PreAggregatedMetricsTest { @BeforeEach void setup() { metricReader = InMemoryMetricReader.create(); - meterProvider = SdkMeterProvider.builder().registerMetricReader(metricReader).build(); + SdkMeterProviderBuilder builder = SdkMeterProvider.builder(); + AiViewRegistry.registerViews(builder); + meterProvider = builder.registerMetricReader(metricReader).build(); } @SuppressWarnings("SystemOut") diff --git a/agent/agent/build.gradle.kts b/agent/agent/build.gradle.kts index c0999f0ce79..307eada80fd 100644 --- a/agent/agent/build.gradle.kts +++ b/agent/agent/build.gradle.kts @@ -113,14 +113,6 @@ tasks { // into this package yet at the time exclusion takes place exclude("io/opentelemetry/javaagent/slf4j/impl/**") - exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/http/HttpClientMetrics.class") - exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/http/HttpServerMetrics.class") - exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/http/TemporaryMetricsView.class") - - exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/rpc/RpcClientMetrics.class") - exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/rpc/RpcServerMetrics.class") - exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/rpc/MetricsView.class") - dependsOn(isolateJavaagentLibs) from(isolateJavaagentLibs.get().outputs) diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/AiSemanticAttributes.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/AiSemanticAttributes.java index 39b6d21f157..b15d6b57e12 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/AiSemanticAttributes.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/AiSemanticAttributes.java @@ -35,6 +35,8 @@ public final class AiSemanticAttributes { public static final AttributeKey ITEM_COUNT = longKey("applicationinsights.internal.item_count"); + // marks whether a request is coming from a "real" user, or a "synthetic" user (e.g. a bot or + // health check) public static final AttributeKey IS_SYNTHETIC = booleanKey("applicationinsights.internal.is_synthetic"); From c38bf3e1db7eb2af62191cabb85eb07bdbc7a461 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 14 Sep 2022 10:21:41 -0700 Subject: [PATCH 07/46] More Automatic-Module-Name (#2506) --- classic-sdk/core/build.gradle.kts | 8 ++++++++ classic-sdk/web/build.gradle.kts | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/classic-sdk/core/build.gradle.kts b/classic-sdk/core/build.gradle.kts index 3e96fee8a63..10be18bd75f 100644 --- a/classic-sdk/core/build.gradle.kts +++ b/classic-sdk/core/build.gradle.kts @@ -8,3 +8,11 @@ base.archivesName.set("applicationinsights-core") dependencies { compileOnly("com.github.spotbugs:spotbugs-annotations") } + +tasks { + jar { + manifest { + attributes("Automatic-Module-Name" to "com.microsoft.applicationinsights") + } + } +} diff --git a/classic-sdk/web/build.gradle.kts b/classic-sdk/web/build.gradle.kts index 8f19d519599..20943ab53ee 100644 --- a/classic-sdk/web/build.gradle.kts +++ b/classic-sdk/web/build.gradle.kts @@ -9,3 +9,11 @@ dependencies { api(project(":classic-sdk:core")) compileOnly("javax.servlet:javax.servlet-api:3.0.1") } + +tasks { + jar { + manifest { + attributes("Automatic-Module-Name" to "com.microsoft.applicationinsights.web") + } + } +} From fc736d380e0aeda1f0541a0f1c653f3da092b0e2 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 15 Sep 2022 13:31:41 -0700 Subject: [PATCH 08/46] Fix sampling for custom instrumentation (#2513) --- .../internal/init/AiConfigCustomizer.java | 6 +- .../internal/sampling/AiOverrideSampler.java | 2 +- .../implementation/SpanDataMapper.java | 3 +- .../BaseTelemetryInstrumentation.java | 6 +- .../DeviceContextInstrumentation.java | 6 +- .../OperationContextInstrumentation.java | 4 +- ...equestTelemetryContextInstrumentation.java | 8 +- .../RequestTelemetryInstrumentation.java | 10 +- .../SessionContextInstrumentation.java | 4 +- .../TelemetryContextInstrumentation.java | 10 +- .../ThreadContextInstrumentation.java | 2 +- .../UserContextInstrumentation.java | 4 +- ...ctionEnvironmentReloadInstrumentation.java | 3 +- .../InvocationInstrumentation.java | 3 +- .../instrumentation/methods/build.gradle.kts | 27 +++++ .../methods/ai/MethodInstrumentation.java | 96 ++++++++++++++++++ .../ai/MethodInstrumentationModule.java | 59 +++++++++++ .../methods/ai/MethodSingletons.java | 47 +++++++++ .../methods/ai/MethodTest.java | 98 +++++++++++++++++++ .../micrometer-1.0/build.gradle.kts | 2 +- .../{ => ai}/ActuatorInstrumentation.java | 4 +- .../ActuatorInstrumentationModule.java | 4 +- .../AzureMonitorAutoConfiguration.java | 2 +- .../{ => ai}/AzureMonitorMeterRegistry.java | 2 +- .../AzureMonitorNamingConvention.java | 2 +- .../{ => ai}/AzureMonitorRegistryConfig.java | 5 +- ...CompositeMeterRegistryInstrumentation.java | 4 +- .../{ => ai}/DaemonThreadFactory.java | 2 +- .../{ => ai}/MetricsInstrumentation.java | 4 +- .../MicrometerInstrumentationModule.java | 2 +- ...ingBootActuatorIgnoredTypesConfigurer.java | 2 +- .../src/test/java/ActuatorTest.java | 4 +- .../src/test/java/MicrometerTest.java | 2 +- .../appid/ChannelPipelineInstrumentation.java | 2 +- .../appid/ChannelPipelineInstrumentation.java | 2 +- settings.gradle | 1 + 36 files changed, 385 insertions(+), 59 deletions(-) create mode 100644 agent/instrumentation/methods/build.gradle.kts create mode 100644 agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentation.java create mode 100644 agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentationModule.java create mode 100644 agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java create mode 100644 agent/instrumentation/methods/src/test/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodTest.java rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/ActuatorInstrumentation.java (93%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/ActuatorInstrumentationModule.java (90%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/AzureMonitorAutoConfiguration.java (96%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/AzureMonitorMeterRegistry.java (98%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/AzureMonitorNamingConvention.java (94%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/AzureMonitorRegistryConfig.java (77%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/CompositeMeterRegistryInstrumentation.java (93%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/DaemonThreadFactory.java (93%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/MetricsInstrumentation.java (90%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/MicrometerInstrumentationModule.java (92%) rename agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/{ => ai}/SpringBootActuatorIgnoredTypesConfigurer.java (91%) diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigCustomizer.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigCustomizer.java index f9a15847ed9..fd0698707c2 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigCustomizer.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigCustomizer.java @@ -23,7 +23,7 @@ public Map apply(ConfigProperties otelConfig) { Map properties = new HashMap<>(); properties.put( - "otel.micrometer.step.millis", + "applicationinsights.internal.micrometer.step.millis", Long.toString(SECONDS.toMillis(configuration.preview.metricIntervalSeconds))); enableInstrumentations(configuration, properties); @@ -86,7 +86,7 @@ public Map apply(ConfigProperties otelConfig) { sb.append(customInstrumentation.methodName); sb.append(']'); } - properties.put("otel.instrumentation.methods.include", sb.toString()); + properties.put("applicationinsights.internal.methods.include", sb.toString()); } properties.put("otel.propagators", DelegatingPropagatorProvider.NAME); @@ -165,7 +165,7 @@ private static void enableInstrumentations(Configuration config, Map().configureEach { + jvmArgs("-Dapplicationinsights.internal.methods.include=io.opentelemetry.javaagent.instrumentation.methods.ai.MethodTest\$ConfigTracedCallable[call];io.opentelemetry.javaagent.instrumentation.methods.ai.MethodTest\$ConfigTracedCompletableFuture[getResult]") +} diff --git a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentation.java b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentation.java new file mode 100644 index 00000000000..a586dcb4082 --- /dev/null +++ b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentation.java @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// Includes work from: +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.methods.ai; + +import static io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge.currentContext; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasSuperType; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; + +import io.opentelemetry.context.Context; +import io.opentelemetry.context.Scope; +import io.opentelemetry.instrumentation.api.annotation.support.async.AsyncOperationEndSupport; +import io.opentelemetry.instrumentation.api.util.ClassAndMethod; +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; +import java.lang.reflect.Method; +import java.util.Set; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.implementation.bytecode.assign.Assigner; +import net.bytebuddy.matcher.ElementMatcher; + +public class MethodInstrumentation implements TypeInstrumentation { + + private final String className; + private final Set methodNames; + + public MethodInstrumentation(String className, Set methodNames) { + this.className = className; + this.methodNames = methodNames; + } + + @Override + public ElementMatcher classLoaderOptimization() { + return hasClassesNamed(className); + } + + @Override + public ElementMatcher typeMatcher() { + return hasSuperType(named(className)); + } + + @Override + public void transform(TypeTransformer transformer) { + transformer.applyAdviceToMethod( + namedOneOf(methodNames.toArray(new String[0])), + MethodInstrumentation.class.getName() + "$MethodAdvice"); + } + + @SuppressWarnings({"unused", "PrivateConstructorForUtilityClass", "MustBeClosedChecker"}) + public static class MethodAdvice { + + @Advice.OnMethodEnter(suppress = Throwable.class) + public static void onEnter( + @Advice.Origin("#t") Class declaringClass, + @Advice.Origin("#m") String methodName, + @Advice.Local("otelMethod") ClassAndMethod classAndMethod, + @Advice.Local("otelContext") Context context, + @Advice.Local("otelScope") Scope scope) { + Context parentContext = currentContext(); + classAndMethod = ClassAndMethod.create(declaringClass, methodName); + if (!MethodSingletons.instrumenter().shouldStart(parentContext, classAndMethod)) { + return; + } + + context = MethodSingletons.instrumenter().start(parentContext, classAndMethod); + scope = context.makeCurrent(); + } + + @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) + public static void stopSpan( + @Advice.Origin Method method, + @Advice.Local("otelMethod") ClassAndMethod classAndMethod, + @Advice.Local("otelContext") Context context, + @Advice.Local("otelScope") Scope scope, + @Advice.Return(typing = Assigner.Typing.DYNAMIC, readOnly = false) Object returnValue, + @Advice.Thrown Throwable throwable) { + scope.close(); + + returnValue = + AsyncOperationEndSupport.create( + MethodSingletons.instrumenter(), Void.class, method.getReturnType()) + .asyncEnd(context, classAndMethod, returnValue, throwable); + } + + private MethodAdvice() {} + } +} diff --git a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentationModule.java b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentationModule.java new file mode 100644 index 00000000000..0ac52eaa016 --- /dev/null +++ b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentationModule.java @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// Includes work from: +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.methods.ai; + +import static java.util.Collections.emptyList; +import static java.util.Collections.singletonList; + +import com.google.auto.service.AutoService; +import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; +import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.tooling.config.MethodsConfigurationParser; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +@AutoService(InstrumentationModule.class) +public class MethodInstrumentationModule extends InstrumentationModule { + + private static final String TRACE_METHODS_CONFIG = "applicationinsights.internal.methods.include"; + + private final List typeInstrumentations; + + public MethodInstrumentationModule() { + super("ai-methods"); + + Map> classMethodsToTrace = + MethodsConfigurationParser.parse( + InstrumentationConfig.get().getString(TRACE_METHODS_CONFIG)); + + typeInstrumentations = + classMethodsToTrace.entrySet().stream() + .filter(e -> !e.getValue().isEmpty()) + .map(e -> new MethodInstrumentation(e.getKey(), e.getValue())) + .collect(Collectors.toList()); + } + + // the default configuration has empty "otel.instrumentation.methods.include", and so doesn't + // generate any TypeInstrumentation for muzzle to analyze + @Override + public List getAdditionalHelperClassNames() { + return typeInstrumentations.isEmpty() + ? emptyList() + : singletonList("io.opentelemetry.javaagent.instrumentation.methods.ai.MethodSingletons"); + } + + @Override + public List typeInstrumentations() { + return typeInstrumentations; + } +} diff --git a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java new file mode 100644 index 00000000000..eed9e5e1f15 --- /dev/null +++ b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// Includes work from: +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.methods.ai; + +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; +import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtractor; +import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesGetter; +import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; +import io.opentelemetry.instrumentation.api.util.ClassAndMethod; + +public final class MethodSingletons { + private static final String INSTRUMENTATION_NAME = "io.opentelemetry.methods"; + + private static final Instrumenter INSTRUMENTER; + + static { + CodeAttributesGetter codeAttributesGetter = + ClassAndMethod.codeAttributesGetter(); + + INSTRUMENTER = + Instrumenter.builder( + GlobalOpenTelemetry.get(), + INSTRUMENTATION_NAME, + CodeSpanNameExtractor.create(codeAttributesGetter)) + .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) + // START APPLICATION INSIGHTS MODIFICATIONS + // we emit SERVER spans instead of INTERNAL spans, so that it works well with + // Application Insights' customInstrumentations feature + .buildInstrumenter(SpanKindExtractor.alwaysServer()); + // END APPLICATION INSIGHTS MODIFICATIONS + } + + public static Instrumenter instrumenter() { + return INSTRUMENTER; + } + + private MethodSingletons() {} +} diff --git a/agent/instrumentation/methods/src/test/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodTest.java b/agent/instrumentation/methods/src/test/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodTest.java new file mode 100644 index 00000000000..4b7a84a1faa --- /dev/null +++ b/agent/instrumentation/methods/src/test/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodTest.java @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// Includes work from: +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.methods.ai; + +import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; +import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; +import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.CODE_FUNCTION; +import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.CODE_NAMESPACE; + +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.SpanKind; +import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; +import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension; +import java.util.concurrent.Callable; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +class MethodTest { + + @RegisterExtension + static final InstrumentationExtension testing = AgentInstrumentationExtension.create(); + + @Test + void methodTraced() { + assertThat(new ConfigTracedCallable().call()).isEqualTo("Hello!"); + testing.waitAndAssertTraces( + trace -> + trace.hasSpansSatisfyingExactly( + span -> + span.hasName("ConfigTracedCallable.call") + .hasKind(SpanKind.SERVER) + .hasAttributesSatisfyingExactly( + equalTo(CODE_NAMESPACE, ConfigTracedCallable.class.getName()), + equalTo(CODE_FUNCTION, "call")))); + } + + static class ConfigTracedCallable implements Callable { + + @Override + public String call() { + return "Hello!"; + } + } + + @Test + void methodTracedWithAsyncStop() throws Exception { + ConfigTracedCompletableFuture traced = new ConfigTracedCompletableFuture(); + CompletableFuture future = traced.getResult(); + + // span is ended when CompletableFuture is completed + // verify that span has not been ended yet + assertThat(traced.span).isNotNull().satisfies(span -> assertThat(span.isRecording()).isTrue()); + + traced.countDownLatch.countDown(); + assertThat(future.get(10, TimeUnit.SECONDS)).isEqualTo("Hello!"); + + testing.waitAndAssertTraces( + trace -> + trace.hasSpansSatisfyingExactly( + span -> + span.hasName("ConfigTracedCompletableFuture.getResult") + .hasKind(SpanKind.SERVER) + .hasAttributesSatisfyingExactly( + equalTo(CODE_NAMESPACE, ConfigTracedCompletableFuture.class.getName()), + equalTo(CODE_FUNCTION, "getResult")))); + } + + static class ConfigTracedCompletableFuture { + final CountDownLatch countDownLatch = new CountDownLatch(1); + Span span; + + CompletableFuture getResult() { + CompletableFuture completableFuture = new CompletableFuture<>(); + span = Span.current(); + new Thread( + () -> { + try { + countDownLatch.await(); + } catch (InterruptedException exception) { + // ignore + } + completableFuture.complete("Hello!"); + }) + .start(); + return completableFuture; + } + } +} diff --git a/agent/instrumentation/micrometer-1.0/build.gradle.kts b/agent/instrumentation/micrometer-1.0/build.gradle.kts index 97bc2d3cf34..28b8e709e50 100644 --- a/agent/instrumentation/micrometer-1.0/build.gradle.kts +++ b/agent/instrumentation/micrometer-1.0/build.gradle.kts @@ -42,6 +42,6 @@ dependencies { tasks { withType().configureEach { - jvmArgs("-Dotel.micrometer.step.millis=100") + jvmArgs("-Dapplicationinsights.internal.micrometer.step.millis=100") } } diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ActuatorInstrumentation.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/ActuatorInstrumentation.java similarity index 93% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ActuatorInstrumentation.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/ActuatorInstrumentation.java index ad596674830..155cf3defa3 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ActuatorInstrumentation.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/ActuatorInstrumentation.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; @@ -28,7 +28,7 @@ public void transform(TypeTransformer transformer) { ActuatorInstrumentation.class.getName() + "$GetCandidateConfigurationsAdvice"); } - @SuppressWarnings("PrivateConstructorForUtilityClass") + @SuppressWarnings({"unused", "PrivateConstructorForUtilityClass"}) public static class GetCandidateConfigurationsAdvice { @Advice.OnMethodExit(suppress = Throwable.class) diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ActuatorInstrumentationModule.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/ActuatorInstrumentationModule.java similarity index 90% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ActuatorInstrumentationModule.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/ActuatorInstrumentationModule.java index 9735bead09b..5a3bad3491e 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ActuatorInstrumentationModule.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/ActuatorInstrumentationModule.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Collections.singletonList; @@ -33,7 +33,7 @@ public void registerHelperResources(HelperResourceBuilder helperResourceBuilder) // this line will make AzureMonitorAutoConfiguration available to all classloaders, // so that the bean class loader (different than the instrumented class loader) can load it helperResourceBuilder.registerForAllClassLoaders( - "io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorAutoConfiguration.class"); + "io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorAutoConfiguration.class"); } @Override diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorAutoConfiguration.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorAutoConfiguration.java similarity index 96% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorAutoConfiguration.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorAutoConfiguration.java index 0285a0182de..221d5c2d88b 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorAutoConfiguration.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorAutoConfiguration.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import io.micrometer.core.instrument.Clock; import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration; diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorMeterRegistry.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorMeterRegistry.java similarity index 98% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorMeterRegistry.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorMeterRegistry.java index bcc33f21dc4..3f071db2007 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorMeterRegistry.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorMeterRegistry.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import static com.microsoft.applicationinsights.agent.bootstrap.MicrometerUtil.trackMetric; diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorNamingConvention.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorNamingConvention.java similarity index 94% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorNamingConvention.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorNamingConvention.java index e7b7a1b0c92..ccfc7a09c48 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorNamingConvention.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorNamingConvention.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import io.micrometer.core.instrument.Meter; import io.micrometer.core.instrument.config.NamingConvention; diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorRegistryConfig.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorRegistryConfig.java similarity index 77% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorRegistryConfig.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorRegistryConfig.java index 887a7070c8a..1cff13df9ca 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorRegistryConfig.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorRegistryConfig.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import io.micrometer.core.instrument.step.StepRegistryConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; @@ -14,7 +14,8 @@ public class AzureMonitorRegistryConfig implements StepRegistryConfig { public AzureMonitorRegistryConfig() { step = InstrumentationConfig.get() - .getDuration("otel.micrometer.step.millis", Duration.ofSeconds(60)); + .getDuration( + "applicationinsights.internal.micrometer.step.millis", Duration.ofSeconds(60)); } @Override diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/CompositeMeterRegistryInstrumentation.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/CompositeMeterRegistryInstrumentation.java similarity index 93% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/CompositeMeterRegistryInstrumentation.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/CompositeMeterRegistryInstrumentation.java index 47118797843..2112f68c2af 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/CompositeMeterRegistryInstrumentation.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/CompositeMeterRegistryInstrumentation.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -32,7 +32,7 @@ public void transform(TypeTransformer transformer) { CompositeMeterRegistryInstrumentation.class.getName() + "$AddAdvice"); } - @SuppressWarnings("PrivateConstructorForUtilityClass") + @SuppressWarnings({"unused", "PrivateConstructorForUtilityClass"}) public static class AddAdvice { @Advice.OnMethodEnter(suppress = Throwable.class, skipOn = Advice.OnNonDefaultValue.class) diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/DaemonThreadFactory.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/DaemonThreadFactory.java similarity index 93% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/DaemonThreadFactory.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/DaemonThreadFactory.java index 2a3476c2059..e21250b1cc4 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/DaemonThreadFactory.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/DaemonThreadFactory.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import java.util.concurrent.ThreadFactory; diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/MetricsInstrumentation.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/MetricsInstrumentation.java similarity index 90% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/MetricsInstrumentation.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/MetricsInstrumentation.java index 89d022c0dde..c4e3f682038 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/MetricsInstrumentation.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/MetricsInstrumentation.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import static net.bytebuddy.matcher.ElementMatchers.isTypeInitializer; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -26,7 +26,7 @@ public void transform(TypeTransformer transformer) { isTypeInitializer(), MetricsInstrumentation.class.getName() + "$StaticInitAdvice"); } - @SuppressWarnings("PrivateConstructorForUtilityClass") + @SuppressWarnings({"unused", "PrivateConstructorForUtilityClass"}) public static class StaticInitAdvice { @Advice.OnMethodExit(suppress = Throwable.class) diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/MicrometerInstrumentationModule.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/MicrometerInstrumentationModule.java similarity index 92% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/MicrometerInstrumentationModule.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/MicrometerInstrumentationModule.java index a67428fe25d..69410f2425e 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/MicrometerInstrumentationModule.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/MicrometerInstrumentationModule.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; diff --git a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/SpringBootActuatorIgnoredTypesConfigurer.java b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/SpringBootActuatorIgnoredTypesConfigurer.java similarity index 91% rename from agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/SpringBootActuatorIgnoredTypesConfigurer.java rename to agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/SpringBootActuatorIgnoredTypesConfigurer.java index d060cea4bf8..9084489bc45 100644 --- a/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/SpringBootActuatorIgnoredTypesConfigurer.java +++ b/agent/instrumentation/micrometer-1.0/src/main/java/io/opentelemetry/javaagent/instrumentation/micrometer/ai/SpringBootActuatorIgnoredTypesConfigurer.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -package io.opentelemetry.javaagent.instrumentation.micrometer; +package io.opentelemetry.javaagent.instrumentation.micrometer.ai; import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.ignore.IgnoredTypesBuilder; diff --git a/agent/instrumentation/micrometer-1.0/src/test/java/ActuatorTest.java b/agent/instrumentation/micrometer-1.0/src/test/java/ActuatorTest.java index b90b695c751..8cc158a952d 100644 --- a/agent/instrumentation/micrometer-1.0/src/test/java/ActuatorTest.java +++ b/agent/instrumentation/micrometer-1.0/src/test/java/ActuatorTest.java @@ -35,7 +35,7 @@ void shouldAddAzureMonitorAutoConfiguration() throws Exception { // then assertThat(list) .contains( - "io.opentelemetry.javaagent.instrumentation.micrometer.AzureMonitorAutoConfiguration"); + "io.opentelemetry.javaagent.instrumentation.micrometer.ai.AzureMonitorAutoConfiguration"); assertThat(list) .doesNotContain( "com.microsoft.azure.spring.autoconfigure.metrics.AzureMonitorMetricsExportAutoConfiguration"); @@ -48,7 +48,7 @@ void shouldReadClassBytes() throws IOException { // given ClassPathResource resource = new ClassPathResource( - "io/opentelemetry/javaagent/instrumentation/micrometer/AzureMonitorAutoConfiguration.class"); + "io/opentelemetry/javaagent/instrumentation/micrometer/ai/AzureMonitorAutoConfiguration.class"); // when InputStream input = resource.getInputStream(); diff --git a/agent/instrumentation/micrometer-1.0/src/test/java/MicrometerTest.java b/agent/instrumentation/micrometer-1.0/src/test/java/MicrometerTest.java index ba7416c5b9a..525efd4c698 100644 --- a/agent/instrumentation/micrometer-1.0/src/test/java/MicrometerTest.java +++ b/agent/instrumentation/micrometer-1.0/src/test/java/MicrometerTest.java @@ -16,7 +16,7 @@ import io.micrometer.core.instrument.TimeGauge; import io.micrometer.core.instrument.Timer; import io.micrometer.core.instrument.composite.CompositeMeterRegistry; -import io.opentelemetry.javaagent.instrumentation.micrometer.AzureMonitorMeterRegistry; +import io.opentelemetry.javaagent.instrumentation.micrometer.ai.AzureMonitorMeterRegistry; import java.time.Duration; import java.util.List; import java.util.concurrent.ExecutorService; diff --git a/agent/instrumentation/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/appid/ChannelPipelineInstrumentation.java b/agent/instrumentation/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/appid/ChannelPipelineInstrumentation.java index bebfa7a1ce1..482a9ef6353 100644 --- a/agent/instrumentation/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/appid/ChannelPipelineInstrumentation.java +++ b/agent/instrumentation/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/appid/ChannelPipelineInstrumentation.java @@ -41,7 +41,7 @@ public void transform(TypeTransformer typeTransformer) { this.getClass().getName() + "$ChannelPipelineAddAdvice"); } - @SuppressWarnings("PrivateConstructorForUtilityClass") + @SuppressWarnings({"unused", "PrivateConstructorForUtilityClass"}) public static class ChannelPipelineAddAdvice { @Advice.OnMethodEnter public static void trackCallDepth(@Advice.Local("aiCallDepth") CallDepth callDepth) { diff --git a/agent/instrumentation/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/appid/ChannelPipelineInstrumentation.java b/agent/instrumentation/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/appid/ChannelPipelineInstrumentation.java index cca924b0ea0..58567ed1ee6 100644 --- a/agent/instrumentation/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/appid/ChannelPipelineInstrumentation.java +++ b/agent/instrumentation/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/appid/ChannelPipelineInstrumentation.java @@ -41,7 +41,7 @@ public void transform(TypeTransformer typeTransformer) { this.getClass().getName() + "$ChannelPipelineAddAdvice"); } - @SuppressWarnings("PrivateConstructorForUtilityClass") + @SuppressWarnings({"unused", "PrivateConstructorForUtilityClass"}) public static class ChannelPipelineAddAdvice { @Advice.OnMethodEnter public static void trackCallDepth(@Advice.Local("aiCallDepth") CallDepth callDepth) { diff --git a/settings.gradle b/settings.gradle index 4fde839e340..d6a72a285e0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -60,6 +60,7 @@ include ':agent:azure-monitor-exporter' include ':agent:agent-for-testing' include ':agent:instrumentation:applicationinsights-web-2.3' include ':agent:instrumentation:azure-functions' +include ':agent:instrumentation:methods' include ':agent:instrumentation:micrometer-1.0' include ':agent:instrumentation:netty-4.0' include ':agent:instrumentation:netty-4.1' From c9114ad9417084a3d8b749836b8742da6e7b5e11 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 15 Sep 2022 14:02:11 -0700 Subject: [PATCH 09/46] Bump version for upcoming release (#2520) --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 67683f48fb1..d4c8118918f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ // Project properties -version=3.4.0-BETA.2 +version=3.4.0 org.gradle.parallel=true org.gradle.caching=true From 3813ecf4c47d2824232a284ce2845f119217da99 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 15 Sep 2022 17:47:54 -0700 Subject: [PATCH 10/46] Update to otel 1.18.0 (#2509) Built on #2513 --- agent/agent-bootstrap/gradle.lockfile | 9 +-- agent/agent-for-testing/gradle.lockfile | 9 +-- .../gc-monitor-api/gradle.lockfile | 9 +-- .../gc-monitor-core/gradle.lockfile | 9 +-- .../gc-monitor-tests/gradle.lockfile | 9 +-- .../agent-alerting-api/gradle.lockfile | 9 +-- .../agent-alerting/gradle.lockfile | 9 +-- .../agent-diagnostics-api/gradle.lockfile | 9 +-- .../agent-profiler-api/gradle.lockfile | 13 ++-- .../agent-service-profiler/gradle.lockfile | 63 +++++++++--------- agent/agent-tooling/gradle.lockfile | 65 +++++++++--------- .../internal/configuration/Configuration.java | 10 +-- .../internal/init/AiConfigCustomizer.java | 22 ++++++- .../internal/init/AiConfigPropertySource.java | 19 ------ .../agent/internal/init/FirstEntryPoint.java | 3 + .../internal/init/Slf4jInternalLogger.java | 66 +++++++++++++++++++ .../internal/sampling/AiOverrideSampler.java | 5 +- agent/agent/build.gradle.kts | 12 ++-- agent/agent/gradle.lockfile | 9 +-- agent/azure-monitor-exporter/gradle.lockfile | 59 +++++++++-------- .../implementation/AiSemanticAttributes.java | 8 ++- .../implementation/SpanDataMapper.java | 55 ++++++++-------- .../gradle.lockfile | 9 +-- .../azure-functions/gradle.lockfile | 9 +-- .../methods/ai/MethodInstrumentation.java | 2 +- .../methods/ai/MethodSingletons.java | 2 +- .../micrometer-1.0/gradle.lockfile | 9 +-- .../instrumentation/netty-4.0/gradle.lockfile | 9 +-- .../instrumentation/netty-4.1/gradle.lockfile | 9 +-- agent/instrumentation/servlet/gradle.lockfile | 9 +-- agent/runtime-attach/gradle.lockfile | 9 +-- classic-sdk/core/gradle.lockfile | 9 +-- classic-sdk/web/gradle.lockfile | 9 +-- dependencyManagement/build.gradle.kts | 16 +++-- etw/java/gradle.lockfile | 9 +-- licenses/more-licenses.md | 58 ++++++++-------- .../smoketest/MongoUnmaskedTest.java | 48 ++++++++++++++ .../unmasked_applicationinsights.json | 16 +++++ 38 files changed, 437 insertions(+), 276 deletions(-) delete mode 100644 agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigPropertySource.java create mode 100644 agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/Slf4jInternalLogger.java create mode 100644 smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java create mode 100644 smoke-tests/apps/MongoDB/src/smokeTest/resources/unmasked_applicationinsights.json diff --git a/agent/agent-bootstrap/gradle.lockfile b/agent/agent-bootstrap/gradle.lockfile index c218524d371..af7b8c35d5e 100644 --- a/agent/agent-bootstrap/gradle.lockfile +++ b/agent/agent-bootstrap/gradle.lockfile @@ -5,13 +5,14 @@ ch.qos.logback.contrib:logback-json-classic:0.1.5=runtimeClasspath ch.qos.logback.contrib:logback-json-core:0.1.5=runtimeClasspath ch.qos.logback:logback-classic:1.2.11=runtimeClasspath ch.qos.logback:logback-core:1.2.11=runtimeClasspath -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath com.squareup.moshi:moshi:1.11.0=runtimeClasspath com.squareup.okio:okio:1.17.5=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath org.slf4j:slf4j-api:1.7.36=runtimeClasspath empty= diff --git a/agent/agent-for-testing/gradle.lockfile b/agent/agent-for-testing/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/agent-for-testing/gradle.lockfile +++ b/agent/agent-for-testing/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile index fbaaa1cd353..225813116f9 100644 --- a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile @@ -1,12 +1,13 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.errorprone:error_prone_annotations:2.14.0=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath org.slf4j:slf4j-api:1.7.36=runtimeClasspath empty= diff --git a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile index fbaaa1cd353..225813116f9 100644 --- a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile @@ -1,12 +1,13 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.errorprone:error_prone_annotations:2.14.0=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath org.slf4j:slf4j-api:1.7.36=runtimeClasspath empty= diff --git a/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/agent-profiler/agent-alerting-api/gradle.lockfile b/agent/agent-profiler/agent-alerting-api/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/agent-profiler/agent-alerting-api/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting-api/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/agent-profiler/agent-alerting/gradle.lockfile b/agent/agent-profiler/agent-alerting/gradle.lockfile index 56a3e119e5a..0bd126475a9 100644 --- a/agent/agent-profiler/agent-alerting/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting/gradle.lockfile @@ -1,11 +1,12 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath org.slf4j:slf4j-api:1.7.36=runtimeClasspath empty= diff --git a/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile b/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile +++ b/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/agent-profiler/agent-profiler-api/gradle.lockfile b/agent/agent-profiler/agent-profiler-api/gradle.lockfile index 20f27ab833a..9db34a3bac4 100644 --- a/agent/agent-profiler/agent-profiler-api/gradle.lockfile +++ b/agent/agent-profiler/agent-profiler-api/gradle.lockfile @@ -1,8 +1,8 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-core:1.30.0=runtimeClasspath -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-core:1.31.0=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.fasterxml.jackson.core:jackson-annotations:2.13.3=runtimeClasspath com.fasterxml.jackson.core:jackson-core:2.13.3=runtimeClasspath com.fasterxml.jackson.core:jackson-databind:2.13.3=runtimeClasspath @@ -13,10 +13,11 @@ com.fasterxml.woodstox:woodstox-core:6.2.7=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath com.squareup.moshi:moshi:1.11.0=runtimeClasspath com.squareup.okio:okio:1.17.5=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath -io.projectreactor:reactor-core:3.4.19=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath +io.projectreactor:reactor-core:3.4.21=runtimeClasspath org.codehaus.woodstox:stax2-api:4.2.1=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath org.reactivestreams:reactive-streams:1.0.4=runtimeClasspath diff --git a/agent/agent-profiler/agent-service-profiler/gradle.lockfile b/agent/agent-profiler/agent-service-profiler/gradle.lockfile index 39417a744a2..e2a9656bfbd 100644 --- a/agent/agent-profiler/agent-service-profiler/gradle.lockfile +++ b/agent/agent-profiler/agent-service-profiler/gradle.lockfile @@ -1,12 +1,12 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-core-http-netty:1.12.3=runtimeClasspath -com.azure:azure-core:1.30.0=runtimeClasspath -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath -com.azure:azure-storage-blob:12.18.0=runtimeClasspath -com.azure:azure-storage-common:12.17.0=runtimeClasspath -com.azure:azure-storage-internal-avro:12.4.0=runtimeClasspath +com.azure:azure-core-http-netty:1.12.4=runtimeClasspath +com.azure:azure-core:1.31.0=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath +com.azure:azure-storage-blob:12.19.0=runtimeClasspath +com.azure:azure-storage-common:12.18.0=runtimeClasspath +com.azure:azure-storage-internal-avro:12.4.1=runtimeClasspath com.fasterxml.jackson.core:jackson-annotations:2.13.3=runtimeClasspath com.fasterxml.jackson.core:jackson-core:2.13.3=runtimeClasspath com.fasterxml.jackson.core:jackson-databind:2.13.3=runtimeClasspath @@ -19,33 +19,34 @@ com.microsoft.jfr:jfr-streaming:1.2.0=runtimeClasspath com.squareup.moshi:moshi-adapters:1.11.0=runtimeClasspath com.squareup.moshi:moshi:1.11.0=runtimeClasspath com.squareup.okio:okio:1.17.5=runtimeClasspath -io.netty:netty-buffer:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-dns:4.1.77.Final=runtimeClasspath -io.netty:netty-codec-http2:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-http:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-socks:4.1.78.Final=runtimeClasspath -io.netty:netty-codec:4.1.78.Final=runtimeClasspath -io.netty:netty-common:4.1.78.Final=runtimeClasspath -io.netty:netty-handler-proxy:4.1.78.Final=runtimeClasspath -io.netty:netty-handler:4.1.78.Final=runtimeClasspath -io.netty:netty-resolver-dns-classes-macos:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver-dns-native-macos:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver-dns:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver:4.1.78.Final=runtimeClasspath +io.netty:netty-buffer:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-dns:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-http2:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-http:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-socks:4.1.79.Final=runtimeClasspath +io.netty:netty-codec:4.1.79.Final=runtimeClasspath +io.netty:netty-common:4.1.79.Final=runtimeClasspath +io.netty:netty-handler-proxy:4.1.79.Final=runtimeClasspath +io.netty:netty-handler:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns-classes-macos:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns-native-macos:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver:4.1.79.Final=runtimeClasspath io.netty:netty-tcnative-boringssl-static:2.0.53.Final=runtimeClasspath io.netty:netty-tcnative-classes:2.0.53.Final=runtimeClasspath -io.netty:netty-transport-classes-epoll:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-classes-kqueue:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-epoll:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-kqueue:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-unix-common:4.1.78.Final=runtimeClasspath -io.netty:netty-transport:4.1.78.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath -io.projectreactor.netty:reactor-netty-core:1.0.20=runtimeClasspath -io.projectreactor.netty:reactor-netty-http:1.0.20=runtimeClasspath -io.projectreactor:reactor-core:3.4.19=runtimeClasspath +io.netty:netty-transport-classes-epoll:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-classes-kqueue:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-epoll:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-kqueue:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-unix-common:4.1.79.Final=runtimeClasspath +io.netty:netty-transport:4.1.79.Final=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath +io.projectreactor.netty:reactor-netty-core:1.0.21=runtimeClasspath +io.projectreactor.netty:reactor-netty-http:1.0.21=runtimeClasspath +io.projectreactor:reactor-core:3.4.21=runtimeClasspath org.codehaus.woodstox:stax2-api:4.2.1=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath org.reactivestreams:reactive-streams:1.0.4=runtimeClasspath diff --git a/agent/agent-tooling/gradle.lockfile b/agent/agent-tooling/gradle.lockfile index 649ad9e2a46..cc73211a8fe 100644 --- a/agent/agent-tooling/gradle.lockfile +++ b/agent/agent-tooling/gradle.lockfile @@ -1,13 +1,13 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-core-http-netty:1.12.3=runtimeClasspath -com.azure:azure-core:1.30.0=runtimeClasspath -com.azure:azure-identity:1.5.3=runtimeClasspath -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath -com.azure:azure-storage-blob:12.18.0=runtimeClasspath -com.azure:azure-storage-common:12.17.0=runtimeClasspath -com.azure:azure-storage-internal-avro:12.4.0=runtimeClasspath +com.azure:azure-core-http-netty:1.12.4=runtimeClasspath +com.azure:azure-core:1.31.0=runtimeClasspath +com.azure:azure-identity:1.5.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath +com.azure:azure-storage-blob:12.19.0=runtimeClasspath +com.azure:azure-storage-common:12.18.0=runtimeClasspath +com.azure:azure-storage-internal-avro:12.4.1=runtimeClasspath com.fasterxml.jackson.core:jackson-annotations:2.13.3=runtimeClasspath com.fasterxml.jackson.core:jackson-core:2.13.3=runtimeClasspath com.fasterxml.jackson.core:jackson-databind:2.13.3=runtimeClasspath @@ -30,33 +30,34 @@ com.squareup.moshi:moshi-adapters:1.11.0=runtimeClasspath com.squareup.moshi:moshi:1.11.0=runtimeClasspath com.squareup.okio:okio:1.17.5=runtimeClasspath commons-codec:commons-codec:1.15=runtimeClasspath -io.netty:netty-buffer:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-dns:4.1.77.Final=runtimeClasspath -io.netty:netty-codec-http2:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-http:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-socks:4.1.78.Final=runtimeClasspath -io.netty:netty-codec:4.1.78.Final=runtimeClasspath -io.netty:netty-common:4.1.78.Final=runtimeClasspath -io.netty:netty-handler-proxy:4.1.78.Final=runtimeClasspath -io.netty:netty-handler:4.1.78.Final=runtimeClasspath -io.netty:netty-resolver-dns-classes-macos:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver-dns-native-macos:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver-dns:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver:4.1.78.Final=runtimeClasspath +io.netty:netty-buffer:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-dns:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-http2:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-http:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-socks:4.1.79.Final=runtimeClasspath +io.netty:netty-codec:4.1.79.Final=runtimeClasspath +io.netty:netty-common:4.1.79.Final=runtimeClasspath +io.netty:netty-handler-proxy:4.1.79.Final=runtimeClasspath +io.netty:netty-handler:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns-classes-macos:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns-native-macos:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver:4.1.79.Final=runtimeClasspath io.netty:netty-tcnative-boringssl-static:2.0.53.Final=runtimeClasspath io.netty:netty-tcnative-classes:2.0.53.Final=runtimeClasspath -io.netty:netty-transport-classes-epoll:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-classes-kqueue:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-epoll:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-kqueue:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-unix-common:4.1.78.Final=runtimeClasspath -io.netty:netty-transport:4.1.78.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath -io.projectreactor.netty:reactor-netty-core:1.0.20=runtimeClasspath -io.projectreactor.netty:reactor-netty-http:1.0.20=runtimeClasspath -io.projectreactor:reactor-core:3.4.19=runtimeClasspath +io.netty:netty-transport-classes-epoll:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-classes-kqueue:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-epoll:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-kqueue:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-unix-common:4.1.79.Final=runtimeClasspath +io.netty:netty-transport:4.1.79.Final=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath +io.projectreactor.netty:reactor-netty-core:1.0.21=runtimeClasspath +io.projectreactor.netty:reactor-netty-http:1.0.21=runtimeClasspath +io.projectreactor:reactor-core:3.4.21=runtimeClasspath net.java.dev.jna:jna-platform:5.12.0=runtimeClasspath net.java.dev.jna:jna:5.12.0=runtimeClasspath net.minidev:accessors-smart:2.4.8=runtimeClasspath diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java index 9f62dd232e7..4f1af282503 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java @@ -193,24 +193,24 @@ public static class Instrumentation { public EnabledByDefaultInstrumentation azureSdk = new EnabledByDefaultInstrumentation(); public EnabledByDefaultInstrumentation cassandra = new EnabledByDefaultInstrumentation(); - public JdbcInstrumentation jdbc = new JdbcInstrumentation(); + public DatabaseInstrumentationWithMasking jdbc = new DatabaseInstrumentationWithMasking(); public EnabledByDefaultInstrumentation jms = new EnabledByDefaultInstrumentation(); public EnabledByDefaultInstrumentation kafka = new EnabledByDefaultInstrumentation(); public LoggingInstrumentation logging = new LoggingInstrumentation(); public MicrometerInstrumentation micrometer = new MicrometerInstrumentation(); - public EnabledByDefaultInstrumentation mongo = new EnabledByDefaultInstrumentation(); + public DatabaseInstrumentationWithMasking mongo = new DatabaseInstrumentationWithMasking(); public EnabledByDefaultInstrumentation quartz = new EnabledByDefaultInstrumentation(); public EnabledByDefaultInstrumentation rabbitmq = new EnabledByDefaultInstrumentation(); public EnabledByDefaultInstrumentation redis = new EnabledByDefaultInstrumentation(); public EnabledByDefaultInstrumentation springScheduling = new EnabledByDefaultInstrumentation(); } - public static class JdbcInstrumentation { + public static class DatabaseInstrumentationWithMasking { public boolean enabled = true; - public JdbcMasking masking = new JdbcMasking(); + public DatabaseMaskingConfiguration masking = new DatabaseMaskingConfiguration(); } - public static class JdbcMasking { + public static class DatabaseMaskingConfiguration { public boolean enabled = true; } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigCustomizer.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigCustomizer.java index fd0698707c2..6f8efa9c162 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigCustomizer.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiConfigCustomizer.java @@ -38,6 +38,9 @@ public Map apply(ConfigProperties otelConfig) { // this is needed to capture kafka.record.queue_time_ms properties.put("otel.instrumentation.kafka.experimental-span-attributes", "true"); + // kafka metrics are enabled by default + properties.put("otel.instrumentation.kafka.metric-reporter.enabled", "false"); + setHttpHeaderConfiguration( properties, "otel.instrumentation.http.capture-headers.server.request", @@ -206,9 +209,6 @@ private static void enableInstrumentations(Configuration config, Map getProperties() { - // TODO (trask) this is temporary until 1.18.0, see - // /~https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/6491 - return Collections.singletonMap("otel.instrumentation.common.default-enabled", "false"); - } -} diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java index 110c4e5b142..d3066c22ae4 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java @@ -20,6 +20,7 @@ import com.microsoft.applicationinsights.agent.internal.configuration.RpConfiguration; import com.microsoft.applicationinsights.agent.internal.configuration.RpConfigurationBuilder; import io.opentelemetry.javaagent.bootstrap.InstrumentationHolder; +import io.opentelemetry.javaagent.bootstrap.InternalLogger; import io.opentelemetry.javaagent.bootstrap.JavaagentFileHolder; import io.opentelemetry.javaagent.tooling.LoggingCustomizer; import java.io.File; @@ -93,6 +94,8 @@ public void init() { StartupDiagnostics.execute(); + InternalLogger.initialize(Slf4jInternalLogger::create); + if (JvmCompiler.hasToDisableJvmCompilerDirectives()) { JvmCompiler.disableJvmCompilerDirectives(); } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/Slf4jInternalLogger.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/Slf4jInternalLogger.java new file mode 100644 index 00000000000..2a569f645af --- /dev/null +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/Slf4jInternalLogger.java @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.microsoft.applicationinsights.agent.internal.init; + +import io.opentelemetry.javaagent.bootstrap.InternalLogger; +import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Slf4jInternalLogger extends InternalLogger { + + static Slf4jInternalLogger create(String name) { + return new Slf4jInternalLogger(name); + } + + private final Logger logger; + + Slf4jInternalLogger(String name) { + logger = LoggerFactory.getLogger(name); + } + + @Override + protected boolean isLoggable(InternalLogger.Level level) { + switch (level) { + case TRACE: + return logger.isTraceEnabled(); + case DEBUG: + return logger.isDebugEnabled(); + case INFO: + return logger.isInfoEnabled(); + case WARN: + return logger.isWarnEnabled(); + case ERROR: + return logger.isErrorEnabled(); + } + throw new IllegalStateException("Missing logging level value in switch"); + } + + @Override + protected void log(InternalLogger.Level level, String message, @Nullable Throwable error) { + switch (level) { + case TRACE: + logger.trace(message, error); + return; + case DEBUG: + logger.debug(message, error); + return; + case INFO: + logger.info(message, error); + return; + case WARN: + logger.warn(message, error); + return; + case ERROR: + logger.error(message, error); + return; + } + throw new IllegalStateException("Missing logging level value in switch"); + } + + @Override + protected String name() { + return logger.getName(); + } +} diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/AiOverrideSampler.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/AiOverrideSampler.java index 56e63721350..13dfc2b5a0f 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/AiOverrideSampler.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/AiOverrideSampler.java @@ -41,10 +41,7 @@ public SamplingResult shouldSample( SpanContext parentSpanContext = Span.fromContext(parentContext).getSpanContext(); - // TODO isRequest won't be correct for spring-scheduling and quartz - // since we don't have scope available in the sampler (yet) - boolean isRequest = - SpanDataMapper.isRequest(spanKind, parentSpanContext, null, attributes::get); + boolean isRequest = SpanDataMapper.isRequest(spanKind, parentSpanContext, attributes::get); SamplingOverrides samplingOverrides = isRequest ? requestSamplingOverrides : dependencySamplingOverrides; diff --git a/agent/agent/build.gradle.kts b/agent/agent/build.gradle.kts index 307eada80fd..652a3fcbb64 100644 --- a/agent/agent/build.gradle.kts +++ b/agent/agent/build.gradle.kts @@ -107,11 +107,13 @@ tasks { val shadowJarWithDuplicates by registering(ShadowJar::class) { configurations = listOf(bootstrapLibs, upstreamAgent) - // using logback in this distro - // this excludes slf4j-simple from the upstream agent - // but it doesn't exclude logback's files in this package since they haven't been shaded - // into this package yet at the time exclusion takes place - exclude("io/opentelemetry/javaagent/slf4j/impl/**") + // this distro uses logback (and shaded slf4j in the bootstrap class loader + // so that it can be used prior to the agent starting up) + // + // the two exclusions below excludes slf4j and slf4j-simple from the agent class loader + // (which come from the upstream agent) + exclude("inst/io/opentelemetry/javaagent/slf4j/**") + exclude("inst/META-INF/services/io.opentelemetry.javaagent.slf4j.spi.SLF4JServiceProvider") dependsOn(isolateJavaagentLibs) from(isolateJavaagentLibs.get().outputs) diff --git a/agent/agent/gradle.lockfile b/agent/agent/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/agent/gradle.lockfile +++ b/agent/agent/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/azure-monitor-exporter/gradle.lockfile b/agent/azure-monitor-exporter/gradle.lockfile index fed6eb35a76..70b2b95c4d9 100644 --- a/agent/azure-monitor-exporter/gradle.lockfile +++ b/agent/azure-monitor-exporter/gradle.lockfile @@ -1,10 +1,10 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-core-http-netty:1.12.3=runtimeClasspath -com.azure:azure-core:1.30.0=runtimeClasspath -com.azure:azure-identity:1.5.3=runtimeClasspath -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-core-http-netty:1.12.4=runtimeClasspath +com.azure:azure-core:1.31.0=runtimeClasspath +com.azure:azure-identity:1.5.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.fasterxml.jackson.core:jackson-annotations:2.13.3=runtimeClasspath com.fasterxml.jackson.core:jackson-core:2.13.3=runtimeClasspath com.fasterxml.jackson.core:jackson-databind:2.13.3=runtimeClasspath @@ -20,33 +20,34 @@ com.nimbusds:content-type:2.2=runtimeClasspath com.nimbusds:lang-tag:1.6=runtimeClasspath com.nimbusds:nimbus-jose-jwt:9.21=runtimeClasspath com.nimbusds:oauth2-oidc-sdk:9.32=runtimeClasspath -io.netty:netty-buffer:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-dns:4.1.77.Final=runtimeClasspath -io.netty:netty-codec-http2:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-http:4.1.78.Final=runtimeClasspath -io.netty:netty-codec-socks:4.1.78.Final=runtimeClasspath -io.netty:netty-codec:4.1.78.Final=runtimeClasspath -io.netty:netty-common:4.1.78.Final=runtimeClasspath -io.netty:netty-handler-proxy:4.1.78.Final=runtimeClasspath -io.netty:netty-handler:4.1.78.Final=runtimeClasspath -io.netty:netty-resolver-dns-classes-macos:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver-dns-native-macos:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver-dns:4.1.77.Final=runtimeClasspath -io.netty:netty-resolver:4.1.78.Final=runtimeClasspath +io.netty:netty-buffer:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-dns:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-http2:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-http:4.1.79.Final=runtimeClasspath +io.netty:netty-codec-socks:4.1.79.Final=runtimeClasspath +io.netty:netty-codec:4.1.79.Final=runtimeClasspath +io.netty:netty-common:4.1.79.Final=runtimeClasspath +io.netty:netty-handler-proxy:4.1.79.Final=runtimeClasspath +io.netty:netty-handler:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns-classes-macos:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns-native-macos:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver-dns:4.1.79.Final=runtimeClasspath +io.netty:netty-resolver:4.1.79.Final=runtimeClasspath io.netty:netty-tcnative-boringssl-static:2.0.53.Final=runtimeClasspath io.netty:netty-tcnative-classes:2.0.53.Final=runtimeClasspath -io.netty:netty-transport-classes-epoll:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-classes-kqueue:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-epoll:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-kqueue:4.1.78.Final=runtimeClasspath -io.netty:netty-transport-native-unix-common:4.1.78.Final=runtimeClasspath -io.netty:netty-transport:4.1.78.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath -io.projectreactor.netty:reactor-netty-core:1.0.20=runtimeClasspath -io.projectreactor.netty:reactor-netty-http:1.0.20=runtimeClasspath -io.projectreactor:reactor-core:3.4.19=runtimeClasspath +io.netty:netty-transport-classes-epoll:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-classes-kqueue:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-epoll:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-kqueue:4.1.79.Final=runtimeClasspath +io.netty:netty-transport-native-unix-common:4.1.79.Final=runtimeClasspath +io.netty:netty-transport:4.1.79.Final=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath +io.projectreactor.netty:reactor-netty-core:1.0.21=runtimeClasspath +io.projectreactor.netty:reactor-netty-http:1.0.21=runtimeClasspath +io.projectreactor:reactor-core:3.4.21=runtimeClasspath net.java.dev.jna:jna-platform:5.6.0=runtimeClasspath net.java.dev.jna:jna:5.6.0=runtimeClasspath net.minidev:accessors-smart:2.4.8=runtimeClasspath diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/AiSemanticAttributes.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/AiSemanticAttributes.java index b15d6b57e12..3779fcebfe9 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/AiSemanticAttributes.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/AiSemanticAttributes.java @@ -54,9 +54,13 @@ public final class AiSemanticAttributes { public static final AttributeKey DEVICE_OS_VERSION = AttributeKey.stringKey("applicationinsights.internal.operating_system_version"); - // TODO (trask) remove once this makes it into SemanticAttributes + // TODO (trask) remove these once they make it into SemanticAttributes + public static final AttributeKey NET_SOCK_PEER_NAME = + AttributeKey.stringKey("net.sock.peer.name"); public static final AttributeKey NET_SOCK_PEER_ADDR = AttributeKey.stringKey("net.sock.peer.addr"); + public static final AttributeKey NET_SOCK_PEER_PORT = + AttributeKey.longKey("net.sock.peer.port"); // TODO (trask) this can go away once new indexer is rolled out to gov clouds public static final AttributeKey> REQUEST_CONTEXT = @@ -80,6 +84,8 @@ public final class AiSemanticAttributes { AttributeKey.longKey("kafka.record.queue_time_ms"); public static final AttributeKey KAFKA_OFFSET = AttributeKey.longKey("kafka.offset"); + public static final AttributeKey JOB_SYSTEM = AttributeKey.stringKey("job.system"); + public static final AttributeKey IS_PRE_AGGREGATED = AttributeKey.booleanKey("applicationinsights.internal.is_pre_aggregated"); diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java index cff4bd154f1..99a6ca63432 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java @@ -3,6 +3,7 @@ package com.azure.monitor.opentelemetry.exporter.implementation; +import static com.azure.monitor.opentelemetry.exporter.implementation.AiSemanticAttributes.JOB_SYSTEM; import static java.util.concurrent.TimeUnit.NANOSECONDS; import static java.util.concurrent.TimeUnit.SECONDS; @@ -26,7 +27,6 @@ import io.opentelemetry.api.trace.SpanContext; import io.opentelemetry.api.trace.SpanId; import io.opentelemetry.api.trace.SpanKind; -import io.opentelemetry.sdk.common.InstrumentationScopeInfo; import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.sdk.trace.ReadableSpan; import io.opentelemetry.sdk.trace.data.EventData; @@ -89,6 +89,7 @@ public final class SpanDataMapper { .put("thread.", true) .put("faas.", true) .put("code.", true) + .put("job.", true) // proposed semantic convention which we use for job.system .build(); } @@ -133,34 +134,18 @@ public TelemetryItem map(SpanData span, long itemCount) { } public static boolean isRequest(SpanData span) { - return isRequest( - span.getKind(), - span.getParentSpanContext(), - span.getInstrumentationScopeInfo(), - span.getAttributes()::get); + return isRequest(span.getKind(), span.getParentSpanContext(), span.getAttributes()::get); } public static boolean isRequest(ReadableSpan span) { - return isRequest( - span.getKind(), - span.getParentSpanContext(), - span.getInstrumentationScopeInfo(), - span::getAttribute); + return isRequest(span.getKind(), span.getParentSpanContext(), span::getAttribute); } public static boolean isRequest( - SpanKind kind, - SpanContext parentSpanContext, - @Nullable InstrumentationScopeInfo scopeInfo, - Function, String> attrFn) { - String instrumentationName = scopeInfo == null ? null : scopeInfo.getName(); + SpanKind kind, SpanContext parentSpanContext, Function, String> attrFn) { if (kind == SpanKind.INTERNAL) { - // TODO (trask) AI mapping: need semantic convention for determining whether to map INTERNAL - // to request or dependency (or need clarification to use SERVER for this) - return !parentSpanContext.isValid() - && instrumentationName != null - && (instrumentationName.startsWith("io.opentelemetry.spring-scheduling-") - || instrumentationName.startsWith("io.opentelemetry.quartz-")); + // INTERNAL scheduled job spans with no parent are mapped to requests + return attrFn.apply(JOB_SYSTEM) != null && !parentSpanContext.isValid(); } else if (kind == SpanKind.CLIENT || kind == SpanKind.PRODUCER) { return false; } else if (kind == SpanKind.CONSUMER @@ -409,15 +394,27 @@ private static String getTargetOrNull(Attributes attributes, int defaultPort) { if (peerService != null) { return peerService; } - String netPeerName = attributes.get(SemanticAttributes.NET_PEER_NAME); - if (netPeerName == null) { - return null; + String host = attributes.get(SemanticAttributes.NET_PEER_NAME); + if (host != null) { + Long port = attributes.get(SemanticAttributes.NET_PEER_PORT); + return getTarget(host, port, defaultPort); + } + host = attributes.get(AiSemanticAttributes.NET_SOCK_PEER_NAME); + if (host == null) { + host = attributes.get(AiSemanticAttributes.NET_SOCK_PEER_ADDR); + } + if (host != null) { + Long port = attributes.get(AiSemanticAttributes.NET_SOCK_PEER_PORT); + return getTarget(host, port, defaultPort); } - Long netPeerPort = attributes.get(SemanticAttributes.NET_PEER_PORT); - if (netPeerPort != null && netPeerPort != defaultPort) { - return netPeerName + ":" + netPeerPort; + return null; + } + + private static String getTarget(String host, @Nullable Long port, int defaultPort) { + if (port != null && port != defaultPort) { + return host + ":" + port; } else { - return netPeerName; + return host; } } diff --git a/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile b/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile +++ b/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/instrumentation/azure-functions/gradle.lockfile b/agent/instrumentation/azure-functions/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/instrumentation/azure-functions/gradle.lockfile +++ b/agent/instrumentation/azure-functions/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentation.java b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentation.java index a586dcb4082..20b564da07d 100644 --- a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentation.java +++ b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodInstrumentation.java @@ -18,7 +18,7 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; import io.opentelemetry.instrumentation.api.annotation.support.async.AsyncOperationEndSupport; -import io.opentelemetry.instrumentation.api.util.ClassAndMethod; +import io.opentelemetry.instrumentation.api.instrumenter.util.ClassAndMethod; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import java.lang.reflect.Method; diff --git a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java index eed9e5e1f15..d80371d60af 100644 --- a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java +++ b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java @@ -15,7 +15,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; -import io.opentelemetry.instrumentation.api.util.ClassAndMethod; +import io.opentelemetry.instrumentation.api.instrumenter.util.ClassAndMethod; public final class MethodSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.methods"; diff --git a/agent/instrumentation/micrometer-1.0/gradle.lockfile b/agent/instrumentation/micrometer-1.0/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/instrumentation/micrometer-1.0/gradle.lockfile +++ b/agent/instrumentation/micrometer-1.0/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/instrumentation/netty-4.0/gradle.lockfile b/agent/instrumentation/netty-4.0/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/instrumentation/netty-4.0/gradle.lockfile +++ b/agent/instrumentation/netty-4.0/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/instrumentation/netty-4.1/gradle.lockfile b/agent/instrumentation/netty-4.1/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/instrumentation/netty-4.1/gradle.lockfile +++ b/agent/instrumentation/netty-4.1/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/instrumentation/servlet/gradle.lockfile b/agent/instrumentation/servlet/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/agent/instrumentation/servlet/gradle.lockfile +++ b/agent/instrumentation/servlet/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/agent/runtime-attach/gradle.lockfile b/agent/runtime-attach/gradle.lockfile index c3f45a1b685..f5d5cb1525d 100644 --- a/agent/runtime-attach/gradle.lockfile +++ b/agent/runtime-attach/gradle.lockfile @@ -1,12 +1,13 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.opentelemetry.contrib:opentelemetry-runtime-attach-core:1.17.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath net.bytebuddy:byte-buddy-agent:1.12.10=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/classic-sdk/core/gradle.lockfile b/classic-sdk/core/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/classic-sdk/core/gradle.lockfile +++ b/classic-sdk/core/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/classic-sdk/web/gradle.lockfile b/classic-sdk/web/gradle.lockfile index 48b904c5ed8..85d400cc326 100644 --- a/classic-sdk/web/gradle.lockfile +++ b/classic-sdk/web/gradle.lockfile @@ -1,10 +1,11 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath empty= diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 3a9458a2126..9f5b547468b 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -11,10 +11,10 @@ data class DependencySet(val group: String, val version: String, val modules: Li val dependencyVersions = hashMapOf() rootProject.extra["versions"] = dependencyVersions -val otelVersion = "1.17.0" +val otelVersion = "1.18.0" // IMPORTANT when updating opentelemetry instrumentation version, be sure to update bytebuddy version to match -val otelInstrumentationVersion = "1.17.0" -val otelInstrumentationAlphaVersion = "1.17.0-alpha" +val otelInstrumentationVersion = "1.18.0" +val otelInstrumentationAlphaVersion = "1.18.0-alpha" val otelContribAlphaVersion = "1.17.0-alpha" rootProject.extra["otelVersion"] = otelVersion @@ -26,8 +26,9 @@ val DEPENDENCY_BOMS = listOf( "com.google.guava:guava-bom:31.1-jre", "io.opentelemetry:opentelemetry-bom:${otelVersion}", "io.opentelemetry:opentelemetry-bom-alpha:${otelVersion}-alpha", + "io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:${otelInstrumentationVersion}", "io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:${otelInstrumentationAlphaVersion}", - "com.azure:azure-sdk-bom:1.2.4", + "com.azure:azure-sdk-bom:1.2.5", "org.junit:junit-bom:5.8.2" ) @@ -58,6 +59,11 @@ val DEPENDENCY_SETS = listOf( ), DependencySet( "org.slf4j", + // moving to 2.0 is problematic because the SPI mechanism doesn't work in the bootstrap class + // loader because while we add the agent jar to the bootstrap class loader via + // Instrumentation.appendToBootstrapClassLoaderSearch(), there's nothing similar for resources + // (which is a known problem in the java agent world) and so the META-INF/services resource is + // not found "1.7.36", listOf("slf4j-api", "slf4j-simple", "log4j-over-slf4j", "jcl-over-slf4j", "jul-to-slf4j") ), @@ -73,7 +79,7 @@ val DEPENDENCY_SETS = listOf( ), DependencySet( "io.opentelemetry.javaagent", - "${otelInstrumentationAlphaVersion}", + otelInstrumentationAlphaVersion, listOf( "opentelemetry-javaagent-extension-api", "opentelemetry-javaagent-bootstrap", diff --git a/etw/java/gradle.lockfile b/etw/java/gradle.lockfile index 56a3e119e5a..0bd126475a9 100644 --- a/etw/java/gradle.lockfile +++ b/etw/java/gradle.lockfile @@ -1,11 +1,12 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.azure:azure-sdk-bom:1.2.4=runtimeClasspath +com.azure:azure-sdk-bom:1.2.5=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.17.0-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.17.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.18.0=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.18.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.18.0=runtimeClasspath org.junit:junit-bom:5.8.2=runtimeClasspath org.slf4j:slf4j-api:1.7.36=runtimeClasspath empty= diff --git a/licenses/more-licenses.md b/licenses/more-licenses.md index 75315a346c1..386b8ebdd8c 100644 --- a/licenses/more-licenses.md +++ b/licenses/more-licenses.md @@ -1,7 +1,7 @@ #agent ##Dependency License Report -_2022-08-01 17:15:47 PDT_ +_2022-09-14 20:59:39 PDT_ ## Apache License, Version 2.0 **1** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.13.3` @@ -92,67 +92,67 @@ _2022-08-01 17:15:47 PDT_ > - **Embedded license files**: [commons-codec-1.15.jar/META-INF/LICENSE.txt](commons-codec-1.15.jar/META-INF/LICENSE.txt) - [commons-codec-1.15.jar/META-INF/NOTICE.txt](commons-codec-1.15.jar/META-INF/NOTICE.txt) -**17** **Group:** `io.netty` **Name:** `netty-buffer` **Version:** `4.1.78.Final` +**17** **Group:** `io.netty` **Name:** `netty-buffer` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**18** **Group:** `io.netty` **Name:** `netty-codec` **Version:** `4.1.78.Final` +**18** **Group:** `io.netty` **Name:** `netty-codec` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**19** **Group:** `io.netty` **Name:** `netty-codec-dns` **Version:** `4.1.77.Final` +**19** **Group:** `io.netty` **Name:** `netty-codec-dns` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**20** **Group:** `io.netty` **Name:** `netty-codec-http` **Version:** `4.1.78.Final` +**20** **Group:** `io.netty` **Name:** `netty-codec-http` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**21** **Group:** `io.netty` **Name:** `netty-codec-http2` **Version:** `4.1.78.Final` +**21** **Group:** `io.netty` **Name:** `netty-codec-http2` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**22** **Group:** `io.netty` **Name:** `netty-codec-socks` **Version:** `4.1.78.Final` +**22** **Group:** `io.netty` **Name:** `netty-codec-socks` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**23** **Group:** `io.netty` **Name:** `netty-common` **Version:** `4.1.78.Final` +**23** **Group:** `io.netty` **Name:** `netty-common` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**24** **Group:** `io.netty` **Name:** `netty-handler` **Version:** `4.1.78.Final` +**24** **Group:** `io.netty` **Name:** `netty-handler` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**25** **Group:** `io.netty` **Name:** `netty-handler-proxy` **Version:** `4.1.78.Final` +**25** **Group:** `io.netty` **Name:** `netty-handler-proxy` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**26** **Group:** `io.netty` **Name:** `netty-resolver` **Version:** `4.1.78.Final` +**26** **Group:** `io.netty` **Name:** `netty-resolver` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**27** **Group:** `io.netty` **Name:** `netty-resolver-dns` **Version:** `4.1.77.Final` +**27** **Group:** `io.netty` **Name:** `netty-resolver-dns` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**28** **Group:** `io.netty` **Name:** `netty-resolver-dns-classes-macos` **Version:** `4.1.77.Final` +**28** **Group:** `io.netty` **Name:** `netty-resolver-dns-classes-macos` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**29** **Group:** `io.netty` **Name:** `netty-resolver-dns-native-macos` **Version:** `4.1.77.Final` +**29** **Group:** `io.netty` **Name:** `netty-resolver-dns-native-macos` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) @@ -168,45 +168,45 @@ _2022-08-01 17:15:47 PDT_ > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**32** **Group:** `io.netty` **Name:** `netty-transport` **Version:** `4.1.78.Final` +**32** **Group:** `io.netty` **Name:** `netty-transport` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**33** **Group:** `io.netty` **Name:** `netty-transport-classes-epoll` **Version:** `4.1.78.Final` +**33** **Group:** `io.netty` **Name:** `netty-transport-classes-epoll` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**34** **Group:** `io.netty` **Name:** `netty-transport-classes-kqueue` **Version:** `4.1.78.Final` +**34** **Group:** `io.netty` **Name:** `netty-transport-classes-kqueue` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**35** **Group:** `io.netty` **Name:** `netty-transport-native-epoll` **Version:** `4.1.78.Final` +**35** **Group:** `io.netty` **Name:** `netty-transport-native-epoll` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**36** **Group:** `io.netty` **Name:** `netty-transport-native-kqueue` **Version:** `4.1.78.Final` +**36** **Group:** `io.netty` **Name:** `netty-transport-native-kqueue` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**37** **Group:** `io.netty` **Name:** `netty-transport-native-unix-common` **Version:** `4.1.78.Final` +**37** **Group:** `io.netty` **Name:** `netty-transport-native-unix-common` **Version:** `4.1.79.Final` > - **Manifest Project URL**: [https://netty.io/](https://netty.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**38** **Group:** `io.projectreactor` **Name:** `reactor-core` **Version:** `3.4.19` +**38** **Group:** `io.projectreactor` **Name:** `reactor-core` **Version:** `3.4.21` > - **POM Project URL**: [/~https://github.com/reactor/reactor-core](/~https://github.com/reactor/reactor-core) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**39** **Group:** `io.projectreactor.netty` **Name:** `reactor-netty-core` **Version:** `1.0.20` +**39** **Group:** `io.projectreactor.netty` **Name:** `reactor-netty-core` **Version:** `1.0.21` > - **POM Project URL**: [/~https://github.com/reactor/reactor-netty](/~https://github.com/reactor/reactor-netty) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**40** **Group:** `io.projectreactor.netty` **Name:** `reactor-netty-http` **Version:** `1.0.20` +**40** **Group:** `io.projectreactor.netty` **Name:** `reactor-netty-http` **Version:** `1.0.21` > - **POM Project URL**: [/~https://github.com/reactor/reactor-netty](/~https://github.com/reactor/reactor-netty) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) @@ -320,27 +320,27 @@ _2022-08-01 17:15:47 PDT_ ## MIT License -**59** **Group:** `com.azure` **Name:** `azure-core` **Version:** `1.30.0` +**59** **Group:** `com.azure` **Name:** `azure-core` **Version:** `1.31.0` > - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -**60** **Group:** `com.azure` **Name:** `azure-core-http-netty` **Version:** `1.12.3` +**60** **Group:** `com.azure` **Name:** `azure-core-http-netty` **Version:** `1.12.4` > - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -**61** **Group:** `com.azure` **Name:** `azure-identity` **Version:** `1.5.3` +**61** **Group:** `com.azure` **Name:** `azure-identity` **Version:** `1.5.4` > - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -**62** **Group:** `com.azure` **Name:** `azure-storage-blob` **Version:** `12.18.0` +**62** **Group:** `com.azure` **Name:** `azure-storage-blob` **Version:** `12.19.0` > - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -**63** **Group:** `com.azure` **Name:** `azure-storage-common` **Version:** `12.17.0` +**63** **Group:** `com.azure` **Name:** `azure-storage-common` **Version:** `12.18.0` > - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -**64** **Group:** `com.azure` **Name:** `azure-storage-internal-avro` **Version:** `12.4.0` +**64** **Group:** `com.azure` **Name:** `azure-storage-internal-avro` **Version:** `12.4.1` > - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java new file mode 100644 index 00000000000..5e08a58907e --- /dev/null +++ b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.microsoft.applicationinsights.smoketest; + +import static com.microsoft.applicationinsights.smoketest.WarEnvironmentValue.TOMCAT_8_JAVA_8; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +@WithDependencyContainers( + @DependencyContainer( + value = "mongo:4", + exposedPort = 27017, + hostnameEnvironmentVariable = "MONGO")) +@Environment(TOMCAT_8_JAVA_8) +@UseAgent("unmasked_applicationinsights.json") +class MongoUnmaskedTest { + + @RegisterExtension static final SmokeTestExtension testing = SmokeTestExtension.create(); + + @Test + @TargetUri("/mongo") + void mongo() throws Exception { + Telemetry telemetry = testing.getTelemetry(1); + + assertThat(telemetry.rd.getName()).isEqualTo("GET /MongoDB/*"); + assertThat(telemetry.rd.getUrl()).matches("http://localhost:[0-9]+/MongoDB/mongo"); + assertThat(telemetry.rd.getResponseCode()).isEqualTo("200"); + assertThat(telemetry.rd.getSuccess()).isTrue(); + assertThat(telemetry.rd.getSource()).isNull(); + assertThat(telemetry.rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(telemetry.rd.getMeasurements()).isEmpty(); + + assertThat(telemetry.rdd1.getName()).isEqualTo("find testdb.test"); + assertThat(telemetry.rdd1.getData()).isEqualTo("{\"find\": \"test\", \"$db\": \"testdb\"}"); + assertThat(telemetry.rdd1.getType()).isEqualTo("mongodb"); + assertThat(telemetry.rdd1.getTarget()).matches("dependency[0-9]+ \\| testdb"); + assertThat(telemetry.rdd1.getProperties()).isEmpty(); + assertThat(telemetry.rdd1.getSuccess()).isTrue(); + + SmokeTestExtension.assertParentChild( + telemetry.rd, telemetry.rdEnvelope, telemetry.rddEnvelope1, "GET /MongoDB/*"); + } +} diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/resources/unmasked_applicationinsights.json b/smoke-tests/apps/MongoDB/src/smokeTest/resources/unmasked_applicationinsights.json new file mode 100644 index 00000000000..fd9410ff095 --- /dev/null +++ b/smoke-tests/apps/MongoDB/src/smokeTest/resources/unmasked_applicationinsights.json @@ -0,0 +1,16 @@ +{ + "role": { + "name": "testrolename", + "instance": "testroleinstance" + }, + "sampling": { + "percentage": 100 + }, + "instrumentation": { + "mongo": { + "masking": { + "enabled": false + } + } + } +} From a73ff2224348f42960cd6cdc1930f6c2d1b3137e Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 31 Jan 2023 12:50:31 -0800 Subject: [PATCH 11/46] Explain why we're not ready for spring-boot-3 yet --- .github/dependabot.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index bc55e50f90b..969b85217b5 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -30,7 +30,8 @@ updates: # 1.12.0 and above use okio 2.x which pulls in kotlin libs (which are large) versions: [ "[1.12,)" ] - dependency-name: "org.springframework.boot:spring-boot-gradle-plugin" - # this is used for smoke tests, and spring boot 3 is not supported upstream yet + # this is used for smoke tests + # spring boot 3 requires Java 17, and we're not ready yet versions: [ "[3,)" ] - dependency-name: "javax.servlet:javax.servlet-api" # applicationinsights-web (classic sdk) is intentionally compiled and against Servlet 3.0 From e44c6489063a0f8b9abba425038803f973d97ff1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Apr 2023 04:00:43 +0000 Subject: [PATCH 12/46] Bump otelInstrumentationAlphaVersion from 1.24.0-alpha to 1.25.0-alpha Bumps `otelInstrumentationAlphaVersion` from 1.24.0-alpha to 1.25.0-alpha. Updates `io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha` from 1.24.0-alpha to 1.25.0-alpha - [Release notes](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/commits) Updates `io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api` from 1.24.0-alpha to 1.25.0-alpha - [Release notes](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/commits) Updates `io.opentelemetry.javaagent:opentelemetry-javaagent-bootstrap` from 1.24.0-alpha to 1.25.0-alpha - [Release notes](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/commits) Updates `io.opentelemetry.javaagent:opentelemetry-javaagent-tooling` from 1.24.0-alpha to 1.25.0-alpha - [Release notes](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](/~https://github.com/open-telemetry/opentelemetry-java-instrumentation/commits) --- updated-dependencies: - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.opentelemetry.javaagent:opentelemetry-javaagent-bootstrap dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.opentelemetry.javaagent:opentelemetry-javaagent-tooling dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- dependencyManagement/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index a2d86b3d1b6..cbeb885679a 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -12,7 +12,7 @@ val dependencyVersions = hashMapOf() rootProject.extra["versions"] = dependencyVersions val otelVersion = "1.23.1" -val otelInstrumentationAlphaVersion = "1.24.0-alpha" +val otelInstrumentationAlphaVersion = "1.25.0-alpha" val otelInstrumentationVersion = "1.24.0" val otelContribAlphaVersion = "1.18.0-alpha" From cf1e6eede225c2e855bb4cf4dfe52d35149850ee Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Fri, 14 Apr 2023 09:59:17 -0700 Subject: [PATCH 13/46] Update lockfile --- agent/agent-bootstrap/gradle.lockfile | 2 +- agent/agent-for-testing/gradle.lockfile | 2 +- agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile | 2 +- agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile | 2 +- agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile | 2 +- agent/agent-profiler/agent-alerting-api/gradle.lockfile | 2 +- agent/agent-profiler/agent-alerting/gradle.lockfile | 2 +- .../agent-profiler/agent-diagnostics-api/gradle.lockfile | 2 +- agent/agent-tooling/gradle.lockfile | 8 ++++---- agent/agent/gradle.lockfile | 2 +- agent/azure-monitor-exporter/gradle.lockfile | 8 ++++---- .../applicationinsights-web-2.3/gradle.lockfile | 2 +- .../azure-functions-worker-stub/gradle.lockfile | 2 +- agent/instrumentation/azure-functions/gradle.lockfile | 2 +- agent/instrumentation/methods/gradle.lockfile | 2 +- agent/instrumentation/micrometer-1.0/gradle.lockfile | 2 +- agent/runtime-attach/gradle.lockfile | 2 +- classic-sdk/core/gradle.lockfile | 2 +- classic-sdk/web/gradle.lockfile | 2 +- etw/java/gradle.lockfile | 2 +- 20 files changed, 26 insertions(+), 26 deletions(-) diff --git a/agent/agent-bootstrap/gradle.lockfile b/agent/agent-bootstrap/gradle.lockfile index 1acce42f7e7..943f1bf87b0 100644 --- a/agent/agent-bootstrap/gradle.lockfile +++ b/agent/agent-bootstrap/gradle.lockfile @@ -11,7 +11,7 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath com.squareup.moshi:moshi:1.11.0=runtimeClasspath com.squareup.okio:okio:1.17.5=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/agent-for-testing/gradle.lockfile b/agent/agent-for-testing/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/agent-for-testing/gradle.lockfile +++ b/agent/agent-for-testing/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile index a80041a44d4..2ea59a59365 100644 --- a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.errorprone:error_prone_annotations:2.18.0=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile index a80041a44d4..2ea59a59365 100644 --- a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.errorprone:error_prone_annotations:2.18.0=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/agent-profiler/agent-alerting-api/gradle.lockfile b/agent/agent-profiler/agent-alerting-api/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/agent-profiler/agent-alerting-api/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting-api/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/agent-profiler/agent-alerting/gradle.lockfile b/agent/agent-profiler/agent-alerting/gradle.lockfile index b814270e69b..4c70739e7ec 100644 --- a/agent/agent-profiler/agent-alerting/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile b/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile +++ b/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/agent-tooling/gradle.lockfile b/agent/agent-tooling/gradle.lockfile index bc3b216bca5..4858f562728 100644 --- a/agent/agent-tooling/gradle.lockfile +++ b/agent/agent-tooling/gradle.lockfile @@ -50,13 +50,13 @@ io.netty:netty-transport-native-epoll:4.1.91.Final=runtimeClasspath io.netty:netty-transport-native-kqueue:4.1.91.Final=runtimeClasspath io.netty:netty-transport-native-unix-common:4.1.91.Final=runtimeClasspath io.netty:netty-transport:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath -io.projectreactor.netty:reactor-netty-core:1.1.5=runtimeClasspath -io.projectreactor.netty:reactor-netty-http:1.1.5=runtimeClasspath -io.projectreactor:reactor-core:3.5.4=runtimeClasspath +io.projectreactor.netty:reactor-netty-core:1.1.6=runtimeClasspath +io.projectreactor.netty:reactor-netty-http:1.1.6=runtimeClasspath +io.projectreactor:reactor-core:3.5.5=runtimeClasspath net.java.dev.jna:jna-platform:5.13.0=runtimeClasspath net.java.dev.jna:jna:5.13.0=runtimeClasspath net.minidev:accessors-smart:2.4.9=runtimeClasspath diff --git a/agent/agent/gradle.lockfile b/agent/agent/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/agent/gradle.lockfile +++ b/agent/agent/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/azure-monitor-exporter/gradle.lockfile b/agent/azure-monitor-exporter/gradle.lockfile index 3158fe1e283..1a1ce057c3d 100644 --- a/agent/azure-monitor-exporter/gradle.lockfile +++ b/agent/azure-monitor-exporter/gradle.lockfile @@ -40,13 +40,13 @@ io.netty:netty-transport-native-epoll:4.1.91.Final=runtimeClasspath io.netty:netty-transport-native-kqueue:4.1.91.Final=runtimeClasspath io.netty:netty-transport-native-unix-common:4.1.91.Final=runtimeClasspath io.netty:netty-transport:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath -io.projectreactor.netty:reactor-netty-core:1.1.5=runtimeClasspath -io.projectreactor.netty:reactor-netty-http:1.1.5=runtimeClasspath -io.projectreactor:reactor-core:3.5.4=runtimeClasspath +io.projectreactor.netty:reactor-netty-core:1.1.6=runtimeClasspath +io.projectreactor.netty:reactor-netty-http:1.1.6=runtimeClasspath +io.projectreactor:reactor-core:3.5.5=runtimeClasspath net.java.dev.jna:jna-platform:5.6.0=runtimeClasspath net.java.dev.jna:jna:5.6.0=runtimeClasspath net.minidev:accessors-smart:2.4.9=runtimeClasspath diff --git a/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile b/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile +++ b/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile b/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile +++ b/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/instrumentation/azure-functions/gradle.lockfile b/agent/instrumentation/azure-functions/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/instrumentation/azure-functions/gradle.lockfile +++ b/agent/instrumentation/azure-functions/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/instrumentation/methods/gradle.lockfile b/agent/instrumentation/methods/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/instrumentation/methods/gradle.lockfile +++ b/agent/instrumentation/methods/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/instrumentation/micrometer-1.0/gradle.lockfile b/agent/instrumentation/micrometer-1.0/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/agent/instrumentation/micrometer-1.0/gradle.lockfile +++ b/agent/instrumentation/micrometer-1.0/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/agent/runtime-attach/gradle.lockfile b/agent/runtime-attach/gradle.lockfile index 81b0c2bb096..502e5d8dfad 100644 --- a/agent/runtime-attach/gradle.lockfile +++ b/agent/runtime-attach/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.contrib:opentelemetry-runtime-attach-core:1.18.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/classic-sdk/core/gradle.lockfile b/classic-sdk/core/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/classic-sdk/core/gradle.lockfile +++ b/classic-sdk/core/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/classic-sdk/web/gradle.lockfile b/classic-sdk/web/gradle.lockfile index a398f1e2719..54508f4c158 100644 --- a/classic-sdk/web/gradle.lockfile +++ b/classic-sdk/web/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath diff --git a/etw/java/gradle.lockfile b/etw/java/gradle.lockfile index b814270e69b..4c70739e7ec 100644 --- a/etw/java/gradle.lockfile +++ b/etw/java/gradle.lockfile @@ -5,7 +5,7 @@ com.azure:azure-sdk-bom:1.2.11=runtimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.24.0-alpha=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath From 5716133ada0c2324cc04422620d6d4e3d54c4c24 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Fri, 14 Apr 2023 10:11:14 -0700 Subject: [PATCH 14/46] Update license --- .../META-INF/LICENSE.txt | 202 ---------- .../META-INF/NOTICE.txt | 17 - .../META-INF/LICENSE.txt | 202 ---------- .../META-INF/NOTICE.txt | 5 - .../META-INF/LICENSE.txt | 202 ---------- .../META-INF/NOTICE.txt | 5 - .../META-INF/LICENSE | 202 ---------- .../META-INF/NOTICE | 17 - .../jackson-core-2.14.2.jar/META-INF/LICENSE | 202 ---------- .../jackson-core-2.14.2.jar/META-INF/NOTICE | 17 - .../META-INF/LICENSE | 202 ---------- .../META-INF/NOTICE | 17 - .../META-INF/LICENSE | 8 - licenses/jna-5.13.0.jar/META-INF/LICENSE | 26 -- .../jna-platform-5.13.0.jar/META-INF/LICENSE | 26 -- licenses/more-licenses.md | 362 ------------------ 16 files changed, 1712 deletions(-) delete mode 100644 licenses/commons-codec-1.15.jar/META-INF/LICENSE.txt delete mode 100644 licenses/commons-codec-1.15.jar/META-INF/NOTICE.txt delete mode 100644 licenses/commons-lang3-3.12.0.jar/META-INF/LICENSE.txt delete mode 100644 licenses/commons-lang3-3.12.0.jar/META-INF/NOTICE.txt delete mode 100644 licenses/commons-text-1.10.0.jar/META-INF/LICENSE.txt delete mode 100644 licenses/commons-text-1.10.0.jar/META-INF/NOTICE.txt delete mode 100644 licenses/jackson-annotations-2.14.2.jar/META-INF/LICENSE delete mode 100644 licenses/jackson-annotations-2.14.2.jar/META-INF/NOTICE delete mode 100644 licenses/jackson-core-2.14.2.jar/META-INF/LICENSE delete mode 100644 licenses/jackson-core-2.14.2.jar/META-INF/NOTICE delete mode 100644 licenses/jackson-databind-2.14.2.jar/META-INF/LICENSE delete mode 100644 licenses/jackson-databind-2.14.2.jar/META-INF/NOTICE delete mode 100644 licenses/jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE delete mode 100644 licenses/jna-5.13.0.jar/META-INF/LICENSE delete mode 100644 licenses/jna-platform-5.13.0.jar/META-INF/LICENSE delete mode 100644 licenses/more-licenses.md diff --git a/licenses/commons-codec-1.15.jar/META-INF/LICENSE.txt b/licenses/commons-codec-1.15.jar/META-INF/LICENSE.txt deleted file mode 100644 index d6456956733..00000000000 --- a/licenses/commons-codec-1.15.jar/META-INF/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/licenses/commons-codec-1.15.jar/META-INF/NOTICE.txt b/licenses/commons-codec-1.15.jar/META-INF/NOTICE.txt deleted file mode 100644 index 9899d2108a8..00000000000 --- a/licenses/commons-codec-1.15.jar/META-INF/NOTICE.txt +++ /dev/null @@ -1,17 +0,0 @@ -Apache Commons Codec -Copyright 2002-2020 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (https://www.apache.org/). - -src/test/org/apache/commons/codec/language/DoubleMetaphoneTest.java -contains test data from http://aspell.net/test/orig/batch0.tab. -Copyright (C) 2002 Kevin Atkinson (kevina@gnu.org) - -=============================================================================== - -The content of package org.apache.commons.codec.language.bm has been translated -from the original php source code available at http://stevemorse.org/phoneticinfo.htm -with permission from the original authors. -Original source copyright: -Copyright (c) 2008 Alexander Beider & Stephen P. Morse. diff --git a/licenses/commons-lang3-3.12.0.jar/META-INF/LICENSE.txt b/licenses/commons-lang3-3.12.0.jar/META-INF/LICENSE.txt deleted file mode 100644 index d6456956733..00000000000 --- a/licenses/commons-lang3-3.12.0.jar/META-INF/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/licenses/commons-lang3-3.12.0.jar/META-INF/NOTICE.txt b/licenses/commons-lang3-3.12.0.jar/META-INF/NOTICE.txt deleted file mode 100644 index 3d4c6906ab0..00000000000 --- a/licenses/commons-lang3-3.12.0.jar/META-INF/NOTICE.txt +++ /dev/null @@ -1,5 +0,0 @@ -Apache Commons Lang -Copyright 2001-2021 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (https://www.apache.org/). diff --git a/licenses/commons-text-1.10.0.jar/META-INF/LICENSE.txt b/licenses/commons-text-1.10.0.jar/META-INF/LICENSE.txt deleted file mode 100644 index d6456956733..00000000000 --- a/licenses/commons-text-1.10.0.jar/META-INF/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/licenses/commons-text-1.10.0.jar/META-INF/NOTICE.txt b/licenses/commons-text-1.10.0.jar/META-INF/NOTICE.txt deleted file mode 100644 index 4e1f8dbb8de..00000000000 --- a/licenses/commons-text-1.10.0.jar/META-INF/NOTICE.txt +++ /dev/null @@ -1,5 +0,0 @@ -Apache Commons Text -Copyright 2014-2022 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (https://www.apache.org/). diff --git a/licenses/jackson-annotations-2.14.2.jar/META-INF/LICENSE b/licenses/jackson-annotations-2.14.2.jar/META-INF/LICENSE deleted file mode 100644 index d6456956733..00000000000 --- a/licenses/jackson-annotations-2.14.2.jar/META-INF/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/licenses/jackson-annotations-2.14.2.jar/META-INF/NOTICE b/licenses/jackson-annotations-2.14.2.jar/META-INF/NOTICE deleted file mode 100644 index d226e890daa..00000000000 --- a/licenses/jackson-annotations-2.14.2.jar/META-INF/NOTICE +++ /dev/null @@ -1,17 +0,0 @@ -# Jackson JSON processor - -Jackson is a high-performance, Free/Open Source JSON processing library. -It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has -been in development since 2007. -It is currently developed by a community of developers. - -## Licensing - -Jackson 2.x core and extension components are licensed under Apache License 2.0 -To find the details that apply to this artifact see the accompanying LICENSE file. - -## Credits - -A list of contributors may be found from CREDITS(-2.x) file, which is included -in some artifacts (usually source distributions); but is always available -from the source code management (SCM) system project uses. diff --git a/licenses/jackson-core-2.14.2.jar/META-INF/LICENSE b/licenses/jackson-core-2.14.2.jar/META-INF/LICENSE deleted file mode 100644 index d6456956733..00000000000 --- a/licenses/jackson-core-2.14.2.jar/META-INF/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/licenses/jackson-core-2.14.2.jar/META-INF/NOTICE b/licenses/jackson-core-2.14.2.jar/META-INF/NOTICE deleted file mode 100644 index d226e890daa..00000000000 --- a/licenses/jackson-core-2.14.2.jar/META-INF/NOTICE +++ /dev/null @@ -1,17 +0,0 @@ -# Jackson JSON processor - -Jackson is a high-performance, Free/Open Source JSON processing library. -It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has -been in development since 2007. -It is currently developed by a community of developers. - -## Licensing - -Jackson 2.x core and extension components are licensed under Apache License 2.0 -To find the details that apply to this artifact see the accompanying LICENSE file. - -## Credits - -A list of contributors may be found from CREDITS(-2.x) file, which is included -in some artifacts (usually source distributions); but is always available -from the source code management (SCM) system project uses. diff --git a/licenses/jackson-databind-2.14.2.jar/META-INF/LICENSE b/licenses/jackson-databind-2.14.2.jar/META-INF/LICENSE deleted file mode 100644 index d6456956733..00000000000 --- a/licenses/jackson-databind-2.14.2.jar/META-INF/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/licenses/jackson-databind-2.14.2.jar/META-INF/NOTICE b/licenses/jackson-databind-2.14.2.jar/META-INF/NOTICE deleted file mode 100644 index d226e890daa..00000000000 --- a/licenses/jackson-databind-2.14.2.jar/META-INF/NOTICE +++ /dev/null @@ -1,17 +0,0 @@ -# Jackson JSON processor - -Jackson is a high-performance, Free/Open Source JSON processing library. -It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has -been in development since 2007. -It is currently developed by a community of developers. - -## Licensing - -Jackson 2.x core and extension components are licensed under Apache License 2.0 -To find the details that apply to this artifact see the accompanying LICENSE file. - -## Credits - -A list of contributors may be found from CREDITS(-2.x) file, which is included -in some artifacts (usually source distributions); but is always available -from the source code management (SCM) system project uses. diff --git a/licenses/jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE b/licenses/jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE deleted file mode 100644 index f5f45d26a49..00000000000 --- a/licenses/jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -This copy of Jackson JSON processor streaming parser/generator is licensed under the -Apache (Software) License, version 2.0 ("the License"). -See the License for details about distribution rights, and the -specific rights regarding derivate works. - -You may obtain a copy of the License at: - -http://www.apache.org/licenses/LICENSE-2.0 diff --git a/licenses/jna-5.13.0.jar/META-INF/LICENSE b/licenses/jna-5.13.0.jar/META-INF/LICENSE deleted file mode 100644 index c5a025f0c3e..00000000000 --- a/licenses/jna-5.13.0.jar/META-INF/LICENSE +++ /dev/null @@ -1,26 +0,0 @@ -SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1 - -Java Native Access (JNA) is licensed under the LGPL, version 2.1 -or later, or (from version 4.0 onward) the Apache License, -version 2.0. - -You can freely decide which license you want to apply to the project. - -You may obtain a copy of the LGPL License at: - -http://www.gnu.org/licenses/licenses.html - -A copy is also included in the downloadable source code package -containing JNA, in file "LGPL2.1", under the same directory -as this file. - -You may obtain a copy of the Apache License at: - -http://www.apache.org/licenses/ - -A copy is also included in the downloadable source code package -containing JNA, in file "AL2.0", under the same directory -as this file. - -Commercial support may be available, please e-mail -twall[at]users[dot]sf[dot]net. diff --git a/licenses/jna-platform-5.13.0.jar/META-INF/LICENSE b/licenses/jna-platform-5.13.0.jar/META-INF/LICENSE deleted file mode 100644 index c5a025f0c3e..00000000000 --- a/licenses/jna-platform-5.13.0.jar/META-INF/LICENSE +++ /dev/null @@ -1,26 +0,0 @@ -SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1 - -Java Native Access (JNA) is licensed under the LGPL, version 2.1 -or later, or (from version 4.0 onward) the Apache License, -version 2.0. - -You can freely decide which license you want to apply to the project. - -You may obtain a copy of the LGPL License at: - -http://www.gnu.org/licenses/licenses.html - -A copy is also included in the downloadable source code package -containing JNA, in file "LGPL2.1", under the same directory -as this file. - -You may obtain a copy of the Apache License at: - -http://www.apache.org/licenses/ - -A copy is also included in the downloadable source code package -containing JNA, in file "AL2.0", under the same directory -as this file. - -Commercial support may be available, please e-mail -twall[at]users[dot]sf[dot]net. diff --git a/licenses/more-licenses.md b/licenses/more-licenses.md deleted file mode 100644 index 845ca82570a..00000000000 --- a/licenses/more-licenses.md +++ /dev/null @@ -1,362 +0,0 @@ - -#agent -##Dependency License Report -_2023-04-12 15:55:54 UTC_ -## Apache License, Version 2.0 - -**1** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.14.2` -> - **Project URL**: [/~https://github.com/FasterXML/jackson](/~https://github.com/FasterXML/jackson) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [jackson-annotations-2.14.2.jar/META-INF/LICENSE](jackson-annotations-2.14.2.jar/META-INF/LICENSE) - - [jackson-annotations-2.14.2.jar/META-INF/NOTICE](jackson-annotations-2.14.2.jar/META-INF/NOTICE) - -**2** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-core` **Version:** `2.14.2` -> - **Project URL**: [/~https://github.com/FasterXML/jackson-core](/~https://github.com/FasterXML/jackson-core) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [jackson-core-2.14.2.jar/META-INF/LICENSE](jackson-core-2.14.2.jar/META-INF/LICENSE) - - [jackson-core-2.14.2.jar/META-INF/NOTICE](jackson-core-2.14.2.jar/META-INF/NOTICE) - -**3** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-databind` **Version:** `2.14.2` -> - **Project URL**: [/~https://github.com/FasterXML/jackson](/~https://github.com/FasterXML/jackson) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [jackson-databind-2.14.2.jar/META-INF/LICENSE](jackson-databind-2.14.2.jar/META-INF/LICENSE) - - [jackson-databind-2.14.2.jar/META-INF/NOTICE](jackson-databind-2.14.2.jar/META-INF/NOTICE) - -**4** **Group:** `com.fasterxml.jackson.datatype` **Name:** `jackson-datatype-jsr310` **Version:** `2.14.2` -> - **Manifest Project URL**: [/~https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310](/~https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE](jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE) - -**5** **Group:** `com.github.stephenc.jcip` **Name:** `jcip-annotations` **Version:** `1.0-1` -> - **POM Project URL**: [http://stephenc.github.com/jcip-annotations](http://stephenc.github.com/jcip-annotations) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**6** **Group:** `com.google.errorprone` **Name:** `error_prone_annotations` **Version:** `2.18.0` -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**7** **Group:** `com.nimbusds` **Name:** `content-type` **Version:** `2.2` -> - **Manifest Project URL**: [https://connect2id.com](https://connect2id.com) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM Project URL**: [https://bitbucket.org/connect2id/nimbus-content-type](https://bitbucket.org/connect2id/nimbus-content-type) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**8** **Group:** `com.nimbusds` **Name:** `lang-tag` **Version:** `1.6` -> - **Manifest Project URL**: [https://connect2id.com/](https://connect2id.com/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM Project URL**: [https://bitbucket.org/connect2id/nimbus-language-tags](https://bitbucket.org/connect2id/nimbus-language-tags) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**9** **Group:** `com.nimbusds` **Name:** `nimbus-jose-jwt` **Version:** `9.22` -> - **Manifest Project URL**: [https://connect2id.com](https://connect2id.com) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM Project URL**: [https://bitbucket.org/connect2id/nimbus-jose-jwt](https://bitbucket.org/connect2id/nimbus-jose-jwt) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**10** **Group:** `com.nimbusds` **Name:** `oauth2-oidc-sdk` **Version:** `9.35` -> - **Manifest Project URL**: [https://connect2id.com](https://connect2id.com) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM Project URL**: [https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions](https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**11** **Group:** `com.squareup.moshi` **Name:** `moshi` **Version:** `1.11.0` -> - **POM Project URL**: [/~https://github.com/square/moshi/](/~https://github.com/square/moshi/) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**12** **Group:** `com.squareup.moshi` **Name:** `moshi-adapters` **Version:** `1.11.0` -> - **POM Project URL**: [/~https://github.com/square/moshi/](/~https://github.com/square/moshi/) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**13** **Group:** `com.squareup.okio` **Name:** `okio` **Version:** `1.17.5` -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**14** **Group:** `commons-codec` **Name:** `commons-codec` **Version:** `1.15` -> - **Project URL**: [https://commons.apache.org/proper/commons-codec/](https://commons.apache.org/proper/commons-codec/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [commons-codec-1.15.jar/META-INF/LICENSE.txt](commons-codec-1.15.jar/META-INF/LICENSE.txt) - - [commons-codec-1.15.jar/META-INF/NOTICE.txt](commons-codec-1.15.jar/META-INF/NOTICE.txt) - -**15** **Group:** `io.netty` **Name:** `netty-buffer` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**16** **Group:** `io.netty` **Name:** `netty-codec` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**17** **Group:** `io.netty` **Name:** `netty-codec-dns` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**18** **Group:** `io.netty` **Name:** `netty-codec-http` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**19** **Group:** `io.netty` **Name:** `netty-codec-http2` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**20** **Group:** `io.netty` **Name:** `netty-codec-socks` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**21** **Group:** `io.netty` **Name:** `netty-common` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**22** **Group:** `io.netty` **Name:** `netty-handler` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**23** **Group:** `io.netty` **Name:** `netty-handler-proxy` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**24** **Group:** `io.netty` **Name:** `netty-resolver` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**25** **Group:** `io.netty` **Name:** `netty-resolver-dns` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**26** **Group:** `io.netty` **Name:** `netty-resolver-dns-classes-macos` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**27** **Group:** `io.netty` **Name:** `netty-resolver-dns-native-macos` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**28** **Group:** `io.netty` **Name:** `netty-tcnative-boringssl-static` **Version:** `2.0.59.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM Project URL**: [/~https://github.com/netty/netty-tcnative/netty-tcnative-boringssl-static/](/~https://github.com/netty/netty-tcnative/netty-tcnative-boringssl-static/) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**29** **Group:** `io.netty` **Name:** `netty-tcnative-classes` **Version:** `2.0.59.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**30** **Group:** `io.netty` **Name:** `netty-transport` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**31** **Group:** `io.netty` **Name:** `netty-transport-classes-epoll` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**32** **Group:** `io.netty` **Name:** `netty-transport-classes-kqueue` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**33** **Group:** `io.netty` **Name:** `netty-transport-native-epoll` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**34** **Group:** `io.netty` **Name:** `netty-transport-native-kqueue` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**35** **Group:** `io.netty` **Name:** `netty-transport-native-unix-common` **Version:** `4.1.91.Final` -> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**36** **Group:** `io.projectreactor` **Name:** `reactor-core` **Version:** `3.5.5` -> - **POM Project URL**: [/~https://github.com/reactor/reactor-core](/~https://github.com/reactor/reactor-core) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**37** **Group:** `io.projectreactor.netty` **Name:** `reactor-netty-core` **Version:** `1.1.6` -> - **POM Project URL**: [/~https://github.com/reactor/reactor-netty](/~https://github.com/reactor/reactor-netty) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**38** **Group:** `io.projectreactor.netty` **Name:** `reactor-netty-http` **Version:** `1.1.6` -> - **POM Project URL**: [/~https://github.com/reactor/reactor-netty](/~https://github.com/reactor/reactor-netty) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**39** **Group:** `net.java.dev.jna` **Name:** `jna` **Version:** `5.13.0` -> - **POM Project URL**: [/~https://github.com/java-native-access/jna](/~https://github.com/java-native-access/jna) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) -> - **Embedded license files**: [jna-5.13.0.jar/META-INF/LICENSE](jna-5.13.0.jar/META-INF/LICENSE) - -**40** **Group:** `net.java.dev.jna` **Name:** `jna-platform` **Version:** `5.13.0` -> - **POM Project URL**: [/~https://github.com/java-native-access/jna](/~https://github.com/java-native-access/jna) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) -> - **Embedded license files**: [jna-platform-5.13.0.jar/META-INF/LICENSE](jna-platform-5.13.0.jar/META-INF/LICENSE) - -**41** **Group:** `net.minidev` **Name:** `accessors-smart` **Version:** `2.4.9` -> - **Project URL**: [https://urielch.github.io/](https://urielch.github.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**42** **Group:** `net.minidev` **Name:** `json-smart` **Version:** `2.4.10` -> - **Project URL**: [https://urielch.github.io/](https://urielch.github.io/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -**43** **Group:** `org.apache.commons` **Name:** `commons-lang3` **Version:** `3.12.0` -> - **Project URL**: [https://commons.apache.org/proper/commons-lang/](https://commons.apache.org/proper/commons-lang/) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [commons-lang3-3.12.0.jar/META-INF/LICENSE.txt](commons-lang3-3.12.0.jar/META-INF/LICENSE.txt) - - [commons-lang3-3.12.0.jar/META-INF/NOTICE.txt](commons-lang3-3.12.0.jar/META-INF/NOTICE.txt) - -**44** **Group:** `org.apache.commons` **Name:** `commons-text` **Version:** `1.10.0` -> - **Project URL**: [https://commons.apache.org/proper/commons-text](https://commons.apache.org/proper/commons-text) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [commons-text-1.10.0.jar/META-INF/LICENSE.txt](commons-text-1.10.0.jar/META-INF/LICENSE.txt) - - [commons-text-1.10.0.jar/META-INF/NOTICE.txt](commons-text-1.10.0.jar/META-INF/NOTICE.txt) - -**45** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `1.7.36` -> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -## Eclipse Public License - v 1.0 - -**46** **Group:** `ch.qos.logback` **Name:** `logback-classic` **Version:** `1.2.12` -> - **Manifest Project URL**: [http://www.qos.ch](http://www.qos.ch) -> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) -> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) - -**47** **Group:** `ch.qos.logback` **Name:** `logback-core` **Version:** `1.2.12` -> - **Manifest Project URL**: [http://www.qos.ch](http://www.qos.ch) -> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) -> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) - -**48** **Group:** `ch.qos.logback.contrib` **Name:** `logback-json-classic` **Version:** `0.1.5` -> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) -> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) - -**49** **Group:** `ch.qos.logback.contrib` **Name:** `logback-json-core` **Version:** `0.1.5` -> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) -> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) - -## GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - -**50** **Group:** `ch.qos.logback` **Name:** `logback-classic` **Version:** `1.2.12` -> - **Manifest Project URL**: [http://www.qos.ch](http://www.qos.ch) -> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) -> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) - -**51** **Group:** `ch.qos.logback` **Name:** `logback-core` **Version:** `1.2.12` -> - **Manifest Project URL**: [http://www.qos.ch](http://www.qos.ch) -> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) -> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) - -**52** **Group:** `ch.qos.logback.contrib` **Name:** `logback-json-classic` **Version:** `0.1.5` -> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) -> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) - -**53** **Group:** `ch.qos.logback.contrib` **Name:** `logback-json-core` **Version:** `0.1.5` -> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) -> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) - -**54** **Group:** `net.java.dev.jna` **Name:** `jna` **Version:** `5.13.0` -> - **POM Project URL**: [/~https://github.com/java-native-access/jna](/~https://github.com/java-native-access/jna) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) -> - **Embedded license files**: [jna-5.13.0.jar/META-INF/LICENSE](jna-5.13.0.jar/META-INF/LICENSE) - -**55** **Group:** `net.java.dev.jna` **Name:** `jna-platform` **Version:** `5.13.0` -> - **POM Project URL**: [/~https://github.com/java-native-access/jna](/~https://github.com/java-native-access/jna) -> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) -> - **Embedded license files**: [jna-platform-5.13.0.jar/META-INF/LICENSE](jna-platform-5.13.0.jar/META-INF/LICENSE) - -## MIT License - -**56** **Group:** `com.azure` **Name:** `azure-core` **Version:** `1.37.0` -> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**57** **Group:** `com.azure` **Name:** `azure-core-http-netty` **Version:** `1.13.1` -> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**58** **Group:** `com.azure` **Name:** `azure-identity` **Version:** `1.8.1` -> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**59** **Group:** `com.azure` **Name:** `azure-storage-blob` **Version:** `12.21.1` -> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**60** **Group:** `com.azure` **Name:** `azure-storage-common` **Version:** `12.20.1` -> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**61** **Group:** `com.azure` **Name:** `azure-storage-internal-avro` **Version:** `12.6.1` -> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**62** **Group:** `com.github.oshi` **Name:** `oshi-core` **Version:** `6.4.1` -> - **Manifest Project URL**: [/~https://github.com/oshi/oshi/oshi-core](/~https://github.com/oshi/oshi/oshi-core) -> - **Manifest License**: "SPDX-License-Identifier: MIT";link="https://opensource.org/licenses/MIT" (Not Packaged) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**63** **Group:** `com.microsoft.azure` **Name:** `msal4j` **Version:** `1.13.5` -> - **Project URL**: [/~https://github.com/AzureAD/microsoft-authentication-library-for-java](/~https://github.com/AzureAD/microsoft-authentication-library-for-java) -> - **Manifest License**: "MIT License" (Not Packaged) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**64** **Group:** `com.microsoft.azure` **Name:** `msal4j-persistence-extension` **Version:** `1.1.0` -> - **POM Project URL**: [/~https://github.com/AzureAD/microsoft-authentication-extensions-for-java](/~https://github.com/AzureAD/microsoft-authentication-extensions-for-java) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**65** **Group:** `com.microsoft.jfr` **Name:** `jfr-streaming` **Version:** `1.2.0` -> - **POM Project URL**: [/~https://github.com/Microsoft/jfr-streaming](/~https://github.com/Microsoft/jfr-streaming) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**66** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `1.7.36` -> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -**67** **Group:** `org.slf4j` **Name:** `slf4j-api` **Version:** `1.7.36` -> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) -> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) - -## MIT-0 - -**68** **Group:** `org.reactivestreams` **Name:** `reactive-streams` **Version:** `1.0.4` -> - **Manifest Project URL**: [http://reactive-streams.org](http://reactive-streams.org) -> - **POM Project URL**: [http://www.reactive-streams.org/](http://www.reactive-streams.org/) -> - **POM License**: MIT-0 - [https://spdx.org/licenses/MIT-0.html](https://spdx.org/licenses/MIT-0.html) - - From f5365f185a0d183e36cfbeb1e9d05acd279fb44b Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Fri, 14 Apr 2023 10:11:42 -0700 Subject: [PATCH 15/46] Fix --- .../agent/internal/init/FirstEntryPoint.java | 5 +++++ .../agent/internal/init/Slf4jInternalLogger.java | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java index 3fdbbf77f35..0c72faa5b26 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java @@ -66,6 +66,11 @@ public static String getAgentVersion() { return agentVersion; } + @Override + public String name() { + return "FirstEntryPoint"; + } + @Override public void init() { try { diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/Slf4jInternalLogger.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/Slf4jInternalLogger.java index 2a569f645af..a24768d2c55 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/Slf4jInternalLogger.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/Slf4jInternalLogger.java @@ -8,7 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class Slf4jInternalLogger extends InternalLogger { +public class Slf4jInternalLogger implements InternalLogger { static Slf4jInternalLogger create(String name) { return new Slf4jInternalLogger(name); @@ -21,7 +21,7 @@ static Slf4jInternalLogger create(String name) { } @Override - protected boolean isLoggable(InternalLogger.Level level) { + public boolean isLoggable(Level level) { switch (level) { case TRACE: return logger.isTraceEnabled(); @@ -38,7 +38,7 @@ protected boolean isLoggable(InternalLogger.Level level) { } @Override - protected void log(InternalLogger.Level level, String message, @Nullable Throwable error) { + public void log(Level level, String message, @Nullable Throwable error) { switch (level) { case TRACE: logger.trace(message, error); @@ -60,7 +60,7 @@ protected void log(InternalLogger.Level level, String message, @Nullable Throwab } @Override - protected String name() { + public String name() { return logger.getName(); } } From ab8e24313346fd12bd1840bd8b5f110a42f7b677 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Fri, 14 Apr 2023 10:17:38 -0700 Subject: [PATCH 16/46] Fix licenses --- .../META-INF/LICENSE.txt | 202 ++++++++++ .../META-INF/NOTICE.txt | 17 + .../META-INF/LICENSE.txt | 202 ++++++++++ .../META-INF/NOTICE.txt | 5 + .../META-INF/LICENSE.txt | 202 ++++++++++ .../META-INF/NOTICE.txt | 5 + .../META-INF/LICENSE | 202 ++++++++++ .../META-INF/NOTICE | 17 + .../jackson-core-2.14.2.jar/META-INF/LICENSE | 202 ++++++++++ .../jackson-core-2.14.2.jar/META-INF/NOTICE | 17 + .../META-INF/LICENSE | 202 ++++++++++ .../META-INF/NOTICE | 17 + .../META-INF/LICENSE | 8 + licenses/jna-5.13.0.jar/META-INF/LICENSE | 26 ++ .../jna-platform-5.13.0.jar/META-INF/LICENSE | 26 ++ licenses/more-licenses.md | 362 ++++++++++++++++++ 16 files changed, 1712 insertions(+) create mode 100644 licenses/commons-codec-1.15.jar/META-INF/LICENSE.txt create mode 100644 licenses/commons-codec-1.15.jar/META-INF/NOTICE.txt create mode 100644 licenses/commons-lang3-3.12.0.jar/META-INF/LICENSE.txt create mode 100644 licenses/commons-lang3-3.12.0.jar/META-INF/NOTICE.txt create mode 100644 licenses/commons-text-1.10.0.jar/META-INF/LICENSE.txt create mode 100644 licenses/commons-text-1.10.0.jar/META-INF/NOTICE.txt create mode 100644 licenses/jackson-annotations-2.14.2.jar/META-INF/LICENSE create mode 100644 licenses/jackson-annotations-2.14.2.jar/META-INF/NOTICE create mode 100644 licenses/jackson-core-2.14.2.jar/META-INF/LICENSE create mode 100644 licenses/jackson-core-2.14.2.jar/META-INF/NOTICE create mode 100644 licenses/jackson-databind-2.14.2.jar/META-INF/LICENSE create mode 100644 licenses/jackson-databind-2.14.2.jar/META-INF/NOTICE create mode 100644 licenses/jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE create mode 100644 licenses/jna-5.13.0.jar/META-INF/LICENSE create mode 100644 licenses/jna-platform-5.13.0.jar/META-INF/LICENSE create mode 100644 licenses/more-licenses.md diff --git a/licenses/commons-codec-1.15.jar/META-INF/LICENSE.txt b/licenses/commons-codec-1.15.jar/META-INF/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/licenses/commons-codec-1.15.jar/META-INF/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/commons-codec-1.15.jar/META-INF/NOTICE.txt b/licenses/commons-codec-1.15.jar/META-INF/NOTICE.txt new file mode 100644 index 00000000000..9899d2108a8 --- /dev/null +++ b/licenses/commons-codec-1.15.jar/META-INF/NOTICE.txt @@ -0,0 +1,17 @@ +Apache Commons Codec +Copyright 2002-2020 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + +src/test/org/apache/commons/codec/language/DoubleMetaphoneTest.java +contains test data from http://aspell.net/test/orig/batch0.tab. +Copyright (C) 2002 Kevin Atkinson (kevina@gnu.org) + +=============================================================================== + +The content of package org.apache.commons.codec.language.bm has been translated +from the original php source code available at http://stevemorse.org/phoneticinfo.htm +with permission from the original authors. +Original source copyright: +Copyright (c) 2008 Alexander Beider & Stephen P. Morse. diff --git a/licenses/commons-lang3-3.12.0.jar/META-INF/LICENSE.txt b/licenses/commons-lang3-3.12.0.jar/META-INF/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/licenses/commons-lang3-3.12.0.jar/META-INF/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/commons-lang3-3.12.0.jar/META-INF/NOTICE.txt b/licenses/commons-lang3-3.12.0.jar/META-INF/NOTICE.txt new file mode 100644 index 00000000000..3d4c6906ab0 --- /dev/null +++ b/licenses/commons-lang3-3.12.0.jar/META-INF/NOTICE.txt @@ -0,0 +1,5 @@ +Apache Commons Lang +Copyright 2001-2021 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). diff --git a/licenses/commons-text-1.10.0.jar/META-INF/LICENSE.txt b/licenses/commons-text-1.10.0.jar/META-INF/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/licenses/commons-text-1.10.0.jar/META-INF/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/commons-text-1.10.0.jar/META-INF/NOTICE.txt b/licenses/commons-text-1.10.0.jar/META-INF/NOTICE.txt new file mode 100644 index 00000000000..4e1f8dbb8de --- /dev/null +++ b/licenses/commons-text-1.10.0.jar/META-INF/NOTICE.txt @@ -0,0 +1,5 @@ +Apache Commons Text +Copyright 2014-2022 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). diff --git a/licenses/jackson-annotations-2.14.2.jar/META-INF/LICENSE b/licenses/jackson-annotations-2.14.2.jar/META-INF/LICENSE new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/licenses/jackson-annotations-2.14.2.jar/META-INF/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/jackson-annotations-2.14.2.jar/META-INF/NOTICE b/licenses/jackson-annotations-2.14.2.jar/META-INF/NOTICE new file mode 100644 index 00000000000..d226e890daa --- /dev/null +++ b/licenses/jackson-annotations-2.14.2.jar/META-INF/NOTICE @@ -0,0 +1,17 @@ +# Jackson JSON processor + +Jackson is a high-performance, Free/Open Source JSON processing library. +It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has +been in development since 2007. +It is currently developed by a community of developers. + +## Licensing + +Jackson 2.x core and extension components are licensed under Apache License 2.0 +To find the details that apply to this artifact see the accompanying LICENSE file. + +## Credits + +A list of contributors may be found from CREDITS(-2.x) file, which is included +in some artifacts (usually source distributions); but is always available +from the source code management (SCM) system project uses. diff --git a/licenses/jackson-core-2.14.2.jar/META-INF/LICENSE b/licenses/jackson-core-2.14.2.jar/META-INF/LICENSE new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/licenses/jackson-core-2.14.2.jar/META-INF/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/jackson-core-2.14.2.jar/META-INF/NOTICE b/licenses/jackson-core-2.14.2.jar/META-INF/NOTICE new file mode 100644 index 00000000000..d226e890daa --- /dev/null +++ b/licenses/jackson-core-2.14.2.jar/META-INF/NOTICE @@ -0,0 +1,17 @@ +# Jackson JSON processor + +Jackson is a high-performance, Free/Open Source JSON processing library. +It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has +been in development since 2007. +It is currently developed by a community of developers. + +## Licensing + +Jackson 2.x core and extension components are licensed under Apache License 2.0 +To find the details that apply to this artifact see the accompanying LICENSE file. + +## Credits + +A list of contributors may be found from CREDITS(-2.x) file, which is included +in some artifacts (usually source distributions); but is always available +from the source code management (SCM) system project uses. diff --git a/licenses/jackson-databind-2.14.2.jar/META-INF/LICENSE b/licenses/jackson-databind-2.14.2.jar/META-INF/LICENSE new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/licenses/jackson-databind-2.14.2.jar/META-INF/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/jackson-databind-2.14.2.jar/META-INF/NOTICE b/licenses/jackson-databind-2.14.2.jar/META-INF/NOTICE new file mode 100644 index 00000000000..d226e890daa --- /dev/null +++ b/licenses/jackson-databind-2.14.2.jar/META-INF/NOTICE @@ -0,0 +1,17 @@ +# Jackson JSON processor + +Jackson is a high-performance, Free/Open Source JSON processing library. +It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has +been in development since 2007. +It is currently developed by a community of developers. + +## Licensing + +Jackson 2.x core and extension components are licensed under Apache License 2.0 +To find the details that apply to this artifact see the accompanying LICENSE file. + +## Credits + +A list of contributors may be found from CREDITS(-2.x) file, which is included +in some artifacts (usually source distributions); but is always available +from the source code management (SCM) system project uses. diff --git a/licenses/jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE b/licenses/jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE new file mode 100644 index 00000000000..f5f45d26a49 --- /dev/null +++ b/licenses/jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE @@ -0,0 +1,8 @@ +This copy of Jackson JSON processor streaming parser/generator is licensed under the +Apache (Software) License, version 2.0 ("the License"). +See the License for details about distribution rights, and the +specific rights regarding derivate works. + +You may obtain a copy of the License at: + +http://www.apache.org/licenses/LICENSE-2.0 diff --git a/licenses/jna-5.13.0.jar/META-INF/LICENSE b/licenses/jna-5.13.0.jar/META-INF/LICENSE new file mode 100644 index 00000000000..c5a025f0c3e --- /dev/null +++ b/licenses/jna-5.13.0.jar/META-INF/LICENSE @@ -0,0 +1,26 @@ +SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1 + +Java Native Access (JNA) is licensed under the LGPL, version 2.1 +or later, or (from version 4.0 onward) the Apache License, +version 2.0. + +You can freely decide which license you want to apply to the project. + +You may obtain a copy of the LGPL License at: + +http://www.gnu.org/licenses/licenses.html + +A copy is also included in the downloadable source code package +containing JNA, in file "LGPL2.1", under the same directory +as this file. + +You may obtain a copy of the Apache License at: + +http://www.apache.org/licenses/ + +A copy is also included in the downloadable source code package +containing JNA, in file "AL2.0", under the same directory +as this file. + +Commercial support may be available, please e-mail +twall[at]users[dot]sf[dot]net. diff --git a/licenses/jna-platform-5.13.0.jar/META-INF/LICENSE b/licenses/jna-platform-5.13.0.jar/META-INF/LICENSE new file mode 100644 index 00000000000..c5a025f0c3e --- /dev/null +++ b/licenses/jna-platform-5.13.0.jar/META-INF/LICENSE @@ -0,0 +1,26 @@ +SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1 + +Java Native Access (JNA) is licensed under the LGPL, version 2.1 +or later, or (from version 4.0 onward) the Apache License, +version 2.0. + +You can freely decide which license you want to apply to the project. + +You may obtain a copy of the LGPL License at: + +http://www.gnu.org/licenses/licenses.html + +A copy is also included in the downloadable source code package +containing JNA, in file "LGPL2.1", under the same directory +as this file. + +You may obtain a copy of the Apache License at: + +http://www.apache.org/licenses/ + +A copy is also included in the downloadable source code package +containing JNA, in file "AL2.0", under the same directory +as this file. + +Commercial support may be available, please e-mail +twall[at]users[dot]sf[dot]net. diff --git a/licenses/more-licenses.md b/licenses/more-licenses.md new file mode 100644 index 00000000000..cc251e07db5 --- /dev/null +++ b/licenses/more-licenses.md @@ -0,0 +1,362 @@ + +#agent +##Dependency License Report +_2023-04-14 10:16:38 PDT_ +## Apache License, Version 2.0 + +**1** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.14.2` +> - **Project URL**: [/~https://github.com/FasterXML/jackson](/~https://github.com/FasterXML/jackson) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) +> - **Embedded license files**: [jackson-annotations-2.14.2.jar/META-INF/LICENSE](jackson-annotations-2.14.2.jar/META-INF/LICENSE) + - [jackson-annotations-2.14.2.jar/META-INF/NOTICE](jackson-annotations-2.14.2.jar/META-INF/NOTICE) + +**2** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-core` **Version:** `2.14.2` +> - **Project URL**: [/~https://github.com/FasterXML/jackson-core](/~https://github.com/FasterXML/jackson-core) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) +> - **Embedded license files**: [jackson-core-2.14.2.jar/META-INF/LICENSE](jackson-core-2.14.2.jar/META-INF/LICENSE) + - [jackson-core-2.14.2.jar/META-INF/NOTICE](jackson-core-2.14.2.jar/META-INF/NOTICE) + +**3** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-databind` **Version:** `2.14.2` +> - **Project URL**: [/~https://github.com/FasterXML/jackson](/~https://github.com/FasterXML/jackson) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) +> - **Embedded license files**: [jackson-databind-2.14.2.jar/META-INF/LICENSE](jackson-databind-2.14.2.jar/META-INF/LICENSE) + - [jackson-databind-2.14.2.jar/META-INF/NOTICE](jackson-databind-2.14.2.jar/META-INF/NOTICE) + +**4** **Group:** `com.fasterxml.jackson.datatype` **Name:** `jackson-datatype-jsr310` **Version:** `2.14.2` +> - **Manifest Project URL**: [/~https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310](/~https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) +> - **Embedded license files**: [jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE](jackson-datatype-jsr310-2.14.2.jar/META-INF/LICENSE) + +**5** **Group:** `com.github.stephenc.jcip` **Name:** `jcip-annotations` **Version:** `1.0-1` +> - **POM Project URL**: [http://stephenc.github.com/jcip-annotations](http://stephenc.github.com/jcip-annotations) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**6** **Group:** `com.google.errorprone` **Name:** `error_prone_annotations` **Version:** `2.18.0` +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**7** **Group:** `com.nimbusds` **Name:** `content-type` **Version:** `2.2` +> - **Manifest Project URL**: [https://connect2id.com](https://connect2id.com) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM Project URL**: [https://bitbucket.org/connect2id/nimbus-content-type](https://bitbucket.org/connect2id/nimbus-content-type) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**8** **Group:** `com.nimbusds` **Name:** `lang-tag` **Version:** `1.6` +> - **Manifest Project URL**: [https://connect2id.com/](https://connect2id.com/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM Project URL**: [https://bitbucket.org/connect2id/nimbus-language-tags](https://bitbucket.org/connect2id/nimbus-language-tags) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**9** **Group:** `com.nimbusds` **Name:** `nimbus-jose-jwt` **Version:** `9.22` +> - **Manifest Project URL**: [https://connect2id.com](https://connect2id.com) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM Project URL**: [https://bitbucket.org/connect2id/nimbus-jose-jwt](https://bitbucket.org/connect2id/nimbus-jose-jwt) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**10** **Group:** `com.nimbusds` **Name:** `oauth2-oidc-sdk` **Version:** `9.35` +> - **Manifest Project URL**: [https://connect2id.com](https://connect2id.com) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM Project URL**: [https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions](https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**11** **Group:** `com.squareup.moshi` **Name:** `moshi` **Version:** `1.11.0` +> - **POM Project URL**: [/~https://github.com/square/moshi/](/~https://github.com/square/moshi/) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**12** **Group:** `com.squareup.moshi` **Name:** `moshi-adapters` **Version:** `1.11.0` +> - **POM Project URL**: [/~https://github.com/square/moshi/](/~https://github.com/square/moshi/) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**13** **Group:** `com.squareup.okio` **Name:** `okio` **Version:** `1.17.5` +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**14** **Group:** `commons-codec` **Name:** `commons-codec` **Version:** `1.15` +> - **Project URL**: [https://commons.apache.org/proper/commons-codec/](https://commons.apache.org/proper/commons-codec/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) +> - **Embedded license files**: [commons-codec-1.15.jar/META-INF/LICENSE.txt](commons-codec-1.15.jar/META-INF/LICENSE.txt) + - [commons-codec-1.15.jar/META-INF/NOTICE.txt](commons-codec-1.15.jar/META-INF/NOTICE.txt) + +**15** **Group:** `io.netty` **Name:** `netty-buffer` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**16** **Group:** `io.netty` **Name:** `netty-codec` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**17** **Group:** `io.netty` **Name:** `netty-codec-dns` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**18** **Group:** `io.netty` **Name:** `netty-codec-http` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**19** **Group:** `io.netty` **Name:** `netty-codec-http2` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**20** **Group:** `io.netty` **Name:** `netty-codec-socks` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**21** **Group:** `io.netty` **Name:** `netty-common` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**22** **Group:** `io.netty` **Name:** `netty-handler` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**23** **Group:** `io.netty` **Name:** `netty-handler-proxy` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**24** **Group:** `io.netty` **Name:** `netty-resolver` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**25** **Group:** `io.netty` **Name:** `netty-resolver-dns` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**26** **Group:** `io.netty` **Name:** `netty-resolver-dns-classes-macos` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**27** **Group:** `io.netty` **Name:** `netty-resolver-dns-native-macos` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**28** **Group:** `io.netty` **Name:** `netty-tcnative-boringssl-static` **Version:** `2.0.59.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM Project URL**: [/~https://github.com/netty/netty-tcnative/netty-tcnative-boringssl-static/](/~https://github.com/netty/netty-tcnative/netty-tcnative-boringssl-static/) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**29** **Group:** `io.netty` **Name:** `netty-tcnative-classes` **Version:** `2.0.59.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**30** **Group:** `io.netty` **Name:** `netty-transport` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**31** **Group:** `io.netty` **Name:** `netty-transport-classes-epoll` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**32** **Group:** `io.netty` **Name:** `netty-transport-classes-kqueue` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**33** **Group:** `io.netty` **Name:** `netty-transport-native-epoll` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**34** **Group:** `io.netty` **Name:** `netty-transport-native-kqueue` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**35** **Group:** `io.netty` **Name:** `netty-transport-native-unix-common` **Version:** `4.1.91.Final` +> - **Manifest Project URL**: [https://netty.io/](https://netty.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**36** **Group:** `io.projectreactor` **Name:** `reactor-core` **Version:** `3.5.5` +> - **POM Project URL**: [/~https://github.com/reactor/reactor-core](/~https://github.com/reactor/reactor-core) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**37** **Group:** `io.projectreactor.netty` **Name:** `reactor-netty-core` **Version:** `1.1.6` +> - **POM Project URL**: [/~https://github.com/reactor/reactor-netty](/~https://github.com/reactor/reactor-netty) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**38** **Group:** `io.projectreactor.netty` **Name:** `reactor-netty-http` **Version:** `1.1.6` +> - **POM Project URL**: [/~https://github.com/reactor/reactor-netty](/~https://github.com/reactor/reactor-netty) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**39** **Group:** `net.java.dev.jna` **Name:** `jna` **Version:** `5.13.0` +> - **POM Project URL**: [/~https://github.com/java-native-access/jna](/~https://github.com/java-native-access/jna) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) +> - **Embedded license files**: [jna-5.13.0.jar/META-INF/LICENSE](jna-5.13.0.jar/META-INF/LICENSE) + +**40** **Group:** `net.java.dev.jna` **Name:** `jna-platform` **Version:** `5.13.0` +> - **POM Project URL**: [/~https://github.com/java-native-access/jna](/~https://github.com/java-native-access/jna) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) +> - **Embedded license files**: [jna-platform-5.13.0.jar/META-INF/LICENSE](jna-platform-5.13.0.jar/META-INF/LICENSE) + +**41** **Group:** `net.minidev` **Name:** `accessors-smart` **Version:** `2.4.9` +> - **Project URL**: [https://urielch.github.io/](https://urielch.github.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**42** **Group:** `net.minidev` **Name:** `json-smart` **Version:** `2.4.10` +> - **Project URL**: [https://urielch.github.io/](https://urielch.github.io/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**43** **Group:** `org.apache.commons` **Name:** `commons-lang3` **Version:** `3.12.0` +> - **Project URL**: [https://commons.apache.org/proper/commons-lang/](https://commons.apache.org/proper/commons-lang/) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) +> - **Embedded license files**: [commons-lang3-3.12.0.jar/META-INF/LICENSE.txt](commons-lang3-3.12.0.jar/META-INF/LICENSE.txt) + - [commons-lang3-3.12.0.jar/META-INF/NOTICE.txt](commons-lang3-3.12.0.jar/META-INF/NOTICE.txt) + +**44** **Group:** `org.apache.commons` **Name:** `commons-text` **Version:** `1.10.0` +> - **Project URL**: [https://commons.apache.org/proper/commons-text](https://commons.apache.org/proper/commons-text) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) +> - **Embedded license files**: [commons-text-1.10.0.jar/META-INF/LICENSE.txt](commons-text-1.10.0.jar/META-INF/LICENSE.txt) + - [commons-text-1.10.0.jar/META-INF/NOTICE.txt](commons-text-1.10.0.jar/META-INF/NOTICE.txt) + +**45** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `1.7.36` +> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +## Eclipse Public License - v 1.0 + +**46** **Group:** `ch.qos.logback` **Name:** `logback-classic` **Version:** `1.2.12` +> - **Manifest Project URL**: [http://www.qos.ch](http://www.qos.ch) +> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) +> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) + +**47** **Group:** `ch.qos.logback` **Name:** `logback-core` **Version:** `1.2.12` +> - **Manifest Project URL**: [http://www.qos.ch](http://www.qos.ch) +> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) +> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) + +**48** **Group:** `ch.qos.logback.contrib` **Name:** `logback-json-classic` **Version:** `0.1.5` +> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) +> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) + +**49** **Group:** `ch.qos.logback.contrib` **Name:** `logback-json-core` **Version:** `0.1.5` +> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) +> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) + +## GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 + +**50** **Group:** `ch.qos.logback` **Name:** `logback-classic` **Version:** `1.2.12` +> - **Manifest Project URL**: [http://www.qos.ch](http://www.qos.ch) +> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) +> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) + +**51** **Group:** `ch.qos.logback` **Name:** `logback-core` **Version:** `1.2.12` +> - **Manifest Project URL**: [http://www.qos.ch](http://www.qos.ch) +> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) +> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) + +**52** **Group:** `ch.qos.logback.contrib` **Name:** `logback-json-classic` **Version:** `0.1.5` +> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) +> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) + +**53** **Group:** `ch.qos.logback.contrib` **Name:** `logback-json-core` **Version:** `0.1.5` +> - **Manifest License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 (Not Packaged) +> - **POM License**: Eclipse Public License - v 1.0 - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) + +**54** **Group:** `net.java.dev.jna` **Name:** `jna` **Version:** `5.13.0` +> - **POM Project URL**: [/~https://github.com/java-native-access/jna](/~https://github.com/java-native-access/jna) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) +> - **Embedded license files**: [jna-5.13.0.jar/META-INF/LICENSE](jna-5.13.0.jar/META-INF/LICENSE) + +**55** **Group:** `net.java.dev.jna` **Name:** `jna-platform` **Version:** `5.13.0` +> - **POM Project URL**: [/~https://github.com/java-native-access/jna](/~https://github.com/java-native-access/jna) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) +> - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1) +> - **Embedded license files**: [jna-platform-5.13.0.jar/META-INF/LICENSE](jna-platform-5.13.0.jar/META-INF/LICENSE) + +## MIT License + +**56** **Group:** `com.azure` **Name:** `azure-core` **Version:** `1.37.0` +> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**57** **Group:** `com.azure` **Name:** `azure-core-http-netty` **Version:** `1.13.1` +> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**58** **Group:** `com.azure` **Name:** `azure-identity` **Version:** `1.8.1` +> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**59** **Group:** `com.azure` **Name:** `azure-storage-blob` **Version:** `12.21.1` +> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**60** **Group:** `com.azure` **Name:** `azure-storage-common` **Version:** `12.20.1` +> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**61** **Group:** `com.azure` **Name:** `azure-storage-internal-avro` **Version:** `12.6.1` +> - **POM Project URL**: [/~https://github.com/Azure/azure-sdk-for-java](/~https://github.com/Azure/azure-sdk-for-java) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**62** **Group:** `com.github.oshi` **Name:** `oshi-core` **Version:** `6.4.1` +> - **Manifest Project URL**: [/~https://github.com/oshi/oshi/oshi-core](/~https://github.com/oshi/oshi/oshi-core) +> - **Manifest License**: "SPDX-License-Identifier: MIT";link="https://opensource.org/licenses/MIT" (Not Packaged) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**63** **Group:** `com.microsoft.azure` **Name:** `msal4j` **Version:** `1.13.5` +> - **Project URL**: [/~https://github.com/AzureAD/microsoft-authentication-library-for-java](/~https://github.com/AzureAD/microsoft-authentication-library-for-java) +> - **Manifest License**: "MIT License" (Not Packaged) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**64** **Group:** `com.microsoft.azure` **Name:** `msal4j-persistence-extension` **Version:** `1.1.0` +> - **POM Project URL**: [/~https://github.com/AzureAD/microsoft-authentication-extensions-for-java](/~https://github.com/AzureAD/microsoft-authentication-extensions-for-java) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**65** **Group:** `com.microsoft.jfr` **Name:** `jfr-streaming` **Version:** `1.2.0` +> - **POM Project URL**: [/~https://github.com/Microsoft/jfr-streaming](/~https://github.com/Microsoft/jfr-streaming) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**66** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `1.7.36` +> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +**67** **Group:** `org.slf4j` **Name:** `slf4j-api` **Version:** `1.7.36` +> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +> - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +## MIT-0 + +**68** **Group:** `org.reactivestreams` **Name:** `reactive-streams` **Version:** `1.0.4` +> - **Manifest Project URL**: [http://reactive-streams.org](http://reactive-streams.org) +> - **POM Project URL**: [http://www.reactive-streams.org/](http://www.reactive-streams.org/) +> - **POM License**: MIT-0 - [https://spdx.org/licenses/MIT-0.html](https://spdx.org/licenses/MIT-0.html) + + From aa4bff44dacb98d1685800e3d21193144b8a375f Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Fri, 14 Apr 2023 11:23:45 -0700 Subject: [PATCH 17/46] Update otelInstrumentationVersion to 1.25 --- agent/agent-bootstrap/gradle.lockfile | 2 +- agent/agent-for-testing/gradle.lockfile | 2 +- agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile | 2 +- agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile | 2 +- agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile | 2 +- agent/agent-profiler/agent-alerting-api/gradle.lockfile | 2 +- agent/agent-profiler/agent-alerting/gradle.lockfile | 2 +- agent/agent-profiler/agent-diagnostics-api/gradle.lockfile | 2 +- agent/agent-tooling/gradle.lockfile | 2 +- .../agent/internal/init/FirstEntryPoint.java | 2 +- agent/agent/gradle.lockfile | 2 +- agent/azure-monitor-exporter/gradle.lockfile | 2 +- .../instrumentation/applicationinsights-web-2.3/gradle.lockfile | 2 +- .../instrumentation/azure-functions-worker-stub/gradle.lockfile | 2 +- agent/instrumentation/azure-functions/gradle.lockfile | 2 +- agent/instrumentation/methods/gradle.lockfile | 2 +- agent/instrumentation/micrometer-1.0/gradle.lockfile | 2 +- agent/runtime-attach/gradle.lockfile | 2 +- classic-sdk/core/gradle.lockfile | 2 +- classic-sdk/web/gradle.lockfile | 2 +- dependencyManagement/build.gradle.kts | 2 +- etw/java/gradle.lockfile | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/agent/agent-bootstrap/gradle.lockfile b/agent/agent-bootstrap/gradle.lockfile index 943f1bf87b0..bf23f49bd30 100644 --- a/agent/agent-bootstrap/gradle.lockfile +++ b/agent/agent-bootstrap/gradle.lockfile @@ -12,7 +12,7 @@ com.squareup.moshi:moshi:1.11.0=runtimeClasspath com.squareup.okio:okio:1.17.5=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/agent-for-testing/gradle.lockfile b/agent/agent-for-testing/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/agent-for-testing/gradle.lockfile +++ b/agent/agent-for-testing/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile index 2ea59a59365..dc5f74b3908 100644 --- a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile @@ -7,7 +7,7 @@ com.google.errorprone:error_prone_annotations:2.18.0=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile index 2ea59a59365..dc5f74b3908 100644 --- a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile @@ -7,7 +7,7 @@ com.google.errorprone:error_prone_annotations:2.18.0=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/agent-profiler/agent-alerting-api/gradle.lockfile b/agent/agent-profiler/agent-alerting-api/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/agent-profiler/agent-alerting-api/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting-api/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/agent-profiler/agent-alerting/gradle.lockfile b/agent/agent-profiler/agent-alerting/gradle.lockfile index 4c70739e7ec..24444a0e742 100644 --- a/agent/agent-profiler/agent-alerting/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile b/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile +++ b/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/agent-tooling/gradle.lockfile b/agent/agent-tooling/gradle.lockfile index 4858f562728..e96685e21c8 100644 --- a/agent/agent-tooling/gradle.lockfile +++ b/agent/agent-tooling/gradle.lockfile @@ -51,7 +51,7 @@ io.netty:netty-transport-native-kqueue:4.1.91.Final=runtimeClasspath io.netty:netty-transport-native-unix-common:4.1.91.Final=runtimeClasspath io.netty:netty-transport:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath io.projectreactor.netty:reactor-netty-core:1.1.6=runtimeClasspath diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java index 0c72faa5b26..e1deb477699 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java @@ -68,7 +68,7 @@ public static String getAgentVersion() { @Override public String name() { - return "FirstEntryPoint"; + return startupLogger.getName(); } @Override diff --git a/agent/agent/gradle.lockfile b/agent/agent/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/agent/gradle.lockfile +++ b/agent/agent/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/azure-monitor-exporter/gradle.lockfile b/agent/azure-monitor-exporter/gradle.lockfile index 1a1ce057c3d..4c9bd0554d0 100644 --- a/agent/azure-monitor-exporter/gradle.lockfile +++ b/agent/azure-monitor-exporter/gradle.lockfile @@ -41,7 +41,7 @@ io.netty:netty-transport-native-kqueue:4.1.91.Final=runtimeClasspath io.netty:netty-transport-native-unix-common:4.1.91.Final=runtimeClasspath io.netty:netty-transport:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath io.projectreactor.netty:reactor-netty-core:1.1.6=runtimeClasspath diff --git a/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile b/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile +++ b/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile b/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile +++ b/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/instrumentation/azure-functions/gradle.lockfile b/agent/instrumentation/azure-functions/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/instrumentation/azure-functions/gradle.lockfile +++ b/agent/instrumentation/azure-functions/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/instrumentation/methods/gradle.lockfile b/agent/instrumentation/methods/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/instrumentation/methods/gradle.lockfile +++ b/agent/instrumentation/methods/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/instrumentation/micrometer-1.0/gradle.lockfile b/agent/instrumentation/micrometer-1.0/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/agent/instrumentation/micrometer-1.0/gradle.lockfile +++ b/agent/instrumentation/micrometer-1.0/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/agent/runtime-attach/gradle.lockfile b/agent/runtime-attach/gradle.lockfile index 502e5d8dfad..3eefaea077a 100644 --- a/agent/runtime-attach/gradle.lockfile +++ b/agent/runtime-attach/gradle.lockfile @@ -7,7 +7,7 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.contrib:opentelemetry-runtime-attach-core:1.18.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath net.bytebuddy:byte-buddy-agent:1.11.18=runtimeClasspath diff --git a/classic-sdk/core/gradle.lockfile b/classic-sdk/core/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/classic-sdk/core/gradle.lockfile +++ b/classic-sdk/core/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/classic-sdk/web/gradle.lockfile b/classic-sdk/web/gradle.lockfile index 54508f4c158..e8ea0871fd7 100644 --- a/classic-sdk/web/gradle.lockfile +++ b/classic-sdk/web/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index cbeb885679a..7ffa9d1c4cb 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -13,7 +13,7 @@ rootProject.extra["versions"] = dependencyVersions val otelVersion = "1.23.1" val otelInstrumentationAlphaVersion = "1.25.0-alpha" -val otelInstrumentationVersion = "1.24.0" +val otelInstrumentationVersion = "1.25.0" val otelContribAlphaVersion = "1.18.0-alpha" rootProject.extra["otelVersion"] = otelVersion diff --git a/etw/java/gradle.lockfile b/etw/java/gradle.lockfile index 4c70739e7ec..24444a0e742 100644 --- a/etw/java/gradle.lockfile +++ b/etw/java/gradle.lockfile @@ -6,7 +6,7 @@ com.fasterxml.jackson:jackson-bom:2.14.2=runtimeClasspath com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath -io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.24.0=runtimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath From cbe0cd424963dc73e531d0d1d187ea387a634956 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Fri, 14 Apr 2023 11:24:32 -0700 Subject: [PATCH 18/46] Update license --- licenses/more-licenses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/licenses/more-licenses.md b/licenses/more-licenses.md index cc251e07db5..c49a8b1b869 100644 --- a/licenses/more-licenses.md +++ b/licenses/more-licenses.md @@ -1,7 +1,7 @@ #agent ##Dependency License Report -_2023-04-14 10:16:38 PDT_ +_2023-04-14 11:24:18 PDT_ ## Apache License, Version 2.0 **1** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.14.2` From e38ecefd7b00b6aad9a3d225e564d6dc3f67c505 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Fri, 14 Apr 2023 11:53:48 -0700 Subject: [PATCH 19/46] Fix nullpointer --- .../agent/internal/init/FirstEntryPoint.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java index e1deb477699..0c72faa5b26 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java @@ -68,7 +68,7 @@ public static String getAgentVersion() { @Override public String name() { - return startupLogger.getName(); + return "FirstEntryPoint"; } @Override From 6094a8f3ed29190ad22088f3032fb2ce8d712818 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Fri, 14 Apr 2023 12:14:15 -0700 Subject: [PATCH 20/46] Update slf4j to 2.0.7 by fixing io.opentelemetry.javaagent.slf4j.Logger.isEnabledForLevel nosuchmethod --- agent/agent-bootstrap/gradle.lockfile | 2 +- .../gc-monitor-api/gradle.lockfile | 2 +- .../gc-monitor-core/gradle.lockfile | 2 +- .../agent-alerting/gradle.lockfile | 2 +- agent/agent-tooling/gradle.lockfile | 4 +- agent/azure-monitor-exporter/gradle.lockfile | 2 +- dependencyManagement/build.gradle.kts | 2 +- etw/java/gradle.lockfile | 2 +- .../META-INF/LICENSE.txt | 176 ++++++++++++++++++ licenses/more-licenses.md | 19 +- .../slf4j-api-2.0.7.jar/META-INF/LICENSE.txt | 24 +++ 11 files changed, 221 insertions(+), 16 deletions(-) create mode 100644 licenses/jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt create mode 100644 licenses/slf4j-api-2.0.7.jar/META-INF/LICENSE.txt diff --git a/agent/agent-bootstrap/gradle.lockfile b/agent/agent-bootstrap/gradle.lockfile index bf23f49bd30..c764c12a3ad 100644 --- a/agent/agent-bootstrap/gradle.lockfile +++ b/agent/agent-bootstrap/gradle.lockfile @@ -16,6 +16,6 @@ io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtim io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:1.7.36=runtimeClasspath +org.slf4j:slf4j-api:2.0.7=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile index dc5f74b3908..11376732d2a 100644 --- a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile @@ -11,6 +11,6 @@ io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtim io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:1.7.36=runtimeClasspath +org.slf4j:slf4j-api:2.0.7=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile index dc5f74b3908..11376732d2a 100644 --- a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile @@ -11,6 +11,6 @@ io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtim io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:1.7.36=runtimeClasspath +org.slf4j:slf4j-api:2.0.7=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-profiler/agent-alerting/gradle.lockfile b/agent/agent-profiler/agent-alerting/gradle.lockfile index 24444a0e742..930d29b19c1 100644 --- a/agent/agent-profiler/agent-alerting/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting/gradle.lockfile @@ -10,6 +10,6 @@ io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtim io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:1.7.36=runtimeClasspath +org.slf4j:slf4j-api:2.0.7=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-tooling/gradle.lockfile b/agent/agent-tooling/gradle.lockfile index e96685e21c8..525bfc1f3dd 100644 --- a/agent/agent-tooling/gradle.lockfile +++ b/agent/agent-tooling/gradle.lockfile @@ -65,7 +65,7 @@ org.apache.commons:commons-lang3:3.12.0=runtimeClasspath org.apache.commons:commons-text:1.10.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.reactivestreams:reactive-streams:1.0.4=runtimeClasspath -org.slf4j:jcl-over-slf4j:1.7.36=runtimeClasspath -org.slf4j:slf4j-api:1.7.36=runtimeClasspath +org.slf4j:jcl-over-slf4j:2.0.7=runtimeClasspath +org.slf4j:slf4j-api:2.0.7=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/azure-monitor-exporter/gradle.lockfile b/agent/azure-monitor-exporter/gradle.lockfile index 4c9bd0554d0..a1e4b69dd1f 100644 --- a/agent/azure-monitor-exporter/gradle.lockfile +++ b/agent/azure-monitor-exporter/gradle.lockfile @@ -54,6 +54,6 @@ net.minidev:json-smart:2.4.10=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.ow2.asm:asm:9.3=runtimeClasspath org.reactivestreams:reactive-streams:1.0.4=runtimeClasspath -org.slf4j:slf4j-api:1.7.36=runtimeClasspath +org.slf4j:slf4j-api:2.0.7=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 7ffa9d1c4cb..db6935b3d67 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -45,7 +45,7 @@ val mockitoVersion = "4.11.0" // via Instrumentation.appendToBootstrapClassLoaderSearch(), there's nothing similar for // resources (which is a known problem in the java agent world), and so the META-INF/services // resource is not found -val slf4jVersion = "1.7.36" +val slf4jVersion = "2.0.7" // 1.12.0 and above use okio 2.x which pulls in kotlin libs val moshiVersion = "1.11.0" diff --git a/etw/java/gradle.lockfile b/etw/java/gradle.lockfile index 24444a0e742..930d29b19c1 100644 --- a/etw/java/gradle.lockfile +++ b/etw/java/gradle.lockfile @@ -10,6 +10,6 @@ io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtim io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:1.7.36=runtimeClasspath +org.slf4j:slf4j-api:2.0.7=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/licenses/jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt b/licenses/jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt new file mode 100644 index 00000000000..2bb9ad240fa --- /dev/null +++ b/licenses/jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/licenses/more-licenses.md b/licenses/more-licenses.md index c49a8b1b869..e394332894a 100644 --- a/licenses/more-licenses.md +++ b/licenses/more-licenses.md @@ -1,7 +1,7 @@ #agent ##Dependency License Report -_2023-04-14 11:24:18 PDT_ +_2023-04-14 12:13:48 PDT_ ## Apache License, Version 2.0 **1** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.14.2` @@ -234,10 +234,12 @@ _2023-04-14 11:24:18 PDT_ > - **Embedded license files**: [commons-text-1.10.0.jar/META-INF/LICENSE.txt](commons-text-1.10.0.jar/META-INF/LICENSE.txt) - [commons-text-1.10.0.jar/META-INF/NOTICE.txt](commons-text-1.10.0.jar/META-INF/NOTICE.txt) -**45** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `1.7.36` -> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +**45** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `2.0.7` +> - **Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) +> - **Embedded license files**: [jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt](jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt) ## Eclipse Public License - v 1.0 @@ -343,14 +345,17 @@ _2023-04-14 11:24:18 PDT_ > - **POM Project URL**: [/~https://github.com/Microsoft/jfr-streaming](/~https://github.com/Microsoft/jfr-streaming) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -**66** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `1.7.36` -> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +**66** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `2.0.7` +> - **Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) +> - **Embedded license files**: [jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt](jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt) -**67** **Group:** `org.slf4j` **Name:** `slf4j-api` **Version:** `1.7.36` -> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +**67** **Group:** `org.slf4j` **Name:** `slf4j-api` **Version:** `2.0.7` +> - **Project URL**: [http://www.slf4j.org](http://www.slf4j.org) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) +> - **Embedded license files**: [slf4j-api-2.0.7.jar/META-INF/LICENSE.txt](slf4j-api-2.0.7.jar/META-INF/LICENSE.txt) ## MIT-0 diff --git a/licenses/slf4j-api-2.0.7.jar/META-INF/LICENSE.txt b/licenses/slf4j-api-2.0.7.jar/META-INF/LICENSE.txt new file mode 100644 index 00000000000..e4079f54f6c --- /dev/null +++ b/licenses/slf4j-api-2.0.7.jar/META-INF/LICENSE.txt @@ -0,0 +1,24 @@ +Copyright (c) 2004-2023 QOS.ch +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + From 3721fc2fafda9f236b7a963146a420e092b16b4b Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Mon, 17 Apr 2023 12:47:33 -0700 Subject: [PATCH 21/46] Revert slf4j back to 1.7.36 --- dependencyManagement/build.gradle.kts | 2 +- .../META-INF/LICENSE.txt | 176 ------------------ licenses/more-licenses.md | 19 +- .../slf4j-api-2.0.7.jar/META-INF/LICENSE.txt | 24 --- 4 files changed, 8 insertions(+), 213 deletions(-) delete mode 100644 licenses/jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt delete mode 100644 licenses/slf4j-api-2.0.7.jar/META-INF/LICENSE.txt diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index db6935b3d67..7ffa9d1c4cb 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -45,7 +45,7 @@ val mockitoVersion = "4.11.0" // via Instrumentation.appendToBootstrapClassLoaderSearch(), there's nothing similar for // resources (which is a known problem in the java agent world), and so the META-INF/services // resource is not found -val slf4jVersion = "2.0.7" +val slf4jVersion = "1.7.36" // 1.12.0 and above use okio 2.x which pulls in kotlin libs val moshiVersion = "1.11.0" diff --git a/licenses/jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt b/licenses/jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt deleted file mode 100644 index 2bb9ad240fa..00000000000 --- a/licenses/jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/licenses/more-licenses.md b/licenses/more-licenses.md index e394332894a..b3ef62c7724 100644 --- a/licenses/more-licenses.md +++ b/licenses/more-licenses.md @@ -1,7 +1,7 @@ #agent ##Dependency License Report -_2023-04-14 12:13:48 PDT_ +_2023-04-17 08:15:36 PDT_ ## Apache License, Version 2.0 **1** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.14.2` @@ -234,12 +234,10 @@ _2023-04-14 12:13:48 PDT_ > - **Embedded license files**: [commons-text-1.10.0.jar/META-INF/LICENSE.txt](commons-text-1.10.0.jar/META-INF/LICENSE.txt) - [commons-text-1.10.0.jar/META-INF/NOTICE.txt](commons-text-1.10.0.jar/META-INF/NOTICE.txt) -**45** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `2.0.7` -> - **Project URL**: [http://www.slf4j.org](http://www.slf4j.org) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +**45** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `1.7.36` +> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -> - **Embedded license files**: [jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt](jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt) ## Eclipse Public License - v 1.0 @@ -345,17 +343,14 @@ _2023-04-14 12:13:48 PDT_ > - **POM Project URL**: [/~https://github.com/Microsoft/jfr-streaming](/~https://github.com/Microsoft/jfr-streaming) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -**66** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `2.0.7` -> - **Project URL**: [http://www.slf4j.org](http://www.slf4j.org) -> - **Manifest License**: Apache License, Version 2.0 (Not Packaged) +**66** **Group:** `org.slf4j` **Name:** `jcl-over-slf4j` **Version:** `1.7.36` +> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -> - **Embedded license files**: [jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt](jcl-over-slf4j-2.0.7.jar/META-INF/LICENSE.txt) -**67** **Group:** `org.slf4j` **Name:** `slf4j-api` **Version:** `2.0.7` -> - **Project URL**: [http://www.slf4j.org](http://www.slf4j.org) +**67** **Group:** `org.slf4j` **Name:** `slf4j-api` **Version:** `1.7.36` +> - **POM Project URL**: [http://www.slf4j.org](http://www.slf4j.org) > - **POM License**: MIT License - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) -> - **Embedded license files**: [slf4j-api-2.0.7.jar/META-INF/LICENSE.txt](slf4j-api-2.0.7.jar/META-INF/LICENSE.txt) ## MIT-0 diff --git a/licenses/slf4j-api-2.0.7.jar/META-INF/LICENSE.txt b/licenses/slf4j-api-2.0.7.jar/META-INF/LICENSE.txt deleted file mode 100644 index e4079f54f6c..00000000000 --- a/licenses/slf4j-api-2.0.7.jar/META-INF/LICENSE.txt +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2004-2023 QOS.ch -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - From 59d85ef6807a2f375e9b6830150337720d83e70d Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Mon, 17 Apr 2023 14:26:43 -0700 Subject: [PATCH 22/46] Update upstream slf4jsimplerlogger path --- agent/agent/build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/agent/agent/build.gradle.kts b/agent/agent/build.gradle.kts index f1b919aa505..23e19fbbca5 100644 --- a/agent/agent/build.gradle.kts +++ b/agent/agent/build.gradle.kts @@ -109,8 +109,7 @@ tasks { // // the two exclusions below excludes slf4j and slf4j-simple from the agent class loader // (which come from the upstream agent) - exclude("inst/io/opentelemetry/javaagent/slf4j/**") - exclude("inst/META-INF/services/io.opentelemetry.javaagent.slf4j.spi.SLF4JServiceProvider") + exclude("inst/io/opentelemetry/javaagent/logging/simple/**") exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/http/TemporaryMetricsView.class") exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/InstrumenterBuilder.class") From 00d1b2e5f0dab626a8108e722f3f80aa2cbefd99 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 09:55:01 -0700 Subject: [PATCH 23/46] Fix nosuchmethod from upstream slf4jsimplerlogger --- .../agent/internal/init/FirstEntryPoint.java | 2 +- .../java/com/microsoft/applicationinsights/agent/Agent.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java index 0c72faa5b26..83e1195c946 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/FirstEntryPoint.java @@ -68,7 +68,7 @@ public static String getAgentVersion() { @Override public String name() { - return "FirstEntryPoint"; + return "applicationinsights"; } @Override diff --git a/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java b/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java index 2fb9df54e06..a3e993c38ab 100644 --- a/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java +++ b/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java @@ -28,6 +28,9 @@ public static void premain(String agentArgs, Instrumentation inst) { StartupProfiler.start(); } + // /~https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/7339 + System.setProperty("otel.javaagent.logging", "applicationinsights"); + OpenTelemetryAgent.premain(agentArgs, inst); } From 22ff082394dc67cf963dbdbfaa5951d22e8c6879 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 10:03:59 -0700 Subject: [PATCH 24/46] No need to exclude slf4jsimplelogger anymore --- agent/agent/build.gradle.kts | 7 ------- .../com/microsoft/applicationinsights/agent/Agent.java | 4 ++++ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/agent/agent/build.gradle.kts b/agent/agent/build.gradle.kts index 23e19fbbca5..6712e3a492e 100644 --- a/agent/agent/build.gradle.kts +++ b/agent/agent/build.gradle.kts @@ -104,13 +104,6 @@ tasks { val shadowJarWithDuplicates by registering(ShadowJar::class) { configurations = listOf(bootstrapLibs, upstreamAgent) - // this distro uses logback (and shaded slf4j in the bootstrap class loader - // so that it can be used prior to the agent starting up) - // - // the two exclusions below excludes slf4j and slf4j-simple from the agent class loader - // (which come from the upstream agent) - exclude("inst/io/opentelemetry/javaagent/logging/simple/**") - exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/http/TemporaryMetricsView.class") exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/InstrumenterBuilder.class") diff --git a/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java b/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java index a3e993c38ab..aa01eb3a7a4 100644 --- a/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java +++ b/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java @@ -29,6 +29,10 @@ public static void premain(String agentArgs, Instrumentation inst) { } // /~https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/7339 + // Starting 1.25.0, OpenTelemetry defaults logger to Slf4jSimplerlogger when system property + // "otel.javaagent.logging" is null + // Setting this system property programatically will tell agent class loader to load our + // Slf4jInternalLogger instead System.setProperty("otel.javaagent.logging", "applicationinsights"); OpenTelemetryAgent.premain(agentArgs, inst); From bc1961b76fad2cdbd90a1a9e3fa2e3ae3f1f5fd0 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 10:27:01 -0700 Subject: [PATCH 25/46] Fix classcastexception --- agent/agent/build.gradle.kts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/agent/agent/build.gradle.kts b/agent/agent/build.gradle.kts index 6712e3a492e..23e19fbbca5 100644 --- a/agent/agent/build.gradle.kts +++ b/agent/agent/build.gradle.kts @@ -104,6 +104,13 @@ tasks { val shadowJarWithDuplicates by registering(ShadowJar::class) { configurations = listOf(bootstrapLibs, upstreamAgent) + // this distro uses logback (and shaded slf4j in the bootstrap class loader + // so that it can be used prior to the agent starting up) + // + // the two exclusions below excludes slf4j and slf4j-simple from the agent class loader + // (which come from the upstream agent) + exclude("inst/io/opentelemetry/javaagent/logging/simple/**") + exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/http/TemporaryMetricsView.class") exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/InstrumenterBuilder.class") From 02d967451e0a562d5b2b4d9e4d65dddfe8af5444 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 10:45:02 -0700 Subject: [PATCH 26/46] Revert build.gradle.kts --- agent/agent/build.gradle.kts | 3 ++- .../java/com/microsoft/applicationinsights/agent/Agent.java | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/agent/agent/build.gradle.kts b/agent/agent/build.gradle.kts index 23e19fbbca5..f1b919aa505 100644 --- a/agent/agent/build.gradle.kts +++ b/agent/agent/build.gradle.kts @@ -109,7 +109,8 @@ tasks { // // the two exclusions below excludes slf4j and slf4j-simple from the agent class loader // (which come from the upstream agent) - exclude("inst/io/opentelemetry/javaagent/logging/simple/**") + exclude("inst/io/opentelemetry/javaagent/slf4j/**") + exclude("inst/META-INF/services/io.opentelemetry.javaagent.slf4j.spi.SLF4JServiceProvider") exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/http/TemporaryMetricsView.class") exclude("io/opentelemetry/javaagent/shaded/instrumentation/api/instrumenter/InstrumenterBuilder.class") diff --git a/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java b/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java index aa01eb3a7a4..5fda9929bf5 100644 --- a/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java +++ b/agent/agent/src/main/java/com/microsoft/applicationinsights/agent/Agent.java @@ -30,9 +30,9 @@ public static void premain(String agentArgs, Instrumentation inst) { // /~https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/7339 // Starting 1.25.0, OpenTelemetry defaults logger to Slf4jSimplerlogger when system property - // "otel.javaagent.logging" is null - // Setting this system property programatically will tell agent class loader to load our - // Slf4jInternalLogger instead + // "otel.javaagent.logging" is null. + // Setting this system property programmatically will tell agent class loader to load our + // Slf4jInternalLogger instead. System.setProperty("otel.javaagent.logging", "applicationinsights"); OpenTelemetryAgent.premain(agentArgs, inst); From ef33186dff79fed433fda7eca56cfb0739e68e49 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 11:17:51 -0700 Subject: [PATCH 27/46] Fix tests --- .../AzureSdkControllerSpansEnabledTest.java | 3 +-- .../smoketest/AzureSdkTest.java | 3 +-- .../smoketest/CassandraTest.java | 3 +-- .../smoketest/CustomInstrumentationTest.java | 6 ++--- .../smoketest/HttpClientTest.java | 9 +++---- .../HttpPreaggregatedMetricsTest.java | 9 +++---- .../smoketest/HttpServer4xxDefaultTest.java | 3 +-- .../smoketest/HttpServer4xxTest.java | 3 +-- .../JmsControllerSpansEnabledTest.java | 7 ++--- .../smoketest/JmsDisabledTest.java | 7 ++--- .../smoketest/JmsTest.java | 7 ++--- .../smoketest/JdbcTest.java | 27 +++++++++---------- .../smoketest/JdbcUnmaskedTest.java | 3 +-- .../smoketest/JedisTest.java | 3 +-- .../smoketest/JettyNativeHandlerTest.java | 3 +-- .../KafkaControllerSpansEnabledTest.java | 7 ++--- .../smoketest/KafkaDisabledTest.java | 7 ++--- .../smoketest/KafkaTest.java | 7 ++--- .../smoketest/LettuceTest.java | 3 +-- .../smoketest/MicrometerTest.java | 3 +-- .../smoketest/MongoTest.java | 3 +-- .../smoketest/MongoUnmaskedTest.java | 3 +-- .../smoketest/NonDaemonThreadsTest.java | 7 ++--- ...yApiSupportControllerSpansEnabledTest.java | 5 ++-- ...metryApiSupportInstrumentationKeyTest.java | 3 +-- .../OpenTelemetryApiSupportTest.java | 5 ++-- .../smoketest/RuntimeAttachTest.java | 3 +-- ...AttachWithDelayedConnectionStringTest.java | 3 +-- .../SpringBootControllerSpansEnabledTest.java | 10 +++---- .../smoketest/SpringBootTest.java | 10 +++---- .../smoketest/SpringBootAutoTest.java | 3 +-- ...CloudStreamControllerSpansEnabledTest.java | 4 +-- .../smoketest/SpringCloudStreamTest.java | 4 +-- .../smoketest/WebFluxTest.java | 7 +++-- .../smoketest/GrpcTest.java | 13 +++------ 35 files changed, 72 insertions(+), 134 deletions(-) diff --git a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java index 60597b72e7c..9c6585f84bf 100644 --- a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java +++ b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; import com.microsoft.applicationinsights.smoketest.schemav2.RemoteDependencyData; @@ -39,7 +38,7 @@ void test() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController.test"); diff --git a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java index f678b1f6f6b..9c87bd28c16 100644 --- a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java +++ b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -34,7 +33,7 @@ void test() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("hello"); diff --git a/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java b/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java index f36ff9853a1..207df2b2170 100644 --- a/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java +++ b/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,7 +38,7 @@ void cassandra() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT test.test"); diff --git a/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java b/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java index a1c354948f5..7c7068529ba 100644 --- a/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java +++ b/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -48,7 +47,7 @@ void internalSpan() throws Exception { assertThat(telemetry.rd.getName()).isEqualTo("GET /internal-span"); assertThat(telemetry.rd.getResponseCode()).isEqualTo("200"); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController.run"); @@ -92,8 +91,7 @@ void serverSpan() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /server-span"); assertThat(rd1.getResponseCode()).isEqualTo("200"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rd2.getName()).isEqualTo("TestController.run"); diff --git a/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java b/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java index 33c3b17c1b4..3f27f78a2ff 100644 --- a/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java +++ b/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -80,7 +79,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { Telemetry telemetry = testing.getTelemetry(3); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); // TODO (trask) add this check in all smoke tests? assertThat(telemetry.rdEnvelope.getSampleRate()).isNull(); @@ -91,7 +90,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd1.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd1.getResultCode()).isEqualTo("200"); assertThat(telemetry.rdd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdd1.getSuccess()).isTrue(); assertThat(telemetry.rddEnvelope1.getSampleRate()).isNull(); @@ -101,7 +100,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd2.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd2.getResultCode()).isEqualTo("404"); assertThat(telemetry.rdd2.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdd2.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope2.getSampleRate()).isNull(); @@ -111,7 +110,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd3.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd3.getResultCode()).isEqualTo("500"); assertThat(telemetry.rdd3.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdd3.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope3.getSampleRate()).isNull(); diff --git a/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java b/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java index 0cbf515fe4b..3afdce2b2a5 100644 --- a/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java +++ b/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.DataPoint; @@ -59,7 +58,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit Telemetry telemetry = testing.getTelemetry(3); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdd1.getData()).isEqualTo(successUrlWithQueryString); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdEnvelope.getSampleRate()).isNull(); @@ -68,7 +67,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd1.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd1.getResultCode()).isEqualTo("200"); assertThat(telemetry.rdd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdd1.getSuccess()).isTrue(); assertThat(telemetry.rddEnvelope1.getSampleRate()).isNull(); @@ -78,7 +77,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd2.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd2.getResultCode()).isEqualTo("404"); assertThat(telemetry.rdd2.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdd2.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope2.getSampleRate()).isNull(); @@ -88,7 +87,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd3.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd3.getResultCode()).isEqualTo("500"); assertThat(telemetry.rdd3.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdd3.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope3.getSampleRate()).isNull(); diff --git a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java index ee83f61e22c..6d720049109 100644 --- a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java +++ b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -34,7 +33,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isFalse(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java index 8d7acc7fc0f..aafbdca015b 100644 --- a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java +++ b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -34,7 +33,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java index b0721320651..341becba080 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -54,8 +53,7 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope3.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("HelloController.sendMessage"); @@ -81,8 +79,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd3.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd3.getType()).isEqualTo("Http"); assertThat(rdd3.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd3.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd3.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd3.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java index 1ede879b094..182fed168ea 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -33,8 +32,7 @@ void doMostBasicTest() throws Exception { assertThat(rd.getName()).isEqualTo("GET /sendMessage"); assertThat(rd.getResponseCode()).isEqualTo("200"); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd.getSuccess()).isTrue(); // verify the downstream http dependency that is no longer part of the same trace @@ -49,8 +47,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd.getName()).isEqualTo("GET /"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com"); - assertThat(rdd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd.getSuccess()).isTrue(); // sleep a bit and make sure no kafka "requests" or dependencies are reported diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java index 7d7a9745467..5f5faa07e0a 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -57,8 +56,7 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope2.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("message send"); @@ -77,8 +75,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd2.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd2.getType()).isEqualTo("Http"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd2.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd2.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java index 48ae151b257..10d4d04d944 100644 --- a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java +++ b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -47,7 +46,7 @@ void hsqldbPreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); @@ -67,7 +66,7 @@ void hsqldbStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); @@ -87,7 +86,7 @@ void hsqldbLargeStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); StringBuilder a2000 = new StringBuilder(); @@ -115,7 +114,7 @@ void hsqldbBatchPreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("INSERT testdb.abc"); @@ -137,7 +136,7 @@ void hsqldbBatchStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("insert testdb.abc"); @@ -163,7 +162,7 @@ void mysqlPreparedStatement() throws Exception { testing.getTelemetry(1, rdd -> !rdd.getData().startsWith("/* mysql-connector-java? ")); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT mysql.abc"); @@ -186,7 +185,7 @@ void mysqlStatement() throws Exception { testing.getTelemetry(1, rdd -> !rdd.getData().startsWith("/* mysql-connector-java? ")); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT mysql.abc"); @@ -207,7 +206,7 @@ void postgresPreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT postgres.abc"); @@ -228,7 +227,7 @@ void postgresStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT postgres.abc"); @@ -249,7 +248,7 @@ void sqlServerPreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -269,7 +268,7 @@ void sqlServerStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -290,7 +289,7 @@ void oraclePreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -311,7 +310,7 @@ void oracleStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); diff --git a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java index 56bf3cdcc39..1dd885272cd 100644 --- a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java +++ b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -22,7 +21,7 @@ void hsqldbStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); diff --git a/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java b/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java index cc8d0ab4f32..47aca462c7e 100644 --- a/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java +++ b/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,7 +38,7 @@ void jedis() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("GET"); diff --git a/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java b/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java index 80a41f1befe..31f5f135dbe 100644 --- a/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java +++ b/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -34,7 +33,7 @@ void doSimpleTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java index 69fcdb4d741..51d8bcde4ce 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -61,8 +60,7 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope3.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("HelloController.sendMessage"); @@ -89,8 +87,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd3.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd3.getType()).isEqualTo("Http"); assertThat(rdd3.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd3.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd3.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd3.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java index 6e819626597..ddb3bebf9ea 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -40,8 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(rd.getName()).isEqualTo("GET /sendMessage"); assertThat(rd.getResponseCode()).isEqualTo("200"); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd.getSuccess()).isTrue(); // verify the downstream http dependency that is no longer part of the same trace @@ -56,8 +54,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd.getName()).isEqualTo("GET /"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com"); - assertThat(rdd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd.getSuccess()).isTrue(); // sleep a bit and make sure no kafka "requests" or dependencies are reported diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java index ac56d4cfe85..5014ab09782 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java @@ -14,7 +14,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -74,8 +73,7 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope2.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("mytopic send"); @@ -94,8 +92,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd2.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd2.getType()).isEqualTo("Http"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd2.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd2.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java b/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java index f383a4579aa..a33c68506d9 100644 --- a/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java +++ b/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,7 +38,7 @@ void lettuce() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("GET"); diff --git a/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java b/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java index 1ccb774e7c8..c8ab17797d9 100644 --- a/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java +++ b/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.DataPoint; @@ -40,7 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); List metricItems = diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java index 6d07007c074..da884aa3b1e 100644 --- a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java +++ b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,7 +38,7 @@ void mongo() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("find testdb.test"); diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java index 085075dc655..e3584ec2f4f 100644 --- a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java +++ b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -32,7 +31,7 @@ void mongo() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("find testdb.test"); diff --git a/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java b/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java index 13cf852a157..db317fde319 100644 --- a/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java +++ b/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -51,16 +50,14 @@ void spawnAnotherJavaProcess() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope.getData()).getBaseData(); MessageData md = (MessageData) ((Data) mdEnvelope.getData()).getBaseData(); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd.getName()).isEqualTo("GET /search"); assertThat(rdd.getType()).isEqualTo("Http"); assertThat(rdd.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com/search?q=test"); - assertThat(rdd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd.getSuccess()).isTrue(); assertThat(md.getMessage()).isEqualTo("done"); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java index 1bc05995639..77adbb369cb 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; import com.microsoft.applicationinsights.smoketest.schemav2.RemoteDependencyData; @@ -30,7 +29,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("myspanname"); @@ -100,7 +99,7 @@ private static void testAnnotations( assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController." + controllerMethodName); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java index 5a93fdbf3ef..7c5891979b6 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -38,7 +37,7 @@ void testOverridingIkey() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); // this is no longer supported since 3.4.0, but the test is still included here to (manually) diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index 23c25f041d8..d2ed49e87e2 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -64,7 +63,7 @@ void testOverridingConnectionStringEtc() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); // checking that instrumentation key, cloud role name, cloud role instance, and sdk version are @@ -106,7 +105,7 @@ private static void testAnnotations(String path, String methodName) throws Excep assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController." + methodName); diff --git a/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java b/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java index 8cdb04bb6bd..c147016f2cd 100644 --- a/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java +++ b/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,7 +32,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdEnvelope.getTags()) diff --git a/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java b/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java index fd744e70663..0dbeb90fbcc 100644 --- a/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java +++ b/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -35,7 +34,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdEnvelope.getTags()) diff --git a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java index 4ce42de9b24..b449f2bf4b1 100644 --- a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java +++ b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -94,8 +93,7 @@ public boolean test(Envelope input) { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/throwsException"); assertThat(rd.getResponseCode()).isEqualTo("500"); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd.getSuccess()).isFalse(); assertThat(rdd1.getName()).isEqualTo("TestController.resultCodeTest"); @@ -141,8 +139,7 @@ void testAsyncDependencyCall() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/asyncDependencyCall"); assertThat(rd.getResponseCode()).isEqualTo("200"); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("TestController.asyncDependencyCall"); @@ -155,8 +152,7 @@ void testAsyncDependencyCall() throws Exception { assertThat(rdd2.getName()).isEqualTo("GET /"); assertThat(rdd2.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd2.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd2.getSuccess()).isTrue(); // TODO (trask): why is spring-webmvc instrumentation capturing this twice? diff --git a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java index 706b6506bdc..18a4905fdb6 100644 --- a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java +++ b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -88,8 +87,7 @@ void testResultCodeWhenRestControllerThrows() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/throwsException"); assertThat(rd.getResponseCode()).isEqualTo("500"); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd.getSuccess()).isFalse(); SmokeTestExtension.assertParentChild( @@ -118,15 +116,13 @@ void testAsyncDependencyCall() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/asyncDependencyCall"); assertThat(rd.getResponseCode()).isEqualTo("200"); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("GET /"); assertThat(rdd1.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd1.getTarget()).isEqualTo("www.bing.com"); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd1.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild( diff --git a/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java b/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java index 25ad3479a77..e7d56a31ffe 100644 --- a/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java +++ b/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -40,7 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java index 693e99334c3..3194248e3d0 100644 --- a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java +++ b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java @@ -5,7 +5,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -66,8 +65,7 @@ void doMostBasicTest() throws Exception { } assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("GreetingsController.sendMessage"); diff --git a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java index e823ec66b7b..7a67c337b8f 100644 --- a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java +++ b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -59,8 +58,7 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope1.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("greetings send"); diff --git a/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java b/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java index 8cdd65134b6..77a4fc3794e 100644 --- a/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java +++ b/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -34,7 +33,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } @@ -49,7 +48,7 @@ void testException() throws Exception { assertThat(telemetry.rd.getSuccess()).isFalse(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } @@ -64,7 +63,7 @@ void testFutureException() throws Exception { assertThat(telemetry.rd.getSuccess()).isFalse(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java b/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java index 2d37e9c4359..c75c8c24646 100644 --- a/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java +++ b/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.DataPoint; @@ -61,12 +60,10 @@ void doSimpleTest() throws Exception { assertThat(rdd.getTarget()).isEqualTo("localhost:10203"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); - assertThat(rdd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd.getSuccess()).isTrue(); // TODO (trask): verify rd2 @@ -109,12 +106,10 @@ void doConversationTest() throws Exception { assertThat(rdd.getTarget()).isEqualTo("localhost:10203"); - assertThat(rd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd1.getSuccess()).isTrue(); - assertThat(rdd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rdd.getSuccess()).isTrue(); // TODO (trask): verify rd2 From 3938fab3b316aba09dea3361d39c2672c67bbe62 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 12:02:03 -0700 Subject: [PATCH 28/46] Fix more tests --- .../smoketest/ClassicSdkWebInterop2xTest.java | 2 +- .../smoketest/ClassicSdkWebInterop3xTest.java | 2 +- .../smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java | 2 +- .../applicationinsights/smoketest/CustomDimensionsTest.java | 2 +- .../applicationinsights/smoketest/HttpHeadersTest.java | 2 +- .../smoketest/OpenTelemetryApiSupportTest.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java index 9972664a523..fb400339b66 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java @@ -36,7 +36,7 @@ void doMostBasicTest() throws Exception { .isEqualTo("mydeviceosversion"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); - assertThat(telemetry.rd.getProperties()).hasSize(3); + assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); diff --git a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java index a59e4d4f40c..5e2f62f4cd4 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java @@ -36,7 +36,7 @@ void doMostBasicTest() throws Exception { .isEqualTo("mydeviceosversion"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); - assertThat(telemetry.rd.getProperties()).hasSize(3); + assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); diff --git a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java index 4c76f6a7f99..b4bc373dbe7 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java @@ -36,7 +36,7 @@ void doMostBasicTest() throws Exception { .isEqualTo("mydeviceosversion"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); - assertThat(telemetry.rd.getProperties()).hasSize(3); + assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); diff --git a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java index 7e4533c8604..e7904c8dfff 100644 --- a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java +++ b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java @@ -33,7 +33,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("test", "value"); assertThat(telemetry.rd.getProperties()).containsKey("home"); - assertThat(telemetry.rd.getProperties()).hasSize(3); + assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); diff --git a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java index 2219ae26343..d99cd11835c 100644 --- a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java +++ b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java @@ -30,7 +30,7 @@ void testServerHeaders() throws Exception { assertThat(telemetry.rd.getProperties().get("http.response.header.abc")) .isEqualTo("testing123"); assertThat(telemetry.rd.getProperties()).containsKey("http.request.header.host"); - assertThat(telemetry.rd.getProperties()).hasSize(3); + assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index d2ed49e87e2..546d7b022cc 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -33,7 +33,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getResponseCode()).isEqualTo("200"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); - assertThat(telemetry.rd.getProperties()).hasSize(3); + assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()) From 2ca4044a16fbcc99955e64c7a6c37f7f7fa7ffca Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 13:04:14 -0700 Subject: [PATCH 29/46] Replace http.user_agent with user_agent.original --- agent/agent-bootstrap/gradle.lockfile | 6 +++--- agent/agent-for-testing/gradle.lockfile | 4 ++-- agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile | 6 +++--- agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile | 6 +++--- agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile | 4 ++-- agent/agent-profiler/agent-alerting-api/gradle.lockfile | 4 ++-- agent/agent-profiler/agent-alerting/gradle.lockfile | 6 +++--- .../agent-profiler/agent-diagnostics-api/gradle.lockfile | 4 ++-- agent/agent-tooling/gradle.lockfile | 8 ++++---- .../sdk/metrics/internal/view/UserAgents.java | 2 +- agent/agent/gradle.lockfile | 4 ++-- agent/azure-monitor-exporter/gradle.lockfile | 6 +++--- .../exporter/implementation/SemanticAttributes.java | 2 +- .../applicationinsights-web-2.3/gradle.lockfile | 4 ++-- .../azure-functions-worker-stub/gradle.lockfile | 4 ++-- agent/instrumentation/azure-functions/gradle.lockfile | 4 ++-- agent/instrumentation/methods/gradle.lockfile | 4 ++-- .../instrumentation/methods/ai/MethodSingletons.java | 1 - agent/instrumentation/micrometer-1.0/gradle.lockfile | 4 ++-- agent/runtime-attach/gradle.lockfile | 4 ++-- classic-sdk/core/gradle.lockfile | 4 ++-- classic-sdk/web/gradle.lockfile | 4 ++-- dependencyManagement/build.gradle.kts | 2 +- etw/java/gradle.lockfile | 6 +++--- 24 files changed, 51 insertions(+), 52 deletions(-) diff --git a/agent/agent-bootstrap/gradle.lockfile b/agent/agent-bootstrap/gradle.lockfile index c764c12a3ad..6e758a8de08 100644 --- a/agent/agent-bootstrap/gradle.lockfile +++ b/agent/agent-bootstrap/gradle.lockfile @@ -13,9 +13,9 @@ com.squareup.okio:okio:1.17.5=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:2.0.7=runtimeClasspath +org.slf4j:slf4j-api:1.7.36=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-for-testing/gradle.lockfile b/agent/agent-for-testing/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/agent-for-testing/gradle.lockfile +++ b/agent/agent-for-testing/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile index 11376732d2a..1baba83ff56 100644 --- a/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-api/gradle.lockfile @@ -8,9 +8,9 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:2.0.7=runtimeClasspath +org.slf4j:slf4j-api:1.7.36=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile index 11376732d2a..1baba83ff56 100644 --- a/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-core/gradle.lockfile @@ -8,9 +8,9 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:2.0.7=runtimeClasspath +org.slf4j:slf4j-api:1.7.36=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile b/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile +++ b/agent/agent-gc-monitor/gc-monitor-tests/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-profiler/agent-alerting-api/gradle.lockfile b/agent/agent-profiler/agent-alerting-api/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/agent-profiler/agent-alerting-api/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting-api/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-profiler/agent-alerting/gradle.lockfile b/agent/agent-profiler/agent-alerting/gradle.lockfile index 930d29b19c1..12dc0cb1db4 100644 --- a/agent/agent-profiler/agent-alerting/gradle.lockfile +++ b/agent/agent-profiler/agent-alerting/gradle.lockfile @@ -7,9 +7,9 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:2.0.7=runtimeClasspath +org.slf4j:slf4j-api:1.7.36=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile b/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile +++ b/agent/agent-profiler/agent-diagnostics-api/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-tooling/gradle.lockfile b/agent/agent-tooling/gradle.lockfile index 525bfc1f3dd..7e294cac85a 100644 --- a/agent/agent-tooling/gradle.lockfile +++ b/agent/agent-tooling/gradle.lockfile @@ -52,8 +52,8 @@ io.netty:netty-transport-native-unix-common:4.1.91.Final=runtimeClasspath io.netty:netty-transport:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath io.projectreactor.netty:reactor-netty-core:1.1.6=runtimeClasspath io.projectreactor.netty:reactor-netty-http:1.1.6=runtimeClasspath io.projectreactor:reactor-core:3.5.5=runtimeClasspath @@ -65,7 +65,7 @@ org.apache.commons:commons-lang3:3.12.0=runtimeClasspath org.apache.commons:commons-text:1.10.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.reactivestreams:reactive-streams:1.0.4=runtimeClasspath -org.slf4j:jcl-over-slf4j:2.0.7=runtimeClasspath -org.slf4j:slf4j-api:2.0.7=runtimeClasspath +org.slf4j:jcl-over-slf4j:1.7.36=runtimeClasspath +org.slf4j:slf4j-api:1.7.36=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java index 6b038e5eb3a..e440a26a8f5 100644 --- a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java @@ -9,7 +9,7 @@ final class UserAgents { static boolean isBot(Attributes attributes) { - String userAgent = attributes.get(SemanticAttributes.HTTP_USER_AGENT); + String userAgent = attributes.get(SemanticAttributes.USER_AGENT_ORIGINAL); return userAgent != null && userAgent.contains("AlwaysOn"); } diff --git a/agent/agent/gradle.lockfile b/agent/agent/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/agent/gradle.lockfile +++ b/agent/agent/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/azure-monitor-exporter/gradle.lockfile b/agent/azure-monitor-exporter/gradle.lockfile index a1e4b69dd1f..e77a6f624a4 100644 --- a/agent/azure-monitor-exporter/gradle.lockfile +++ b/agent/azure-monitor-exporter/gradle.lockfile @@ -42,8 +42,8 @@ io.netty:netty-transport-native-unix-common:4.1.91.Final=runtimeClasspath io.netty:netty-transport:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath io.projectreactor.netty:reactor-netty-core:1.1.6=runtimeClasspath io.projectreactor.netty:reactor-netty-http:1.1.6=runtimeClasspath io.projectreactor:reactor-core:3.5.5=runtimeClasspath @@ -54,6 +54,6 @@ net.minidev:json-smart:2.4.10=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.ow2.asm:asm:9.3=runtimeClasspath org.reactivestreams:reactive-streams:1.0.4=runtimeClasspath -org.slf4j:slf4j-api:2.0.7=runtimeClasspath +org.slf4j:slf4j-api:1.7.36=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SemanticAttributes.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SemanticAttributes.java index b6e490d2a1f..77e7806ee96 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SemanticAttributes.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SemanticAttributes.java @@ -603,7 +603,7 @@ public final class SemanticAttributes { * Value of the HTTP * User-Agent header sent by the client. */ - public static final AttributeKey HTTP_USER_AGENT = stringKey("http.user_agent"); + public static final AttributeKey HTTP_USER_AGENT = stringKey("user_agent.original"); /** * The size of the request payload body in bytes. This is the number of bytes transferred diff --git a/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile b/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile +++ b/agent/instrumentation/applicationinsights-web-2.3/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile b/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile +++ b/agent/instrumentation/azure-functions-worker-stub/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/instrumentation/azure-functions/gradle.lockfile b/agent/instrumentation/azure-functions/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/instrumentation/azure-functions/gradle.lockfile +++ b/agent/instrumentation/azure-functions/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/instrumentation/methods/gradle.lockfile b/agent/instrumentation/methods/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/instrumentation/methods/gradle.lockfile +++ b/agent/instrumentation/methods/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java index 3b1717f5b06..e39f2c3d50a 100644 --- a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java +++ b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java @@ -33,7 +33,6 @@ public final class MethodSingletons { GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, CodeSpanNameExtractor.create(codeAttributesGetter)) - .setInstrumentationVersion("1.23.0-alpha-applicationinsights") .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) // START APPLICATION INSIGHTS MODIFICATIONS .buildInstrumenter(new MethodSpanKindExtractor()); diff --git a/agent/instrumentation/micrometer-1.0/gradle.lockfile b/agent/instrumentation/micrometer-1.0/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/agent/instrumentation/micrometer-1.0/gradle.lockfile +++ b/agent/instrumentation/micrometer-1.0/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/agent/runtime-attach/gradle.lockfile b/agent/runtime-attach/gradle.lockfile index 3eefaea077a..6e914e0c4d2 100644 --- a/agent/runtime-attach/gradle.lockfile +++ b/agent/runtime-attach/gradle.lockfile @@ -8,8 +8,8 @@ io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.contrib:opentelemetry-runtime-attach-core:1.18.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath net.bytebuddy:byte-buddy-agent:1.11.18=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath diff --git a/classic-sdk/core/gradle.lockfile b/classic-sdk/core/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/classic-sdk/core/gradle.lockfile +++ b/classic-sdk/core/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/classic-sdk/web/gradle.lockfile b/classic-sdk/web/gradle.lockfile index e8ea0871fd7..4d1b2cdf810 100644 --- a/classic-sdk/web/gradle.lockfile +++ b/classic-sdk/web/gradle.lockfile @@ -7,8 +7,8 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 7ffa9d1c4cb..205abc6a3fd 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -11,7 +11,7 @@ data class DependencySet(val group: String, val version: String, val modules: Li val dependencyVersions = hashMapOf() rootProject.extra["versions"] = dependencyVersions -val otelVersion = "1.23.1" +val otelVersion = "1.25.0" val otelInstrumentationAlphaVersion = "1.25.0-alpha" val otelInstrumentationVersion = "1.25.0" val otelContribAlphaVersion = "1.18.0-alpha" diff --git a/etw/java/gradle.lockfile b/etw/java/gradle.lockfile index 930d29b19c1..12dc0cb1db4 100644 --- a/etw/java/gradle.lockfile +++ b/etw/java/gradle.lockfile @@ -7,9 +7,9 @@ com.google.guava:guava-bom:31.1-jre=runtimeClasspath io.netty:netty-bom:4.1.91.Final=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.25.0-alpha=runtimeClasspath io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.25.0=runtimeClasspath -io.opentelemetry:opentelemetry-bom-alpha:1.23.1-alpha=runtimeClasspath -io.opentelemetry:opentelemetry-bom:1.23.1=runtimeClasspath +io.opentelemetry:opentelemetry-bom-alpha:1.25.0-alpha=runtimeClasspath +io.opentelemetry:opentelemetry-bom:1.25.0=runtimeClasspath org.junit:junit-bom:5.9.2=runtimeClasspath -org.slf4j:slf4j-api:2.0.7=runtimeClasspath +org.slf4j:slf4j-api:1.7.36=runtimeClasspath org.testcontainers:testcontainers-bom:1.18.0=runtimeClasspath empty= From 030101f191d6b93da58e32a8ba812dde2016a29c Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 13:18:53 -0700 Subject: [PATCH 30/46] Fix methodTest --- .../javaagent/instrumentation/methods/ai/MethodSingletons.java | 1 + 1 file changed, 1 insertion(+) diff --git a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java index e39f2c3d50a..143e12d5737 100644 --- a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java +++ b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java @@ -33,6 +33,7 @@ public final class MethodSingletons { GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, CodeSpanNameExtractor.create(codeAttributesGetter)) + .setInstrumentationVersion("1.25.0-alpha-applicationinsights") .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) // START APPLICATION INSIGHTS MODIFICATIONS .buildInstrumenter(new MethodSpanKindExtractor()); From 859b43ad9401c935dd957c3b54271d4d14bd056e Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 13:20:17 -0700 Subject: [PATCH 31/46] Validate 'user_agent.original' --- .../AzureSdkControllerSpansEnabledTest.java | 1 + .../applicationinsights/smoketest/AzureSdkTest.java | 1 + .../smoketest/CassandraTest.java | 1 + .../smoketest/ClassicSdkWebInterop2xTest.java | 1 + .../smoketest/ClassicSdkWebInterop3xTest.java | 2 ++ .../ClassicSdkWebInterop3xUsingOld3xAgentTest.java | 1 + .../smoketest/CustomDimensionsTest.java | 1 + .../smoketest/CustomInstrumentationTest.java | 2 ++ .../smoketest/HttpClientTest.java | 4 ++++ .../smoketest/HttpHeadersTest.java | 3 +++ .../smoketest/HttpPreaggregatedMetricsTest.java | 4 ++++ .../smoketest/HttpServer4xxDefaultTest.java | 1 + .../smoketest/HttpServer4xxTest.java | 1 + .../smoketest/InheritedAttributesTest.java | 1 + .../smoketest/JmsControllerSpansEnabledTest.java | 2 ++ .../smoketest/JmsDisabledTest.java | 2 ++ .../applicationinsights/smoketest/JmsTest.java | 2 ++ .../applicationinsights/smoketest/JdbcTest.java | 13 +++++++++++++ .../smoketest/JdbcUnmaskedTest.java | 1 + .../applicationinsights/smoketest/JedisTest.java | 1 + .../smoketest/JettyNativeHandlerTest.java | 1 + .../smoketest/KafkaControllerSpansEnabledTest.java | 2 ++ .../smoketest/KafkaDisabledTest.java | 2 ++ .../applicationinsights/smoketest/KafkaTest.java | 2 ++ .../applicationinsights/smoketest/LettuceTest.java | 1 + .../smoketest/MicrometerTest.java | 1 + .../applicationinsights/smoketest/MongoTest.java | 1 + .../smoketest/MongoUnmaskedTest.java | 1 + .../smoketest/NonDaemonThreadsTest.java | 2 ++ ...lemetryApiSupportControllerSpansEnabledTest.java | 2 ++ ...enTelemetryApiSupportInstrumentationKeyTest.java | 1 + .../smoketest/OpenTelemetryApiSupportTest.java | 3 +++ .../smoketest/RuntimeAttachTest.java | 1 + ...untimeAttachWithDelayedConnectionStringTest.java | 1 + .../SpringBootControllerSpansEnabledTest.java | 3 +++ .../smoketest/SpringBootTest.java | 3 +++ .../smoketest/SpringBootAutoTest.java | 1 + ...SpringCloudStreamControllerSpansEnabledTest.java | 1 + .../smoketest/SpringCloudStreamTest.java | 1 + .../smoketest/TelemetryProcessorsTest.java | 2 ++ .../applicationinsights/smoketest/WebFluxTest.java | 3 +++ .../applicationinsights/smoketest/GrpcTest.java | 4 ++++ 42 files changed, 84 insertions(+) diff --git a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java index 9c6585f84bf..d803f6502d2 100644 --- a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java +++ b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java @@ -39,6 +39,7 @@ void test() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController.test"); diff --git a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java index 9c87bd28c16..e1f452253c4 100644 --- a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java +++ b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java @@ -34,6 +34,7 @@ void test() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("hello"); diff --git a/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java b/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java index 207df2b2170..862b599fe5b 100644 --- a/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java +++ b/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java @@ -39,6 +39,7 @@ void cassandra() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT test.test"); diff --git a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java index fb400339b66..a946a3485bf 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java @@ -39,6 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java index 5e2f62f4cd4..cb48df87639 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java @@ -39,6 +39,8 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java index b4bc373dbe7..f8fdaf96254 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java @@ -39,6 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java index e7904c8dfff..d089cb536c1 100644 --- a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java +++ b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java @@ -36,6 +36,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.application.ver", "123"); diff --git a/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java b/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java index 7c7068529ba..5d06c69c43e 100644 --- a/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java +++ b/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java @@ -48,6 +48,7 @@ void internalSpan() throws Exception { assertThat(telemetry.rd.getResponseCode()).isEqualTo("200"); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController.run"); @@ -92,6 +93,7 @@ void serverSpan() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /server-span"); assertThat(rd1.getResponseCode()).isEqualTo("200"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rd2.getName()).isEqualTo("TestController.run"); diff --git a/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java b/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java index 3f27f78a2ff..d1d933cad31 100644 --- a/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java +++ b/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java @@ -80,6 +80,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); // TODO (trask) add this check in all smoke tests? assertThat(telemetry.rdEnvelope.getSampleRate()).isNull(); @@ -91,6 +92,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd1.getResultCode()).isEqualTo("200"); assertThat(telemetry.rdd1.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdd1.getSuccess()).isTrue(); assertThat(telemetry.rddEnvelope1.getSampleRate()).isNull(); @@ -101,6 +103,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd2.getResultCode()).isEqualTo("404"); assertThat(telemetry.rdd2.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdd2.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope2.getSampleRate()).isNull(); @@ -111,6 +114,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd3.getResultCode()).isEqualTo("500"); assertThat(telemetry.rdd3.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdd3.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope3.getSampleRate()).isNull(); diff --git a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java index d99cd11835c..88111de80cd 100644 --- a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java +++ b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java @@ -33,6 +33,7 @@ void testServerHeaders() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); } @@ -45,6 +46,7 @@ void testClientHeaders() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(2); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getProperties().get("http.request.header.abc")) .isEqualTo("testing123"); @@ -52,6 +54,7 @@ void testClientHeaders() throws Exception { assertThat(telemetry.rdd1.getProperties()).hasSize(3); assertThat(telemetry.rdd1.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdd1.getSuccess()).isTrue(); } diff --git a/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java b/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java index 3afdce2b2a5..7ac9831895f 100644 --- a/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java +++ b/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java @@ -59,6 +59,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdd1.getData()).isEqualTo(successUrlWithQueryString); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdEnvelope.getSampleRate()).isNull(); @@ -68,6 +69,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd1.getResultCode()).isEqualTo("200"); assertThat(telemetry.rdd1.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdd1.getSuccess()).isTrue(); assertThat(telemetry.rddEnvelope1.getSampleRate()).isNull(); @@ -78,6 +80,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd2.getResultCode()).isEqualTo("404"); assertThat(telemetry.rdd2.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdd2.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope2.getSampleRate()).isNull(); @@ -88,6 +91,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd3.getResultCode()).isEqualTo("500"); assertThat(telemetry.rdd3.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdd3.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope3.getSampleRate()).isNull(); diff --git a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java index 6d720049109..dd76a4c214c 100644 --- a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java +++ b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java @@ -34,6 +34,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java index aafbdca015b..c1b6cd338d7 100644 --- a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java +++ b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java @@ -34,6 +34,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java b/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java index cbc81d34a9f..bdb143892da 100644 --- a/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java +++ b/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java @@ -50,6 +50,7 @@ void test() throws Exception { assertThat(rd.getProperties()).containsEntry("tenant", "z"); assertThat(rd.getProperties()).hasSize(2); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd.getSuccess()).isTrue(); assertThat(md.getMessage()).isEqualTo("hello"); diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java index 341becba080..c1f36f9cd8a 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java @@ -54,6 +54,7 @@ void doMostBasicTest() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("HelloController.sendMessage"); @@ -80,6 +81,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd3.getType()).isEqualTo("Http"); assertThat(rdd3.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd3.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd3.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java index 182fed168ea..001ac2ed7d7 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java @@ -33,6 +33,7 @@ void doMostBasicTest() throws Exception { assertThat(rd.getName()).isEqualTo("GET /sendMessage"); assertThat(rd.getResponseCode()).isEqualTo("200"); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd.getSuccess()).isTrue(); // verify the downstream http dependency that is no longer part of the same trace @@ -48,6 +49,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd.getName()).isEqualTo("GET /"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd.getSuccess()).isTrue(); // sleep a bit and make sure no kafka "requests" or dependencies are reported diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java index 5f5faa07e0a..f16c5258b94 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java @@ -57,6 +57,7 @@ void doMostBasicTest() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("message send"); @@ -76,6 +77,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd2.getType()).isEqualTo("Http"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd2.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java index 10d4d04d944..829b8c55ae8 100644 --- a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java +++ b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java @@ -47,6 +47,7 @@ void hsqldbPreparedStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); @@ -67,6 +68,7 @@ void hsqldbStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); @@ -87,6 +89,7 @@ void hsqldbLargeStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); StringBuilder a2000 = new StringBuilder(); @@ -115,6 +118,7 @@ void hsqldbBatchPreparedStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("INSERT testdb.abc"); @@ -137,6 +141,7 @@ void hsqldbBatchStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("insert testdb.abc"); @@ -163,6 +168,7 @@ void mysqlPreparedStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT mysql.abc"); @@ -186,6 +192,7 @@ void mysqlStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT mysql.abc"); @@ -207,6 +214,7 @@ void postgresPreparedStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT postgres.abc"); @@ -228,6 +236,7 @@ void postgresStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT postgres.abc"); @@ -249,6 +258,7 @@ void sqlServerPreparedStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -269,6 +279,7 @@ void sqlServerStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -290,6 +301,7 @@ void oraclePreparedStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -311,6 +323,7 @@ void oracleStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); diff --git a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java index 1dd885272cd..1aa4e0b3cf2 100644 --- a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java +++ b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java @@ -22,6 +22,7 @@ void hsqldbStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); diff --git a/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java b/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java index 47aca462c7e..f04d631f1e7 100644 --- a/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java +++ b/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java @@ -39,6 +39,7 @@ void jedis() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("GET"); diff --git a/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java b/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java index 31f5f135dbe..6ef7516beff 100644 --- a/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java +++ b/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java @@ -34,6 +34,7 @@ void doSimpleTest() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java index 51d8bcde4ce..8b4a65c08b4 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java @@ -61,6 +61,7 @@ void doMostBasicTest() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("HelloController.sendMessage"); @@ -88,6 +89,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd3.getType()).isEqualTo("Http"); assertThat(rdd3.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd3.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd3.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java index ddb3bebf9ea..cc4f01c95a5 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java @@ -40,6 +40,7 @@ void doMostBasicTest() throws Exception { assertThat(rd.getName()).isEqualTo("GET /sendMessage"); assertThat(rd.getResponseCode()).isEqualTo("200"); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd.getSuccess()).isTrue(); // verify the downstream http dependency that is no longer part of the same trace @@ -55,6 +56,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd.getName()).isEqualTo("GET /"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd.getSuccess()).isTrue(); // sleep a bit and make sure no kafka "requests" or dependencies are reported diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java index 5014ab09782..b91305f3719 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java @@ -74,6 +74,7 @@ void doMostBasicTest() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("mytopic send"); @@ -93,6 +94,7 @@ void doMostBasicTest() throws Exception { assertThat(rdd2.getType()).isEqualTo("Http"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd2.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java b/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java index a33c68506d9..f28b1f229db 100644 --- a/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java +++ b/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java @@ -39,6 +39,7 @@ void lettuce() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("GET"); diff --git a/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java b/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java index c8ab17797d9..f580bbaf916 100644 --- a/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java +++ b/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java @@ -40,6 +40,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); List metricItems = diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java index da884aa3b1e..dc9fff4becd 100644 --- a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java +++ b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java @@ -39,6 +39,7 @@ void mongo() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("find testdb.test"); diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java index e3584ec2f4f..5ecf7b09fbb 100644 --- a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java +++ b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java @@ -32,6 +32,7 @@ void mongo() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("find testdb.test"); diff --git a/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java b/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java index db317fde319..08214d2b6c3 100644 --- a/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java +++ b/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java @@ -51,6 +51,7 @@ void spawnAnotherJavaProcess() throws Exception { MessageData md = (MessageData) ((Data) mdEnvelope.getData()).getBaseData(); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd.getName()).isEqualTo("GET /search"); @@ -58,6 +59,7 @@ void spawnAnotherJavaProcess() throws Exception { assertThat(rdd.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com/search?q=test"); assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd.getSuccess()).isTrue(); assertThat(md.getMessage()).isEqualTo("done"); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java index 77adbb369cb..03731c4fea2 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java @@ -30,6 +30,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("myspanname"); @@ -100,6 +101,7 @@ private static void testAnnotations( assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController." + controllerMethodName); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java index 7c5891979b6..033816c1edc 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java @@ -38,6 +38,7 @@ void testOverridingIkey() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); // this is no longer supported since 3.4.0, but the test is still included here to (manually) diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index 546d7b022cc..9035cd4ab23 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -38,6 +38,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rdEnvelope.getIKey()).isEqualTo("00000000-0000-0000-0000-0FEEDDADBEEF"); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.cloud.role", "testrolename"); @@ -64,6 +65,7 @@ void testOverridingConnectionStringEtc() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); // checking that instrumentation key, cloud role name, cloud role instance, and sdk version are @@ -106,6 +108,7 @@ private static void testAnnotations(String path, String methodName) throws Excep assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController." + methodName); diff --git a/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java b/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java index c147016f2cd..38252e5b174 100644 --- a/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java +++ b/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java @@ -33,6 +33,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdEnvelope.getTags()) diff --git a/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java b/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java index 0dbeb90fbcc..eba50da2587 100644 --- a/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java +++ b/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java @@ -35,6 +35,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdEnvelope.getTags()) diff --git a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java index b449f2bf4b1..456a92f2246 100644 --- a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java +++ b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java @@ -94,6 +94,7 @@ public boolean test(Envelope input) { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/throwsException"); assertThat(rd.getResponseCode()).isEqualTo("500"); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd.getSuccess()).isFalse(); assertThat(rdd1.getName()).isEqualTo("TestController.resultCodeTest"); @@ -140,6 +141,7 @@ void testAsyncDependencyCall() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/asyncDependencyCall"); assertThat(rd.getResponseCode()).isEqualTo("200"); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("TestController.asyncDependencyCall"); @@ -153,6 +155,7 @@ void testAsyncDependencyCall() throws Exception { assertThat(rdd2.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd2.getSuccess()).isTrue(); // TODO (trask): why is spring-webmvc instrumentation capturing this twice? diff --git a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java index 18a4905fdb6..b87b74ee13b 100644 --- a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java +++ b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java @@ -88,6 +88,7 @@ void testResultCodeWhenRestControllerThrows() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/throwsException"); assertThat(rd.getResponseCode()).isEqualTo("500"); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd.getSuccess()).isFalse(); SmokeTestExtension.assertParentChild( @@ -117,12 +118,14 @@ void testAsyncDependencyCall() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/asyncDependencyCall"); assertThat(rd.getResponseCode()).isEqualTo("200"); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("GET /"); assertThat(rdd1.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd1.getTarget()).isEqualTo("www.bing.com"); assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd1.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild( diff --git a/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java b/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java index e7d56a31ffe..b690ca2e104 100644 --- a/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java +++ b/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java @@ -40,6 +40,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java index 3194248e3d0..b0ea1602932 100644 --- a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java +++ b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java @@ -66,6 +66,7 @@ void doMostBasicTest() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("GreetingsController.sendMessage"); diff --git a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java index 7a67c337b8f..f5de23bdd9c 100644 --- a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java +++ b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java @@ -59,6 +59,7 @@ void doMostBasicTest() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("greetings send"); diff --git a/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java b/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java index c7d0ee10479..a08943f97dc 100644 --- a/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java +++ b/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java @@ -37,6 +37,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(5); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); // Log processor test List logs = testing.mockedIngestion.getMessageDataInRequest(1); @@ -58,6 +59,7 @@ void doSimpleTestPiiData() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(5); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isTrue(); } diff --git a/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java b/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java index 77a4fc3794e..e795105fcc5 100644 --- a/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java +++ b/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java @@ -34,6 +34,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } @@ -49,6 +50,7 @@ void testException() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } @@ -64,6 +66,7 @@ void testFutureException() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java b/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java index c75c8c24646..3242f583e51 100644 --- a/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java +++ b/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java @@ -61,9 +61,11 @@ void doSimpleTest() throws Exception { assertThat(rdd.getTarget()).isEqualTo("localhost:10203"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd.getSuccess()).isTrue(); // TODO (trask): verify rd2 @@ -107,9 +109,11 @@ void doConversationTest() throws Exception { assertThat(rdd.getTarget()).isEqualTo("localhost:10203"); assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(rdd.getSuccess()).isTrue(); // TODO (trask): verify rd2 From 144a6a0b3057e17779a20457f1b6508d2e487b34 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 13:23:59 -0700 Subject: [PATCH 32/46] Remove duplicate line --- .../smoketest/ClassicSdkWebInterop3xTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java index cb48df87639..c411e4f236a 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java @@ -40,7 +40,6 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); assertThat(telemetry.rd.getSuccess()).isFalse(); } From 50e734fc26159b72573dc308502a68c8103db4f9 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 14:03:39 -0700 Subject: [PATCH 33/46] Fix tests --- .../AzureSdkControllerSpansEnabledTest.java | 4 +- .../smoketest/AzureSdkTest.java | 4 +- .../smoketest/CassandraTest.java | 4 +- .../smoketest/ClassicSdkWebInterop2xTest.java | 5 +-- .../smoketest/ClassicSdkWebInterop3xTest.java | 3 +- ...sicSdkWebInterop3xUsingOld3xAgentTest.java | 5 +-- .../smoketest/CustomDimensionsTest.java | 4 +- .../smoketest/CustomInstrumentationTest.java | 8 ++-- .../smoketest/HttpClientTest.java | 14 +++---- .../smoketest/HttpHeadersTest.java | 11 +++-- .../HttpPreaggregatedMetricsTest.java | 13 +++--- .../smoketest/HttpServer4xxDefaultTest.java | 4 +- .../smoketest/HttpServer4xxTest.java | 4 +- .../smoketest/InheritedAttributesTest.java | 5 ++- .../JmsControllerSpansEnabledTest.java | 9 +++-- .../smoketest/JmsDisabledTest.java | 9 +++-- .../smoketest/JmsTest.java | 10 +++-- .../smoketest/JdbcTest.java | 40 +++++++------------ .../smoketest/JdbcUnmaskedTest.java | 4 +- .../smoketest/JedisTest.java | 4 +- .../smoketest/JettyNativeHandlerTest.java | 4 +- .../KafkaControllerSpansEnabledTest.java | 9 +++-- .../smoketest/KafkaDisabledTest.java | 9 +++-- .../smoketest/KafkaTest.java | 9 +++-- .../smoketest/LettuceTest.java | 4 +- .../smoketest/MicrometerTest.java | 4 +- .../smoketest/MongoTest.java | 4 +- .../smoketest/MongoUnmaskedTest.java | 4 +- .../smoketest/NonDaemonThreadsTest.java | 9 +++-- ...yApiSupportControllerSpansEnabledTest.java | 7 ++-- ...metryApiSupportInstrumentationKeyTest.java | 4 +- .../OpenTelemetryApiSupportTest.java | 10 ++--- .../smoketest/RuntimeAttachTest.java | 4 +- ...AttachWithDelayedConnectionStringTest.java | 4 +- .../SpringBootControllerSpansEnabledTest.java | 13 +++--- .../smoketest/SpringBootTest.java | 13 +++--- .../smoketest/SpringBootAutoTest.java | 4 +- ...CloudStreamControllerSpansEnabledTest.java | 5 ++- .../smoketest/SpringCloudStreamTest.java | 5 ++- .../smoketest/TelemetryProcessorsTest.java | 7 ++-- .../smoketest/WebFluxTest.java | 10 ++--- .../smoketest/GrpcTest.java | 19 +++++---- 42 files changed, 157 insertions(+), 168 deletions(-) diff --git a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java index d803f6502d2..60597b72e7c 100644 --- a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java +++ b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkControllerSpansEnabledTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; import com.microsoft.applicationinsights.smoketest.schemav2.RemoteDependencyData; @@ -38,8 +39,7 @@ void test() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController.test"); diff --git a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java index e1f452253c4..f678b1f6f6b 100644 --- a/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java +++ b/smoke-tests/apps/AzureSdk/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/AzureSdkTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,8 +34,7 @@ void test() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("hello"); diff --git a/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java b/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java index 862b599fe5b..f36ff9853a1 100644 --- a/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java +++ b/smoke-tests/apps/Cassandra/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CassandraTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -38,8 +39,7 @@ void cassandra() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT test.test"); diff --git a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java index a946a3485bf..fd2ed872346 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -38,9 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); - + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java index c411e4f236a..e20f856e3ca 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java @@ -38,8 +38,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java index f8fdaf96254..02fc508aa9c 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -38,9 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); - + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java index d089cb536c1..3bf72c29831 100644 --- a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java +++ b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java @@ -35,8 +35,8 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsKey("home"); assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.application.ver", "123"); diff --git a/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java b/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java index 5d06c69c43e..a1c354948f5 100644 --- a/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java +++ b/smoke-tests/apps/CustomInstrumentation/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomInstrumentationTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -47,8 +48,7 @@ void internalSpan() throws Exception { assertThat(telemetry.rd.getName()).isEqualTo("GET /internal-span"); assertThat(telemetry.rd.getResponseCode()).isEqualTo("200"); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController.run"); @@ -92,8 +92,8 @@ void serverSpan() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /server-span"); assertThat(rd1.getResponseCode()).isEqualTo("200"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd1.getSuccess()).isTrue(); assertThat(rd2.getName()).isEqualTo("TestController.run"); diff --git a/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java b/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java index d1d933cad31..f3be7e73def 100644 --- a/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java +++ b/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -79,8 +80,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { Telemetry telemetry = testing.getTelemetry(3); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); // TODO (trask) add this check in all smoke tests? assertThat(telemetry.rdEnvelope.getSampleRate()).isNull(); @@ -91,8 +91,8 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd1.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd1.getResultCode()).isEqualTo("200"); assertThat(telemetry.rdd1.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(telemetry.rdd1.getSuccess()).isTrue(); assertThat(telemetry.rddEnvelope1.getSampleRate()).isNull(); @@ -102,8 +102,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd2.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd2.getResultCode()).isEqualTo("404"); assertThat(telemetry.rdd2.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rdd2.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope2.getSampleRate()).isNull(); @@ -113,8 +112,7 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd3.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd3.getResultCode()).isEqualTo("500"); assertThat(telemetry.rdd3.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rdd3.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope3.getSampleRate()).isNull(); diff --git a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java index 88111de80cd..341b6e7a38f 100644 --- a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java +++ b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -32,8 +33,7 @@ void testServerHeaders() throws Exception { assertThat(telemetry.rd.getProperties()).containsKey("http.request.header.host"); assertThat(telemetry.rd.getProperties()).hasSize(4); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); } @@ -45,16 +45,15 @@ void testClientHeaders() throws Exception { assertThat(telemetry.rd.getProperties()).containsKey("http.request.header.host"); assertThat(telemetry.rd.getProperties()).hasSize(2); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getProperties().get("http.request.header.abc")) .isEqualTo("testing123"); assertThat(telemetry.rdd1.getProperties()).containsKey("http.response.header.date"); assertThat(telemetry.rdd1.getProperties()).hasSize(3); assertThat(telemetry.rdd1.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(telemetry.rdd1.getSuccess()).isTrue(); } diff --git a/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java b/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java index 7ac9831895f..0cbf515fe4b 100644 --- a/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java +++ b/smoke-tests/apps/HttpPreaggregatedMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpPreaggregatedMetricsTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.DataPoint; @@ -58,8 +59,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit Telemetry telemetry = testing.getTelemetry(3); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rdd1.getData()).isEqualTo(successUrlWithQueryString); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdEnvelope.getSampleRate()).isNull(); @@ -68,8 +68,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd1.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd1.getResultCode()).isEqualTo("200"); assertThat(telemetry.rdd1.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rdd1.getSuccess()).isTrue(); assertThat(telemetry.rddEnvelope1.getSampleRate()).isNull(); @@ -79,8 +78,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd2.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd2.getResultCode()).isEqualTo("404"); assertThat(telemetry.rdd2.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rdd2.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope2.getSampleRate()).isNull(); @@ -90,8 +88,7 @@ private static void verifyHttpclientRequestsAndDependencies(String successUrlWit assertThat(telemetry.rdd3.getTarget()).isEqualTo("mock.codes"); assertThat(telemetry.rdd3.getResultCode()).isEqualTo("500"); assertThat(telemetry.rdd3.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rdd3.getSuccess()).isFalse(); assertThat(telemetry.rddEnvelope3.getSampleRate()).isNull(); diff --git a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java index dd76a4c214c..ee83f61e22c 100644 --- a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java +++ b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxDefaultTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,8 +34,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isFalse(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java index c1b6cd338d7..8d7acc7fc0f 100644 --- a/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java +++ b/smoke-tests/apps/HttpServer4xx/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpServer4xxTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,8 +34,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java b/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java index bdb143892da..aa27fca2286 100644 --- a/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java +++ b/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -49,8 +50,8 @@ void test() throws Exception { assertThat(rd.getResponseCode()).isEqualTo("200"); assertThat(rd.getProperties()).containsEntry("tenant", "z"); assertThat(rd.getProperties()).hasSize(2); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd.getSuccess()).isTrue(); assertThat(md.getMessage()).isEqualTo("hello"); diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java index c1f36f9cd8a..b0721320651 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsControllerSpansEnabledTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -53,8 +54,8 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope3.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("HelloController.sendMessage"); @@ -80,8 +81,8 @@ void doMostBasicTest() throws Exception { assertThat(rdd3.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd3.getType()).isEqualTo("Http"); assertThat(rdd3.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd3.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd3.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd3.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java index 001ac2ed7d7..1ede879b094 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsDisabledTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -32,8 +33,8 @@ void doMostBasicTest() throws Exception { assertThat(rd.getName()).isEqualTo("GET /sendMessage"); assertThat(rd.getResponseCode()).isEqualTo("200"); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd.getSuccess()).isTrue(); // verify the downstream http dependency that is no longer part of the same trace @@ -48,8 +49,8 @@ void doMostBasicTest() throws Exception { assertThat(rdd.getName()).isEqualTo("GET /"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com"); - assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd.getSuccess()).isTrue(); // sleep a bit and make sure no kafka "requests" or dependencies are reported diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java index f16c5258b94..9e876dc50ba 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java @@ -56,8 +56,9 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope2.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("message send"); @@ -76,8 +77,9 @@ void doMostBasicTest() throws Exception { assertThat(rdd2.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd2.getType()).isEqualTo("Http"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd2.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd2.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java index 829b8c55ae8..48ae151b257 100644 --- a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java +++ b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,8 +47,7 @@ void hsqldbPreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); @@ -67,8 +67,7 @@ void hsqldbStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); @@ -88,8 +87,7 @@ void hsqldbLargeStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); StringBuilder a2000 = new StringBuilder(); @@ -117,8 +115,7 @@ void hsqldbBatchPreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("INSERT testdb.abc"); @@ -140,8 +137,7 @@ void hsqldbBatchStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("insert testdb.abc"); @@ -167,8 +163,7 @@ void mysqlPreparedStatement() throws Exception { testing.getTelemetry(1, rdd -> !rdd.getData().startsWith("/* mysql-connector-java? ")); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT mysql.abc"); @@ -191,8 +186,7 @@ void mysqlStatement() throws Exception { testing.getTelemetry(1, rdd -> !rdd.getData().startsWith("/* mysql-connector-java? ")); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT mysql.abc"); @@ -213,8 +207,7 @@ void postgresPreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT postgres.abc"); @@ -235,8 +228,7 @@ void postgresStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT postgres.abc"); @@ -257,8 +249,7 @@ void sqlServerPreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -278,8 +269,7 @@ void sqlServerStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -300,8 +290,7 @@ void oraclePreparedStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); @@ -322,8 +311,7 @@ void oracleStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT abc"); diff --git a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java index 1aa4e0b3cf2..8f880852635 100644 --- a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java +++ b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java @@ -21,8 +21,8 @@ void hsqldbStatement() throws Exception { Telemetry telemetry = testing.getTelemetry(1); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); diff --git a/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java b/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java index f04d631f1e7..ee9efd4338e 100644 --- a/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java +++ b/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java @@ -38,8 +38,8 @@ void jedis() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("GET"); diff --git a/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java b/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java index 6ef7516beff..80a41f1befe 100644 --- a/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java +++ b/smoke-tests/apps/JettyNativeHandler/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JettyNativeHandlerTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,8 +34,7 @@ void doSimpleTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java index 8b4a65c08b4..69fcdb4d741 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaControllerSpansEnabledTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -60,8 +61,8 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope3.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("HelloController.sendMessage"); @@ -88,8 +89,8 @@ void doMostBasicTest() throws Exception { assertThat(rdd3.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd3.getType()).isEqualTo("Http"); assertThat(rdd3.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd3.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd3.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd3.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java index cc4f01c95a5..6e819626597 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaDisabledTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -39,8 +40,8 @@ void doMostBasicTest() throws Exception { assertThat(rd.getName()).isEqualTo("GET /sendMessage"); assertThat(rd.getResponseCode()).isEqualTo("200"); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd.getSuccess()).isTrue(); // verify the downstream http dependency that is no longer part of the same trace @@ -55,8 +56,8 @@ void doMostBasicTest() throws Exception { assertThat(rdd.getName()).isEqualTo("GET /"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com"); - assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd.getSuccess()).isTrue(); // sleep a bit and make sure no kafka "requests" or dependencies are reported diff --git a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java index b91305f3719..ac56d4cfe85 100644 --- a/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java +++ b/smoke-tests/apps/Kafka/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/KafkaTest.java @@ -14,6 +14,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -73,8 +74,8 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope2.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("mytopic send"); @@ -93,8 +94,8 @@ void doMostBasicTest() throws Exception { assertThat(rdd2.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd2.getType()).isEqualTo("Http"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd2.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd2.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java b/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java index f28b1f229db..f383a4579aa 100644 --- a/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java +++ b/smoke-tests/apps/Lettuce/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LettuceTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -38,8 +39,7 @@ void lettuce() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("GET"); diff --git a/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java b/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java index f580bbaf916..1ccb774e7c8 100644 --- a/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java +++ b/smoke-tests/apps/Micrometer/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.DataPoint; @@ -39,8 +40,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); List metricItems = diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java index dc9fff4becd..6d07007c074 100644 --- a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java +++ b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -38,8 +39,7 @@ void mongo() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("find testdb.test"); diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java index 5ecf7b09fbb..00e2b029891 100644 --- a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java +++ b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java @@ -31,8 +31,8 @@ void mongo() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("find testdb.test"); diff --git a/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java b/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java index 08214d2b6c3..13cf852a157 100644 --- a/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java +++ b/smoke-tests/apps/NonDaemonThreads/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/NonDaemonThreadsTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -50,16 +51,16 @@ void spawnAnotherJavaProcess() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope.getData()).getBaseData(); MessageData md = (MessageData) ((Data) mdEnvelope.getData()).getBaseData(); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd.getName()).isEqualTo("GET /search"); assertThat(rdd.getType()).isEqualTo("Http"); assertThat(rdd.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd.getData()).isEqualTo("https://www.bing.com/search?q=test"); - assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd.getSuccess()).isTrue(); assertThat(md.getMessage()).isEqualTo("done"); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java index 03731c4fea2..1bc05995639 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportControllerSpansEnabledTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; import com.microsoft.applicationinsights.smoketest.schemav2.RemoteDependencyData; @@ -29,8 +30,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("myspanname"); @@ -100,8 +100,7 @@ private static void testAnnotations( assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController." + controllerMethodName); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java index 033816c1edc..5a93fdbf3ef 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportInstrumentationKeyTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -37,8 +38,7 @@ void testOverridingIkey() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); // this is no longer supported since 3.4.0, but the test is still included here to (manually) diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index 9035cd4ab23..8c466e6f8bd 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -37,8 +38,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rdEnvelope.getIKey()).isEqualTo("00000000-0000-0000-0000-0FEEDDADBEEF"); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.cloud.role", "testrolename"); @@ -64,8 +64,7 @@ void testOverridingConnectionStringEtc() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); // checking that instrumentation key, cloud role name, cloud role instance, and sdk version are @@ -107,8 +106,7 @@ private static void testAnnotations(String path, String methodName) throws Excep assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("TestController." + methodName); diff --git a/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java b/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java index 38252e5b174..8cdb04bb6bd 100644 --- a/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java +++ b/smoke-tests/apps/RuntimeAttach/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -32,8 +33,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdEnvelope.getTags()) diff --git a/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java b/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java index eba50da2587..fd744e70663 100644 --- a/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java +++ b/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RuntimeAttachWithDelayedConnectionStringTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -34,8 +35,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdEnvelope.getTags()) diff --git a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java index 456a92f2246..4ce42de9b24 100644 --- a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java +++ b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootControllerSpansEnabledTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -93,8 +94,8 @@ public boolean test(Envelope input) { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/throwsException"); assertThat(rd.getResponseCode()).isEqualTo("500"); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd.getSuccess()).isFalse(); assertThat(rdd1.getName()).isEqualTo("TestController.resultCodeTest"); @@ -140,8 +141,8 @@ void testAsyncDependencyCall() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/asyncDependencyCall"); assertThat(rd.getResponseCode()).isEqualTo("200"); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("TestController.asyncDependencyCall"); @@ -154,8 +155,8 @@ void testAsyncDependencyCall() throws Exception { assertThat(rdd2.getName()).isEqualTo("GET /"); assertThat(rdd2.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); - assertThat(rdd2.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd2.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd2.getSuccess()).isTrue(); // TODO (trask): why is spring-webmvc instrumentation capturing this twice? diff --git a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java index b87b74ee13b..706b6506bdc 100644 --- a/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java +++ b/smoke-tests/apps/SpringBoot/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -87,8 +88,8 @@ void testResultCodeWhenRestControllerThrows() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/throwsException"); assertThat(rd.getResponseCode()).isEqualTo("500"); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd.getSuccess()).isFalse(); SmokeTestExtension.assertParentChild( @@ -117,15 +118,15 @@ void testAsyncDependencyCall() throws Exception { assertThat(rd.getName()).isEqualTo("GET /SpringBoot/asyncDependencyCall"); assertThat(rd.getResponseCode()).isEqualTo("200"); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("GET /"); assertThat(rdd1.getData()).isEqualTo("https://www.bing.com"); assertThat(rdd1.getTarget()).isEqualTo("www.bing.com"); - assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd1.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild( diff --git a/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java b/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java index b690ca2e104..25ad3479a77 100644 --- a/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java +++ b/smoke-tests/apps/SpringBootAuto/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringBootAutoTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,8 +40,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java index b0ea1602932..693e99334c3 100644 --- a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java +++ b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamControllerSpansEnabledTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -65,8 +66,8 @@ void doMostBasicTest() throws Exception { } assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("GreetingsController.sendMessage"); diff --git a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java index f5de23bdd9c..e823ec66b7b 100644 --- a/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java +++ b/smoke-tests/apps/SpringCloudStream/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/SpringCloudStreamTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -58,8 +59,8 @@ void doMostBasicTest() throws Exception { (RemoteDependencyData) ((Data) rddEnvelope1.getData()).getBaseData(); assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("greetings send"); diff --git a/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java b/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java index a08943f97dc..3edf0a3c2d6 100644 --- a/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java +++ b/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.MessageData; import java.util.List; @@ -36,8 +37,7 @@ void doMostBasicTest() throws Exception { .isEqualTo("*/TelemetryProcessors/test*"); assertThat(telemetry.rd.getProperties()).hasSize(5); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); // Log processor test List logs = testing.mockedIngestion.getMessageDataInRequest(1); @@ -58,8 +58,7 @@ void doSimpleTestPiiData() throws Exception { .isEqualTo("*/TelemetryProcessors/sensitivedata*"); assertThat(telemetry.rd.getProperties()).hasSize(5); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); } diff --git a/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java b/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java index e795105fcc5..8cdd65134b6 100644 --- a/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java +++ b/smoke-tests/apps/WebFlux/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/WebFluxTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,8 +34,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } @@ -49,8 +49,7 @@ void testException() throws Exception { assertThat(telemetry.rd.getSuccess()).isFalse(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } @@ -65,8 +64,7 @@ void testFutureException() throws Exception { assertThat(telemetry.rd.getSuccess()).isFalse(); assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) - .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getMeasurements()).isEmpty(); } diff --git a/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java b/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java index 3242f583e51..005a70947fe 100644 --- a/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java +++ b/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.DataPoint; @@ -60,12 +61,12 @@ void doSimpleTest() throws Exception { assertThat(rdd.getTarget()).isEqualTo("localhost:10203"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rd1.getSuccess()).isTrue(); - assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(rdd.getSuccess()).isTrue(); // TODO (trask): verify rd2 @@ -108,12 +109,14 @@ void doConversationTest() throws Exception { assertThat(rdd.getTarget()).isEqualTo("localhost:10203"); - assertThat(rd1.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rd1.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd1.getSuccess()).isTrue(); - assertThat(rdd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rd.getProperties()).containsKey("user_agent.original"); + assertThat(rdd.getProperties()) + .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rdd.getSuccess()).isTrue(); // TODO (trask): verify rd2 From 91e19b42ee54d199552206975ef247a5577a9232 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 14:06:46 -0700 Subject: [PATCH 34/46] Fix tests --- .../smoketest/ClassicSdkWebInterop2xTest.java | 2 +- .../smoketest/ClassicSdkWebInterop3xTest.java | 3 ++- .../smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java | 2 +- .../applicationinsights/smoketest/CustomDimensionsTest.java | 3 ++- .../applicationinsights/smoketest/HttpHeadersTest.java | 2 +- .../smoketest/OpenTelemetryApiSupportTest.java | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java index fd2ed872346..661456cb158 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java @@ -37,7 +37,7 @@ void doMostBasicTest() throws Exception { .isEqualTo("mydeviceosversion"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); - assertThat(telemetry.rd.getProperties()).hasSize(4); + assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isFalse(); diff --git a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java index e20f856e3ca..7763af862e3 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -36,7 +37,7 @@ void doMostBasicTest() throws Exception { .isEqualTo("mydeviceosversion"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); - assertThat(telemetry.rd.getProperties()).hasSize(4); + assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); diff --git a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java index 02fc508aa9c..392e7f05a89 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java @@ -37,7 +37,7 @@ void doMostBasicTest() throws Exception { .isEqualTo("mydeviceosversion"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); - assertThat(telemetry.rd.getProperties()).hasSize(4); + assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isFalse(); diff --git a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java index 3bf72c29831..1ec6b5f4c3e 100644 --- a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java +++ b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,7 +34,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("test", "value"); assertThat(telemetry.rd.getProperties()).containsKey("home"); - assertThat(telemetry.rd.getProperties()).hasSize(4); + assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); diff --git a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java index 341b6e7a38f..133837dea36 100644 --- a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java +++ b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java @@ -31,7 +31,7 @@ void testServerHeaders() throws Exception { assertThat(telemetry.rd.getProperties().get("http.response.header.abc")) .isEqualTo("testing123"); assertThat(telemetry.rd.getProperties()).containsKey("http.request.header.host"); - assertThat(telemetry.rd.getProperties()).hasSize(4); + assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); assertThat(telemetry.rd.getSuccess()).isTrue(); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index 8c466e6f8bd..f128747c686 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -34,7 +34,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getResponseCode()).isEqualTo("200"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rd.getSource()).isNull(); - assertThat(telemetry.rd.getProperties()).hasSize(4); + assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()) From 864f32c2164be9817527ad89c8890faa20f37a7d Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 14:15:55 -0700 Subject: [PATCH 35/46] Fix --- .../smoketest/ClassicSdkWebInterop2xTest.java | 3 +-- .../smoketest/ClassicSdkWebInterop3xTest.java | 3 +-- .../smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java | 3 +-- .../applicationinsights/smoketest/CustomDimensionsTest.java | 4 +--- .../applicationinsights/smoketest/HttpClientTest.java | 1 - .../applicationinsights/smoketest/HttpHeadersTest.java | 4 ++-- .../smoketest/InheritedAttributesTest.java | 4 +--- .../com/microsoft/applicationinsights/smoketest/JmsTest.java | 3 +-- .../applicationinsights/smoketest/JdbcUnmaskedTest.java | 2 +- .../microsoft/applicationinsights/smoketest/JedisTest.java | 2 +- .../applicationinsights/smoketest/MongoUnmaskedTest.java | 2 +- .../smoketest/OpenTelemetryApiSupportTest.java | 3 +-- .../smoketest/TelemetryProcessorsTest.java | 5 ++--- .../microsoft/applicationinsights/smoketest/GrpcTest.java | 2 -- 14 files changed, 14 insertions(+), 27 deletions(-) diff --git a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java index 661456cb158..3b8e8d2aa7d 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,7 +38,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java index 7763af862e3..a59e4d4f40c 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,7 +38,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java index 392e7f05a89..c934f10c088 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,7 +38,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java index 1ec6b5f4c3e..7e4533c8604 100644 --- a/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java +++ b/smoke-tests/apps/CustomDimensions/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/CustomDimensionsTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -36,8 +35,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).containsKey("home"); assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.application.ver", "123"); diff --git a/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java b/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java index f3be7e73def..33c3b17c1b4 100644 --- a/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java +++ b/smoke-tests/apps/HttpClients/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpClientTest.java @@ -92,7 +92,6 @@ private static void verify(String successUrlWithQueryString) throws Exception { assertThat(telemetry.rdd1.getResultCode()).isEqualTo("200"); assertThat(telemetry.rdd1.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - assertThat(telemetry.rdd1.getSuccess()).isTrue(); assertThat(telemetry.rddEnvelope1.getSampleRate()).isNull(); diff --git a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java index 133837dea36..f5ab40055d5 100644 --- a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java +++ b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java @@ -33,7 +33,7 @@ void testServerHeaders() throws Exception { assertThat(telemetry.rd.getProperties()).containsKey("http.request.header.host"); assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); } @@ -52,7 +52,7 @@ void testClientHeaders() throws Exception { assertThat(telemetry.rdd1.getProperties()).containsKey("http.response.header.date"); assertThat(telemetry.rdd1.getProperties()).hasSize(3); assertThat(telemetry.rdd1.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdd1.getSuccess()).isTrue(); } diff --git a/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java b/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java index aa27fca2286..cbc81d34a9f 100644 --- a/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java +++ b/smoke-tests/apps/InheritedAttributes/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/InheritedAttributesTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -50,8 +49,7 @@ void test() throws Exception { assertThat(rd.getResponseCode()).isEqualTo("200"); assertThat(rd.getProperties()).containsEntry("tenant", "z"); assertThat(rd.getProperties()).hasSize(2); - assertThat(rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + assertThat(rd.getProperties()).containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(rd.getSuccess()).isTrue(); assertThat(md.getMessage()).isEqualTo("hello"); diff --git a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java index 9e876dc50ba..7d7a9745467 100644 --- a/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java +++ b/smoke-tests/apps/JMS/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JmsTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.Data; import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; @@ -58,7 +59,6 @@ void doMostBasicTest() throws Exception { assertThat(rd1.getName()).isEqualTo("GET /sendMessage"); assertThat(rd1.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd1.getName()).isEqualTo("message send"); @@ -79,7 +79,6 @@ void doMostBasicTest() throws Exception { assertThat(rdd2.getTarget()).isEqualTo("www.bing.com"); assertThat(rdd2.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - assertThat(rdd2.getSuccess()).isTrue(); SmokeTestExtension.assertParentChild(rd1, rdEnvelope1, rddEnvelope1, "GET /sendMessage"); diff --git a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java index 8f880852635..56bf3cdcc39 100644 --- a/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java +++ b/smoke-tests/apps/Jdbc/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JdbcUnmaskedTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -22,7 +23,6 @@ void hsqldbStatement() throws Exception { assertThat(telemetry.rd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getName()).isEqualTo("SELECT testdb.abc"); diff --git a/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java b/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java index ee9efd4338e..cc8d0ab4f32 100644 --- a/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java +++ b/smoke-tests/apps/Jedis/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/JedisTest.java @@ -13,6 +13,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -39,7 +40,6 @@ void jedis() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("GET"); diff --git a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java index 00e2b029891..085075dc655 100644 --- a/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java +++ b/smoke-tests/apps/MongoDB/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MongoUnmaskedTest.java @@ -5,6 +5,7 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -32,7 +33,6 @@ void mongo() throws Exception { assertThat(telemetry.rd.getSource()).isNull(); assertThat(telemetry.rd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - assertThat(telemetry.rd.getMeasurements()).isEmpty(); assertThat(telemetry.rdd1.getName()).isEqualTo("find testdb.test"); diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index f128747c686..010fcc30b85 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -38,8 +38,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr1", "myvalue1"); assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rdEnvelope.getIKey()).isEqualTo("00000000-0000-0000-0000-0FEEDDADBEEF"); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.cloud.role", "testrolename"); assertThat(telemetry.rdEnvelope.getTags().get("ai.cloud.roleInstance")) diff --git a/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java b/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java index 3edf0a3c2d6..c7d0ee10479 100644 --- a/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java +++ b/smoke-tests/apps/TelemetryProcessors/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/TelemetryProcessorsTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import com.microsoft.applicationinsights.smoketest.schemav2.MessageData; import java.util.List; @@ -37,7 +36,7 @@ void doMostBasicTest() throws Exception { .isEqualTo("*/TelemetryProcessors/test*"); assertThat(telemetry.rd.getProperties()).hasSize(5); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); // Log processor test List logs = testing.mockedIngestion.getMessageDataInRequest(1); @@ -58,7 +57,7 @@ void doSimpleTestPiiData() throws Exception { .isEqualTo("*/TelemetryProcessors/sensitivedata*"); assertThat(telemetry.rd.getProperties()).hasSize(5); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); } diff --git a/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java b/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java index 005a70947fe..2d37e9c4359 100644 --- a/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java +++ b/smoke-tests/apps/gRPC/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/GrpcTest.java @@ -111,12 +111,10 @@ void doConversationTest() throws Exception { assertThat(rd1.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - assertThat(rd1.getSuccess()).isTrue(); assertThat(rdd.getProperties()) .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); - assertThat(rdd.getSuccess()).isTrue(); // TODO (trask): verify rd2 From 0804b1780583faddbd118957e37d88657d4694e6 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 14:19:59 -0700 Subject: [PATCH 36/46] Revert changes in tests --- .../smoketest/ClassicSdkWebInterop2xTest.java | 1 + .../applicationinsights/smoketest/HttpHeadersTest.java | 4 +--- .../smoketest/OpenTelemetryApiSupportTest.java | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java index 3b8e8d2aa7d..9972664a523 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop2x/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop2xTest.java @@ -39,6 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getSuccess()).isFalse(); } diff --git a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java index f5ab40055d5..2219ae26343 100644 --- a/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java +++ b/smoke-tests/apps/HttpHeaders/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/HttpHeadersTest.java @@ -13,7 +13,6 @@ import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -45,7 +44,7 @@ void testClientHeaders() throws Exception { assertThat(telemetry.rd.getProperties()).containsKey("http.request.header.host"); assertThat(telemetry.rd.getProperties()).hasSize(2); assertThat(telemetry.rd.getProperties()) - .containsExactly(entry("_MS.ProcessedByMetricExtractors", "True")); + .containsEntry("_MS.ProcessedByMetricExtractors", "True"); assertThat(telemetry.rd.getSuccess()).isTrue(); assertThat(telemetry.rdd1.getProperties().get("http.request.header.abc")) .isEqualTo("testing123"); @@ -53,7 +52,6 @@ void testClientHeaders() throws Exception { assertThat(telemetry.rdd1.getProperties()).hasSize(3); assertThat(telemetry.rdd1.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); - assertThat(telemetry.rdd1.getSuccess()).isTrue(); } diff --git a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java index 010fcc30b85..23c25f041d8 100644 --- a/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java +++ b/smoke-tests/apps/OpenTelemetryApiSupport/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/OpenTelemetryApiSupportTest.java @@ -39,6 +39,7 @@ void testApi() throws Exception { assertThat(telemetry.rd.getProperties()).containsEntry("myattr2", "myvalue2"); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rdEnvelope.getIKey()).isEqualTo("00000000-0000-0000-0000-0FEEDDADBEEF"); assertThat(telemetry.rdEnvelope.getTags()).containsEntry("ai.cloud.role", "testrolename"); assertThat(telemetry.rdEnvelope.getTags().get("ai.cloud.roleInstance")) From bfef633693e896616a57c04a5458b3a95e2f96a2 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 14:21:22 -0700 Subject: [PATCH 37/46] Revert --- .../smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java index c934f10c088..4c76f6a7f99 100644 --- a/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java +++ b/smoke-tests/apps/ClassicSdkWebInterop3xUsingOld3xAgent/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/ClassicSdkWebInterop3xUsingOld3xAgentTest.java @@ -39,6 +39,7 @@ void doMostBasicTest() throws Exception { assertThat(telemetry.rd.getProperties()).hasSize(3); assertThat(telemetry.rd.getProperties()) .containsEntry("_MS.ProcessedByMetricExtractors", "True"); + assertThat(telemetry.rd.getSuccess()).isFalse(); } From e53a2d01fb260e7f83c6a2fd5679d3cb3e8383e5 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 19:09:44 -0700 Subject: [PATCH 38/46] Rename --- .../exporter/implementation/SemanticAttributes.java | 2 +- .../opentelemetry/exporter/implementation/SpanDataMapper.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SemanticAttributes.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SemanticAttributes.java index 77e7806ee96..50adfd00107 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SemanticAttributes.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SemanticAttributes.java @@ -603,7 +603,7 @@ public final class SemanticAttributes { * Value of the HTTP * User-Agent header sent by the client. */ - public static final AttributeKey HTTP_USER_AGENT = stringKey("user_agent.original"); + public static final AttributeKey USER_AGENT_ORIGINAL = stringKey("user_agent.original"); /** * The size of the request payload body in bytes. This is the number of bytes transferred diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java index 3abc1c99fd9..7a2e72b0ce0 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/SpanDataMapper.java @@ -75,7 +75,7 @@ public final class SpanDataMapper { .ignoreExact(AiSemanticAttributes.KAFKA_RECORD_QUEUE_TIME_MS.getKey()) .ignoreExact(AiSemanticAttributes.KAFKA_OFFSET.getKey()) .exact( - SemanticAttributes.HTTP_USER_AGENT.getKey(), + SemanticAttributes.USER_AGENT_ORIGINAL.getKey(), (builder, value) -> { if (value instanceof String) { builder.addTag("ai.user.userAgent", (String) value); From 617ba99fbdd917030864e5c36c64865accae9b84 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 19:10:19 -0700 Subject: [PATCH 39/46] Fix userAgent context lost between span to metric --- .../agent/internal/init/AiContextCustomizer.java | 5 +++++ .../agent/internal/init/AiContextKeys.java | 3 +++ .../internal/view/MetricViewAttributesProcessor.java | 2 +- .../sdk/metrics/internal/view/UserAgents.java | 8 ++++---- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java index ec4fd27552f..c102b174dae 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java @@ -61,6 +61,11 @@ public Context onStart(Context context, R request, Attributes startAttributes) { span.setAttribute(AiSemanticAttributes.INTERNAL_ROLE_NAME, roleNameOverride); } + String userAgent = startAttributes.get(SemanticAttributes.USER_AGENT_ORIGINAL); + if (userAgent != null) { + newContext = newContext.with(AiContextKeys.USER_AGENT, userAgent); + } + return newContext; } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextKeys.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextKeys.java index 00cec339390..6a3d4595a2e 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextKeys.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextKeys.java @@ -13,5 +13,8 @@ public final class AiContextKeys { public static final ContextKey ROLE_NAME = ContextKey.named("applicationinsights.internal.role_name"); + public static final ContextKey USER_AGENT = + ContextKey.named("applicationinsights.internal.user_agent"); + private AiContextKeys() {} } diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java index fa6317f49f8..214e8fd30f1 100644 --- a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java @@ -46,7 +46,7 @@ public Attributes process(Attributes incoming, Context context) { } applyView(builder, incoming, attributeKeys); if (captureSynthetic) { - builder.put(AiSemanticAttributes.IS_SYNTHETIC, UserAgents.isBot(incoming)); + builder.put(AiSemanticAttributes.IS_SYNTHETIC, UserAgents.isBot(context)); } return builder.build(); } diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java index e440a26a8f5..f7efdee142f 100644 --- a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java @@ -3,13 +3,13 @@ package io.opentelemetry.sdk.metrics.internal.view; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; +import com.microsoft.applicationinsights.agent.internal.init.AiContextKeys; +import io.opentelemetry.context.Context; final class UserAgents { - static boolean isBot(Attributes attributes) { - String userAgent = attributes.get(SemanticAttributes.USER_AGENT_ORIGINAL); + static boolean isBot(Context context) { + String userAgent = context.get(AiContextKeys.USER_AGENT); return userAgent != null && userAgent.contains("AlwaysOn"); } From 167cac27611364e29118ba97534c167bce2e8ef7 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Tue, 18 Apr 2023 19:49:35 -0700 Subject: [PATCH 40/46] Fix marker entry is no longer available for logback --- .../applicationinsights/smoketest/LogbackTest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java b/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java index 7d46b014ffe..ea4dec6200d 100644 --- a/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java +++ b/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java @@ -101,9 +101,11 @@ void test() throws Exception { assertThat(md2.getProperties()).hasSize(3); } - if (!isWildflyServer()) { - assertThat(md3.getProperties()).containsEntry("Marker", "aMarker"); - } + // TODO not sure why this entry no longers available.. can't find upstream changes related to + // this + // if (!isWildflyServer()) { + // assertThat(md3.getProperties()).containsEntry("Marker", "aMarker"); + // } SmokeTestExtension.assertParentChild(rd, rdEnvelope, mdEnvelope1, "GET /Logback/test"); SmokeTestExtension.assertParentChild(rd, rdEnvelope, mdEnvelope2, "GET /Logback/test"); From 750a3f594aed37cc80dca393e182fd1cb15311b0 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Wed, 19 Apr 2023 10:21:25 -0700 Subject: [PATCH 41/46] Add a todo --- .../javaagent/instrumentation/methods/ai/MethodSingletons.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java index 143e12d5737..684c6bd6d42 100644 --- a/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java +++ b/agent/instrumentation/methods/src/main/java/io/opentelemetry/javaagent/instrumentation/methods/ai/MethodSingletons.java @@ -33,7 +33,8 @@ public final class MethodSingletons { GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, CodeSpanNameExtractor.create(codeAttributesGetter)) - .setInstrumentationVersion("1.25.0-alpha-applicationinsights") + .setInstrumentationVersion( + "1.25.0-alpha-applicationinsights") // TODO automate version or use upstream .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) // START APPLICATION INSIGHTS MODIFICATIONS .buildInstrumenter(new MethodSpanKindExtractor()); From a393a58d7b2498f1652455e86878d54b9eaca029 Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Wed, 19 Apr 2023 17:24:11 -0700 Subject: [PATCH 42/46] Map logback.marker --- .../exporter/implementation/LogDataMapper.java | 6 ++++-- .../exporter/implementation/MappingsBuilder.java | 13 +++++++++++++ .../applicationinsights/smoketest/LogbackTest.java | 10 +++++----- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/LogDataMapper.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/LogDataMapper.java index 1a6bea48ab3..69485ddd291 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/LogDataMapper.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/LogDataMapper.java @@ -3,6 +3,7 @@ package com.azure.monitor.opentelemetry.exporter.implementation; +import static io.opentelemetry.api.common.AttributeKey.stringArrayKey; import static io.opentelemetry.api.common.AttributeKey.stringKey; import com.azure.core.util.logging.ClientLogger; @@ -20,6 +21,7 @@ import io.opentelemetry.api.trace.SpanContext; import io.opentelemetry.sdk.logs.data.LogRecordData; import io.opentelemetry.sdk.resources.Resource; +import java.util.List; import java.util.function.BiConsumer; import reactor.util.annotation.Nullable; @@ -35,7 +37,7 @@ public class LogDataMapper { private static final String LOG4J_MAP_MESSAGE_PREFIX = "log4j.map_message."; // log4j 2.x private static final AttributeKey LOG4J_MARKER = stringKey("log4j.marker"); - private static final AttributeKey LOGBACK_MARKER = stringKey("logback.marker"); + private static final AttributeKey> LOGBACK_MARKER = stringArrayKey("logback.marker"); private static final Mappings MAPPINGS; @@ -77,7 +79,7 @@ public class LogDataMapper { .exactString(SemanticAttributes.CODE_FUNCTION, "MethodName") .exactLong(SemanticAttributes.CODE_LINENO, "LineNumber") .exactString(LOG4J_MARKER, "Marker") - .exactString(LOGBACK_MARKER, "Marker"); + .exactStringArray(LOGBACK_MARKER, "logback.marker"); SpanDataMapper.applyCommonTags(mappingsBuilder); diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/MappingsBuilder.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/MappingsBuilder.java index ef229ae599c..d16167cf79e 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/MappingsBuilder.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/MappingsBuilder.java @@ -8,8 +8,10 @@ import com.azure.monitor.opentelemetry.exporter.implementation.builders.AbstractTelemetryBuilder; import com.azure.monitor.opentelemetry.exporter.implementation.utils.Trie; import io.opentelemetry.api.common.AttributeKey; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; @@ -86,6 +88,17 @@ MappingsBuilder exactLong(AttributeKey attributeKey, String propertyName) return this; } + MappingsBuilder exactStringArray(AttributeKey> attributeKey, String propertyName) { + exactMappings.put( + attributeKey.getKey(), + (telemetryBuilder, value) -> { + if (value instanceof List) { + telemetryBuilder.addProperty(propertyName, Arrays.toString(((List) value).toArray())); + } + }); + return this; + } + public Mappings build() { return new Mappings(exactMappings, prefixMappings.build()); } diff --git a/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java b/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java index ea4dec6200d..2ca42899f53 100644 --- a/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java +++ b/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java @@ -20,6 +20,7 @@ import com.microsoft.applicationinsights.smoketest.schemav2.MessageData; import com.microsoft.applicationinsights.smoketest.schemav2.RequestData; import com.microsoft.applicationinsights.smoketest.schemav2.SeverityLevel; +import java.util.Arrays; import java.util.Comparator; import java.util.List; import org.junit.jupiter.api.Test; @@ -101,11 +102,10 @@ void test() throws Exception { assertThat(md2.getProperties()).hasSize(3); } - // TODO not sure why this entry no longers available.. can't find upstream changes related to - // this - // if (!isWildflyServer()) { - // assertThat(md3.getProperties()).containsEntry("Marker", "aMarker"); - // } + if (!isWildflyServer()) { + assertThat(md3.getProperties()) + .containsEntry("logback.marker", Arrays.toString(new String[] {"aMarker"})); + } SmokeTestExtension.assertParentChild(rd, rdEnvelope, mdEnvelope1, "GET /Logback/test"); SmokeTestExtension.assertParentChild(rd, rdEnvelope, mdEnvelope2, "GET /Logback/test"); From 4fc9c1f374fad62e5bd14d71e5ddb36bd40dddbf Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Wed, 19 Apr 2023 19:08:07 -0700 Subject: [PATCH 43/46] Update License --- licenses/more-licenses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/licenses/more-licenses.md b/licenses/more-licenses.md index b3ef62c7724..f970ff79231 100644 --- a/licenses/more-licenses.md +++ b/licenses/more-licenses.md @@ -1,7 +1,7 @@ #agent ##Dependency License Report -_2023-04-17 08:15:36 PDT_ +_2023-04-19 19:07:48 PDT_ ## Apache License, Version 2.0 **1** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.14.2` From 26c82229219c1eeacc87795b041a5339bcad79b2 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 20 Apr 2023 11:45:18 -0700 Subject: [PATCH 44/46] updates --- .../api/instrumenter/http/TemporaryMetricsView.java | 2 +- .../agent/internal/init/AiContextCustomizer.java | 5 ----- .../agent/internal/init/AiContextKeys.java | 3 --- .../internal/view/MetricViewAttributesProcessor.java | 2 +- .../sdk/metrics/internal/view/UserAgents.java | 8 ++++---- 5 files changed, 6 insertions(+), 14 deletions(-) diff --git a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/TemporaryMetricsView.java b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/TemporaryMetricsView.java index 64d32f8f2e5..49433e6da6a 100644 --- a/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/TemporaryMetricsView.java +++ b/agent/agent-bootstrap/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/TemporaryMetricsView.java @@ -62,7 +62,7 @@ private static Set buildDurationServerView() { view.add(SemanticAttributes.NET_HOST_PORT); view.add(SemanticAttributes.HTTP_ROUTE); // START APPLICATION INSIGHTS MODIFICATIONS - view.add(SemanticAttributes.HTTP_USER_AGENT); + view.add(SemanticAttributes.USER_AGENT_ORIGINAL); // END APPLICATION INSIGHTS MODIFICATIONS return view; } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java index c102b174dae..ec4fd27552f 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java @@ -61,11 +61,6 @@ public Context onStart(Context context, R request, Attributes startAttributes) { span.setAttribute(AiSemanticAttributes.INTERNAL_ROLE_NAME, roleNameOverride); } - String userAgent = startAttributes.get(SemanticAttributes.USER_AGENT_ORIGINAL); - if (userAgent != null) { - newContext = newContext.with(AiContextKeys.USER_AGENT, userAgent); - } - return newContext; } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextKeys.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextKeys.java index 6a3d4595a2e..00cec339390 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextKeys.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextKeys.java @@ -13,8 +13,5 @@ public final class AiContextKeys { public static final ContextKey ROLE_NAME = ContextKey.named("applicationinsights.internal.role_name"); - public static final ContextKey USER_AGENT = - ContextKey.named("applicationinsights.internal.user_agent"); - private AiContextKeys() {} } diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java index 214e8fd30f1..fa6317f49f8 100644 --- a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/MetricViewAttributesProcessor.java @@ -46,7 +46,7 @@ public Attributes process(Attributes incoming, Context context) { } applyView(builder, incoming, attributeKeys); if (captureSynthetic) { - builder.put(AiSemanticAttributes.IS_SYNTHETIC, UserAgents.isBot(context)); + builder.put(AiSemanticAttributes.IS_SYNTHETIC, UserAgents.isBot(incoming)); } return builder.build(); } diff --git a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java index f7efdee142f..e440a26a8f5 100644 --- a/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java +++ b/agent/agent-tooling/src/main/java/io/opentelemetry/sdk/metrics/internal/view/UserAgents.java @@ -3,13 +3,13 @@ package io.opentelemetry.sdk.metrics.internal.view; -import com.microsoft.applicationinsights.agent.internal.init.AiContextKeys; -import io.opentelemetry.context.Context; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; final class UserAgents { - static boolean isBot(Context context) { - String userAgent = context.get(AiContextKeys.USER_AGENT); + static boolean isBot(Attributes attributes) { + String userAgent = attributes.get(SemanticAttributes.USER_AGENT_ORIGINAL); return userAgent != null && userAgent.contains("AlwaysOn"); } From e936910e67552b79042e316888217061aef954bb Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Thu, 20 Apr 2023 12:33:31 -0700 Subject: [PATCH 45/46] Keep the same marker key --- .../opentelemetry/exporter/implementation/LogDataMapper.java | 2 +- .../microsoft/applicationinsights/smoketest/LogbackTest.java | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/LogDataMapper.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/LogDataMapper.java index 69485ddd291..de726c7ecb2 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/LogDataMapper.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/LogDataMapper.java @@ -79,7 +79,7 @@ public class LogDataMapper { .exactString(SemanticAttributes.CODE_FUNCTION, "MethodName") .exactLong(SemanticAttributes.CODE_LINENO, "LineNumber") .exactString(LOG4J_MARKER, "Marker") - .exactStringArray(LOGBACK_MARKER, "logback.marker"); + .exactStringArray(LOGBACK_MARKER, "Marker"); SpanDataMapper.applyCommonTags(mappingsBuilder); diff --git a/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java b/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java index 2ca42899f53..1ea1d2a09d0 100644 --- a/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java +++ b/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java @@ -20,7 +20,6 @@ import com.microsoft.applicationinsights.smoketest.schemav2.MessageData; import com.microsoft.applicationinsights.smoketest.schemav2.RequestData; import com.microsoft.applicationinsights.smoketest.schemav2.SeverityLevel; -import java.util.Arrays; import java.util.Comparator; import java.util.List; import org.junit.jupiter.api.Test; @@ -103,8 +102,7 @@ void test() throws Exception { } if (!isWildflyServer()) { - assertThat(md3.getProperties()) - .containsEntry("logback.marker", Arrays.toString(new String[] {"aMarker"})); + assertThat(md3.getProperties()).containsEntry("Marker", "[aMarker]"); } SmokeTestExtension.assertParentChild(rd, rdEnvelope, mdEnvelope1, "GET /Logback/test"); From e3d37e6ec85e1e2251f3ac11254edf0fb04f370a Mon Sep 17 00:00:00 2001 From: Helen Yang Date: Thu, 20 Apr 2023 12:48:55 -0700 Subject: [PATCH 46/46] Use comma separated string to represent string array --- .../opentelemetry/exporter/implementation/MappingsBuilder.java | 3 +-- .../microsoft/applicationinsights/smoketest/LogbackTest.java | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/MappingsBuilder.java b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/MappingsBuilder.java index d16167cf79e..6a9b4588352 100644 --- a/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/MappingsBuilder.java +++ b/agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/MappingsBuilder.java @@ -8,7 +8,6 @@ import com.azure.monitor.opentelemetry.exporter.implementation.builders.AbstractTelemetryBuilder; import com.azure.monitor.opentelemetry.exporter.implementation.utils.Trie; import io.opentelemetry.api.common.AttributeKey; -import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -93,7 +92,7 @@ MappingsBuilder exactStringArray(AttributeKey> attributeKey, String attributeKey.getKey(), (telemetryBuilder, value) -> { if (value instanceof List) { - telemetryBuilder.addProperty(propertyName, Arrays.toString(((List) value).toArray())); + telemetryBuilder.addProperty(propertyName, String.join(",", (List) value)); } }); return this; diff --git a/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java b/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java index 1ea1d2a09d0..7d46b014ffe 100644 --- a/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java +++ b/smoke-tests/apps/Logback/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/LogbackTest.java @@ -102,7 +102,7 @@ void test() throws Exception { } if (!isWildflyServer()) { - assertThat(md3.getProperties()).containsEntry("Marker", "[aMarker]"); + assertThat(md3.getProperties()).containsEntry("Marker", "aMarker"); } SmokeTestExtension.assertParentChild(rd, rdEnvelope, mdEnvelope1, "GET /Logback/test");