# Modules * New modules: `spring-cloud-sleuth-autoconfigure`, `spring-cloud-sleuth-api`, `spring-cloud-sleuth-instrumentation` `spring-cloud-sleuth-core` removed and changed to `spring-cloud-sleuth-instrumentation` & `spring-cloud-sleuth-api` * Removed `spring-cloud-starter-sleuth-otel` To add OpenTelemetry support you need to add `spring-cloud-starter-sleuth` (adds Brave by default), exclude Brave and add `spring-cloud-sleuth-otel` dependency * Except for the tests, `spring-cloud-sleuth-autoconfigure` is the only module that can have access to `@Configuration`, `@ConfigurationProperties` classes. Tests have been added to ensure such separation. ## Package moving * `org.springframework.cloud.sleuth.api` -> `org.springframework.cloud.sleuth` * `org.springframework.cloud.sleuth.brave.autoconfig` -> `org.springframework.cloud.sleuth.autoconfig.brave` * `org.springframework.cloud.sleuth.otel.autoconfig` -> `org.springframework.cloud.sleuth.autoconfig.otel` * `org.springframework.cloud.sleuth` -> `org.springframework.cloud.sleuth` * Instrumentation: `org.springframework.cloud.sleuth.annotation` -> `org.springframework.cloud.sleuth.instrument.annotation` * All the autoconfiguration classes were moved under `org.springframework.cloud/sleuth.autoconfig` package ## Global class modifications * Any class registered as a bean is now public ## Classes * `RateLimitingSampler` constructor changed * Merged a lot of auto configuration classes into one (e.g. `BraveAutoConfiguration` now imports various other configurations) * Renamed `TraceBraveAutoConfiguration` to `BraveAutoConfiguration` * Renamed `TraceOtelAutoConfiguration` to `OtelAutoConfiguration` * Removed all `NoOp` implementations of the API
39 lines
1022 B
Plaintext
39 lines
1022 B
Plaintext
== Spring Cloud Sleuth Benchmarks
|
|
|
|
This module can run benchmarks using the following tools
|
|
|
|
- JMH
|
|
- JMeter
|
|
|
|
=== How to run it?
|
|
|
|
In the root folder inside the `scripts` folder there are the following benchmark scripts:
|
|
|
|
- runJmhBenchmark.sh
|
|
- runJmeterBenchmarks.sh
|
|
|
|
Just execute them from the root folder like this:
|
|
|
|
[source]
|
|
----
|
|
./scripts/runJmeterBenchmarks.sh
|
|
./scripts/runJmhBenchmarks.sh
|
|
----
|
|
|
|
=== How do they work?
|
|
|
|
For JMH we're building a shaded JAR file that is next executed.
|
|
|
|
For JMeter we're running two applications, one with Sleuth, one without with Spring Boot Maven Plugin.
|
|
Next a Maven JMeter plugin is executed that loads the `*.jmx` files, starts JMeter and prints out the results.
|
|
At the end Spring Boot Maven Plugin stops the applications.
|
|
|
|
=== What are we testing?
|
|
|
|
For now we're testing the performance impact of the following:
|
|
|
|
- our custom Trace HTTP filter
|
|
- instrumentation of controllers - `@Callable` returning and the sync one
|
|
- instrumentation of RestTemplate
|
|
- `@Async` annotated methods
|