From cd785f38b92c3770046c310060c08b6d201b5f78 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 8 Aug 2023 07:25:16 -0700 Subject: [PATCH 1/2] Add new ktor preview instrumentation --- .../internal/configuration/Configuration.java | 18 ++++++++++++++---- .../internal/init/AiConfigCustomizer.java | 3 +++ 2 files changed, 17 insertions(+), 4 deletions(-) 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 c9c824676e6..eaded84a3e6 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 @@ -162,7 +162,9 @@ public static class Sampling { @Nullable public Double requestsPerSecond; // this config option only existed in one BETA release (3.4.0-BETA) - @Deprecated @Nullable public Double limitPerSecond; + @Deprecated + @Nullable + public Double limitPerSecond; } public static class SamplingPreview { @@ -477,6 +479,8 @@ public static class PreviewInstrumentation { public DisabledByDefaultInstrumentation apacheCamel = new DisabledByDefaultInstrumentation(); + public DisabledByDefaultInstrumentation ktor = new DisabledByDefaultInstrumentation(); + // this is just here to detect if using this old setting in order to give a helpful message @Deprecated public DisabledByDefaultInstrumentation azureSdk = new DisabledByDefaultInstrumentation(); @@ -635,17 +639,23 @@ private static boolean isRuntimeAttached() { } public static class SamplingOverride { - @Deprecated @Nullable public SpanKind spanKind; + @Deprecated + @Nullable + public SpanKind spanKind; // TODO (trask) make this required when moving out of preview // for now the default is both "request" and "dependency" for backwards compatibility @Nullable public SamplingTelemetryType telemetryType; // this config option existed in one GA release (3.4.0), and was then replaced by telemetryType - @Deprecated @Nullable public SamplingTelemetryType telemetryKind; + @Deprecated + @Nullable + public SamplingTelemetryType telemetryKind; // this config option only existed in one BETA release (3.4.0-BETA) - @Deprecated @Nullable public Boolean includingStandaloneTelemetry; + @Deprecated + @Nullable + public Boolean includingStandaloneTelemetry; // not using include/exclude, because you can still get exclude with this by adding a second // (exclude) override above it 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 0cd0712bceb..075baa017b1 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 @@ -282,6 +282,9 @@ private static void enableInstrumentations( if (config.preview.instrumentation.vertx.enabled) { properties.put("otel.instrumentation.vertx.enabled", "true"); } + if (config.preview.instrumentation.ktor.enabled) { + properties.put("otel.instrumentation.ktor.enabled", "true"); + } if (config.preview.instrumentation.jaxrsAnnotations.enabled) { properties.put("otel.instrumentation.jaxrs-1.0.enabled", "true"); properties.put("otel.instrumentation.jaxrs-annotations.enabled", "true"); From b55c1f409866ec280f2fe0f097b7ebae609661d4 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 8 Aug 2023 07:32:32 -0700 Subject: [PATCH 2/2] spotless --- .../internal/configuration/Configuration.java | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) 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 eaded84a3e6..125b4dc2810 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 @@ -162,9 +162,7 @@ public static class Sampling { @Nullable public Double requestsPerSecond; // this config option only existed in one BETA release (3.4.0-BETA) - @Deprecated - @Nullable - public Double limitPerSecond; + @Deprecated @Nullable public Double limitPerSecond; } public static class SamplingPreview { @@ -639,23 +637,17 @@ private static boolean isRuntimeAttached() { } public static class SamplingOverride { - @Deprecated - @Nullable - public SpanKind spanKind; + @Deprecated @Nullable public SpanKind spanKind; // TODO (trask) make this required when moving out of preview // for now the default is both "request" and "dependency" for backwards compatibility @Nullable public SamplingTelemetryType telemetryType; // this config option existed in one GA release (3.4.0), and was then replaced by telemetryType - @Deprecated - @Nullable - public SamplingTelemetryType telemetryKind; + @Deprecated @Nullable public SamplingTelemetryType telemetryKind; // this config option only existed in one BETA release (3.4.0-BETA) - @Deprecated - @Nullable - public Boolean includingStandaloneTelemetry; + @Deprecated @Nullable public Boolean includingStandaloneTelemetry; // not using include/exclude, because you can still get exclude with this by adding a second // (exclude) override above it