diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index d43f115242..86cfd1f742 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -30,6 +30,13 @@ the agent will now include the database name in the dependency, thus `mysql/my-d [float] ===== Features +* Promote mature agent features as Generaly Available (GA) - {pull}2632[#2632] +** <> is now enabled by default +** <> marked as GA (still disabled by default) +** <> and <> marked as GA +** <> configuration option marked as GA +** Dubbo instrumentation is now enabled by default +** `com.sun.net.httpserver.HttpServer` instrumentation marked as GA * Struts action invocations via an action chain result start a new span - {pull}2513[#2513] * Added official support for Elasticsearch Java API client - {pull}2211[#2211] * Added the ability to make spans non-discardable through the public API and the OpenTelemetry bridge - {pull}2632[#2632] diff --git a/apm-agent-core/src/main/java/co/elastic/apm/agent/impl/circuitbreaker/CircuitBreakerConfiguration.java b/apm-agent-core/src/main/java/co/elastic/apm/agent/impl/circuitbreaker/CircuitBreakerConfiguration.java index ca56fe1b7b..b0ef74741b 100644 --- a/apm-agent-core/src/main/java/co/elastic/apm/agent/impl/circuitbreaker/CircuitBreakerConfiguration.java +++ b/apm-agent-core/src/main/java/co/elastic/apm/agent/impl/circuitbreaker/CircuitBreakerConfiguration.java @@ -31,7 +31,7 @@ public class CircuitBreakerConfiguration extends ConfigurationOptionProvider { private final ConfigurationOption circuitBreakerEnabled = ConfigurationOption.booleanOption() .key("circuit_breaker_enabled") - .tags("added[1.14.0]", "performance", "experimental") + .tags("added[1.14.0]", "performance") .configurationCategory(CIRCUIT_BREAKER_CATEGORY) .description("A boolean specifying whether the circuit breaker should be enabled or not. \n" + "When enabled, the agent periodically polls stress monitors to detect system/process/JVM stress state. \n" + diff --git a/apm-agent-core/src/main/java/co/elastic/apm/agent/impl/context/web/WebConfiguration.java b/apm-agent-core/src/main/java/co/elastic/apm/agent/impl/context/web/WebConfiguration.java index 6453ee4ef7..1c77097958 100644 --- a/apm-agent-core/src/main/java/co/elastic/apm/agent/impl/context/web/WebConfiguration.java +++ b/apm-agent-core/src/main/java/co/elastic/apm/agent/impl/context/web/WebConfiguration.java @@ -96,7 +96,7 @@ public class WebConfiguration extends ConfigurationOptionProvider { private final ConfigurationOption usePathAsName = ConfigurationOption.booleanOption() .key("use_path_as_transaction_name") .configurationCategory(HTTP_CATEGORY) - .tags("experimental", "added[1.0.0,Changing this value at runtime is possible since version 1.22.0]") + .tags("added[1.0.0,Changing this value at runtime is possible since version 1.22.0]") .description("If set to `true`,\n" + "transaction names of unsupported or partially-supported frameworks will be in the form of `$method $path` instead of just `$method unknown route`.\n" + "\n" + diff --git a/apm-agent-plugins/apm-dubbo-plugin/src/main/java/co/elastic/apm/agent/dubbo/AbstractDubboInstrumentation.java b/apm-agent-plugins/apm-dubbo-plugin/src/main/java/co/elastic/apm/agent/dubbo/AbstractDubboInstrumentation.java index 65a8b3c3e8..416c998584 100644 --- a/apm-agent-plugins/apm-dubbo-plugin/src/main/java/co/elastic/apm/agent/dubbo/AbstractDubboInstrumentation.java +++ b/apm-agent-plugins/apm-dubbo-plugin/src/main/java/co/elastic/apm/agent/dubbo/AbstractDubboInstrumentation.java @@ -22,12 +22,13 @@ import java.util.Arrays; import java.util.Collection; +import java.util.Collections; public abstract class AbstractDubboInstrumentation extends TracerAwareInstrumentation { @Override public Collection getInstrumentationGroupNames() { - return Arrays.asList("dubbo", "experimental"); + return Collections.singleton("dubbo"); } } diff --git a/apm-agent-plugins/apm-jdk-httpserver-plugin/src/main/java/co/elastic/apm/agent/httpserver/JdkHttpServerInstrumentation.java b/apm-agent-plugins/apm-jdk-httpserver-plugin/src/main/java/co/elastic/apm/agent/httpserver/JdkHttpServerInstrumentation.java index 8b9170eac3..c2465bc914 100644 --- a/apm-agent-plugins/apm-jdk-httpserver-plugin/src/main/java/co/elastic/apm/agent/httpserver/JdkHttpServerInstrumentation.java +++ b/apm-agent-plugins/apm-jdk-httpserver-plugin/src/main/java/co/elastic/apm/agent/httpserver/JdkHttpServerInstrumentation.java @@ -20,13 +20,13 @@ import co.elastic.apm.agent.bci.TracerAwareInstrumentation; -import java.util.Arrays; import java.util.Collection; +import java.util.Collections; public abstract class JdkHttpServerInstrumentation extends TracerAwareInstrumentation { @Override public Collection getInstrumentationGroupNames() { - return Arrays.asList("jdk-httpserver"); + return Collections.singleton("jdk-httpserver"); } } diff --git a/apm-agent-plugins/apm-opentelemetry/apm-opentelemetry-plugin/src/main/java/co/elastic/apm/agent/opentelemetry/AbstractOpenTelemetryInstrumentation.java b/apm-agent-plugins/apm-opentelemetry/apm-opentelemetry-plugin/src/main/java/co/elastic/apm/agent/opentelemetry/AbstractOpenTelemetryInstrumentation.java index 0492594875..33ec237f9f 100644 --- a/apm-agent-plugins/apm-opentelemetry/apm-opentelemetry-plugin/src/main/java/co/elastic/apm/agent/opentelemetry/AbstractOpenTelemetryInstrumentation.java +++ b/apm-agent-plugins/apm-opentelemetry/apm-opentelemetry-plugin/src/main/java/co/elastic/apm/agent/opentelemetry/AbstractOpenTelemetryInstrumentation.java @@ -40,6 +40,6 @@ public final boolean includeWhenInstrumentationIsDisabled() { @Override public final Collection getInstrumentationGroupNames() { - return Arrays.asList("opentelemetry", "experimental"); + return Arrays.asList("opentelemetry"); } } diff --git a/docs/api-opentelemetry.asciidoc b/docs/api-opentelemetry.asciidoc index 68d9e80472..7f4fed3da8 100644 --- a/docs/api-opentelemetry.asciidoc +++ b/docs/api-opentelemetry.asciidoc @@ -6,9 +6,6 @@ endif::[] [[opentelemetry-bridge]] === OpenTelemetry bridge -NOTE: Added as experimental in 1.30.0. -To enable it, set <> to `true`. - The Elastic APM OpenTelemetry bridge allows creating Elastic APM `Transactions` and `Spans`, using the OpenTelemetry API. In other words, diff --git a/docs/configuration.asciidoc b/docs/configuration.asciidoc index 10913a17af..d1d14497ee 100644 --- a/docs/configuration.asciidoc +++ b/docs/configuration.asciidoc @@ -195,9 +195,7 @@ Click on a key to get more information. // This file is auto generated. Please make your changes in *Configuration.java (for example CoreConfiguration.java) and execute ConfigurationExporter [float] [[config-circuit-breaker-enabled]] -==== `circuit_breaker_enabled` (added[1.14.0] performance experimental) - -NOTE: This feature is currently experimental, which means it is disabled by default and it is not guaranteed to be backwards compatible in future releases. +==== `circuit_breaker_enabled` (added[1.14.0] performance) A boolean specifying whether the circuit breaker should be enabled or not. When enabled, the agent periodically polls stress monitors to detect system/process/JVM stress state. @@ -1471,9 +1469,7 @@ Prepending an element with `(?-i)` makes the matching case sensitive. // This file is auto generated. Please make your changes in *Configuration.java (for example CoreConfiguration.java) and execute ConfigurationExporter [float] [[config-use-path-as-transaction-name]] -==== `use_path_as_transaction_name` (experimental added[1.0.0,Changing this value at runtime is possible since version 1.22.0]) - -NOTE: This feature is currently experimental, which means it is disabled by default and it is not guaranteed to be backwards compatible in future releases. +==== `use_path_as_transaction_name` (added[1.0.0,Changing this value at runtime is possible since version 1.22.0]) If set to `true`, transaction names of unsupported or partially-supported frameworks will be in the form of `$method $path` instead of just `$method unknown route`. diff --git a/docs/setup-attach-api.asciidoc b/docs/setup-attach-api.asciidoc index 0d0606cbe8..ea3c5f9f23 100644 --- a/docs/setup-attach-api.asciidoc +++ b/docs/setup-attach-api.asciidoc @@ -1,8 +1,6 @@ [[setup-attach-api]] === Programmatic API setup to self-attach -NOTE: This installation method is in beta. - [float] [[setup-attach-api-supported-environments]] ==== Supported environments @@ -14,9 +12,6 @@ Unix and Solaris operating systems on HotSpot-based JVMs (like OpenJDK and Oracl [[setup-attach-api-caveats]] ==== Caveats -The approach to mitigate `NoClassDefFoundError` s when used in OSGi containers (which includes most application servers) is experimental. -Versions prior to 1.18.0 don't support OSGi containers. - There can only be one agent instance with one configuration per JVM. So if you deploy multiple web applications to the same application server and call `ElasticApmAttacher.attach()` in each application, the first `attach()` wins and the second one will be ignored. diff --git a/docs/setup-attach-cli.asciidoc b/docs/setup-attach-cli.asciidoc index ede9659a82..5cfad4809d 100644 --- a/docs/setup-attach-cli.asciidoc +++ b/docs/setup-attach-cli.asciidoc @@ -1,8 +1,6 @@ [[setup-attach-cli]] === Automatic setup with `apm-agent-attach-cli.jar` -NOTE: This installation method is in beta. - The `apm-agent-attach-cli.jar` is an executable Java command line program which attaches the Elastic APM Java agent to a specific JVM or to all JVMs of the same host it runs on. This installation method does not require you to alter the configuration of your application server and can be used to conveniently instrument all JVMs on a particular host. @@ -22,13 +20,6 @@ That means it is possible to run the attacher with Java 7 and attach the agent t However, the type of the VM has to be the same: It's not possible to attach to a J9 VM from a HotSpot-based VM and vice-versa. -[float] -[[setup-attach-cli-caveats]] -==== Caveats - -The approach to mitigate `NoClassDefFoundError` s when used in OSGi containers (which includes most application servers) is experimental. -Versions prior to 1.18.0 don't support OSGi containers. - [float] [[setup-attach-cli-download]] ==== Download diff --git a/docs/supported-technologies.asciidoc b/docs/supported-technologies.asciidoc index 11fdb673ce..2d4dfc251d 100644 --- a/docs/supported-technologies.asciidoc +++ b/docs/supported-technologies.asciidoc @@ -165,7 +165,7 @@ rendering |com.sun.net.httpserver.HttpServer |1.7+ |Captures incoming HTTP requests as transactions -|1.25.0 (experimental) +|1.25.0 |Javalin |3.13.8+ @@ -329,7 +329,7 @@ The spans are named after the schema ` `, for example `GET elastic |Apache Dubbo | 2.5+, except for 2.7.0, 2.7.1, and 2.7.2 -| This is an experimental plugin. Remove `experimental` from <> to enable. +| | 1.17.0 |JDK 11 HttpClient diff --git a/docs/tuning-and-overhead.asciidoc b/docs/tuning-and-overhead.asciidoc index a5ba4871a8..31ac154336 100644 --- a/docs/tuning-and-overhead.asciidoc +++ b/docs/tuning-and-overhead.asciidoc @@ -147,7 +147,7 @@ Disabling <> can save allocations, network bandwidth, an [float] [[circuit-breaker]] -=== Circuit Breaker (experimental) +=== Circuit Breaker When enabled, the agent periodically polls stress monitors to detect system/process/JVM stress state. If ANY of the monitors detects a stress indication, the agent will become inactive, as if the