-
Notifications
You must be signed in to change notification settings - Fork 154
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3,887 changed files
with
295,714 additions
and
0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# Maven # | ||
######### | ||
target | ||
/target | ||
**/dependency-reduced-pom.xml | ||
|
||
# Gradle # | ||
######### | ||
!**/gradle/wrapper/* | ||
.gradle | ||
**/build/ | ||
examples/**/build/ | ||
|
||
# Eclipse # | ||
########### | ||
*.launch | ||
.settings | ||
.project | ||
.classpath | ||
# Eclipse is odd in assuming in can use bin to put temp files into it | ||
# This assumes we do not have sub-projects that actually need bin files committed | ||
*/bin/ | ||
|
||
# OS generated files # | ||
###################### | ||
.DS_Store | ||
.DS_Store? | ||
._* | ||
.Spotlight-V100 | ||
.Trashes | ||
Icon? | ||
ehthumbs.db | ||
Thumbs.db | ||
|
||
# Intellij Idea # | ||
################# | ||
.idea | ||
*.iml | ||
*.ipr | ||
*.iws | ||
out/ | ||
|
||
# Visual Studio Code # | ||
###################### | ||
.vscode | ||
|
||
# Others # | ||
########## | ||
/logs/* | ||
/bin | ||
/out | ||
/workspace | ||
java-agent/benchmark-integration/perf-test-settings.rc | ||
derby.log | ||
.java-version | ||
hs_err_pid* | ||
replay_pid* | ||
|
||
!java-agent/benchmark/releases/*.jar | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,251 @@ | ||
# Changelog | ||
|
||
## Unreleased | ||
|
||
### 🌟 New javaagent instrumentation | ||
|
||
- Spring Integration javaagent instrumentation (#3295) | ||
|
||
### 🌟 New library instrumentation | ||
|
||
- Spring Integration library instrumentation (#3120) | ||
|
||
### 📈 Enhancements | ||
|
||
- Support peer-service-mapping in OkHttp3 instrumentation (#3063) | ||
- Low cardinality span names for Hibernate spans (#3106) | ||
- Propagate context to armeria callbacks (#3108) | ||
- Add attributes to netty connection failure span (#3115) | ||
- Defer initialization of OpenTelemetry in spring-boot-autoconfigure (#3171) | ||
- Support couchbase 3.1.6 (#3194) | ||
- New experimental support for agent extensions (#2881, #3071, #3226, #3237) | ||
- Propagate context to akka http callbacks (#3263) | ||
|
||
### Behavioral changes | ||
|
||
- Update agent logger prefix (#3007) | ||
- Remove khttp instrumentation (#3087) | ||
- Enable akka actor instrumentation by default (#3173) | ||
|
||
### 🛠️ Bug fixes | ||
|
||
- Remove Netty instrumented handler wrapper when original handler is removed (#3026) | ||
- Fix memory leak when Netty handler is a lambda (#3059) | ||
- Fix race condition on Undertow (#2992) | ||
- Remove db.connection_string from redis instrumentation (#3094) | ||
- Fix context propagation leak in Akka instrumentation (#3099) | ||
- Fix webflux handler span sporadically not ending (#3150) | ||
- End span on cancellation of subscription to reactive publishers (#3153) | ||
- End span on cancellation of Guava future (#3175) | ||
- Create Netty connection failure span only when first operation fails (#3228) | ||
- Internal instrumentation should always be enabled by default (#3257) | ||
- Fix context propagation leak in Akka HTTP instrumentation (#3264) | ||
- Only include exporters in the `-all` jar (#3286) | ||
- Fix ForkJoinPool sometimes not instrumented (#3293) | ||
|
||
### 🧰 Tooling | ||
|
||
- Migrate MuzzlePlugin to Java (#2996, #3017) | ||
- Refactor TypeInstrumentation#transformers() method (#3019) | ||
- Change a couple of Longs to Integers in Instrumenter API (#3043) | ||
- Add peer.service to Instrumenter API (#3050) | ||
- Add response type parameter to db attributes extractor (#3093) | ||
- Add optimized Attributes implementation for Instrumenter (#3136) | ||
- Rename ComponentInstaller to AgentListener and add #order() method (#3182) | ||
- Update ByteBuddy (#3254) | ||
- Introduce IgnoredTypesConfigurer SPI to enable defining per-module ignores (#3219) | ||
- Extract agent shadow configuration to conventions script (#3256) | ||
- Deprecate SpanExporterFactory in favor of ConfigurableSpanExporterProvider (#3299) | ||
- Refactor span names class (#3281) | ||
- Move http client/server testing dependencies to internal package (#3305) | ||
|
||
## Version 1.2.0 - 2021-05-14 | ||
|
||
### 🌟 New javaagent instrumentation | ||
|
||
- RxJava 3 | ||
([#2794](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2794)) | ||
|
||
### 🌟 New library instrumentation | ||
|
||
- RxJava 3 | ||
([#2794](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2794)) | ||
|
||
### 📈 Enhancements | ||
|
||
- Support sub-millisecond precision for start/end times on Java 9+ | ||
([#2600](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2600)) | ||
- `@WithSpan` async support added for methods returning async Reactor 3.x types | ||
([#2714](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2714)) | ||
- `@WithSpan` async support added for methods returning Guava ListenableFuture | ||
([#2811](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2811)) | ||
- Semantic attributes `code.namespace` and `code.function` captured on JAX-RS internal spans | ||
([#2805](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2805)) | ||
- Context propagated to reactor-netty callbacks | ||
([#2850](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2850)) | ||
|
||
### Behavioral changes | ||
|
||
- AWS lambda flush timeout raised to 10 seconds | ||
([#2855](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2855)) | ||
- `SERVER` span names improved for Spring MVC, Grails, Wicket, and Struts | ||
([#2814](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2814)) | ||
- `SERVER` span names improved for Servlet filters | ||
([#2887](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2887)) | ||
- `SERVER` span names improved for Resteasy | ||
([#2900](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2900)) | ||
- `SERVER` span names improved for Jersey and CXF | ||
([#2919](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2919)) | ||
- JAX-RS `@ApplicationPath` annotation captured as part of `SERVER` span name | ||
([#2824](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2824)) | ||
- RequestDispatcher `forward()` and `include()` internal spans removed | ||
([#2816](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2816)) | ||
- Raised gRPC min version supported to 1.6 in order to use new gRPC context bridge API | ||
([#2948](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2948)) | ||
|
||
### 🛠️ Bug fixes | ||
|
||
- gRPC context bridging issues | ||
([#2564](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issue/2564), | ||
[#2959](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issue/2959)) | ||
- URL credentials of the form `https://username:[email protected]/` no longer captured | ||
([#2707](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2707)) | ||
- Spring MVC instrumentation can cause Spring MVC to misroute requests under some conditions | ||
([#2815](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2815)) | ||
- RxJava2 NoSuchFieldError | ||
([#2836](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2836)) | ||
- Duplicate http client tracing headers | ||
([#2842](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2842)) | ||
- Netty 4.1 listeners could not be removed by application | ||
([#2851](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2851)) | ||
- NPE caused in gRPC ProtoReflectionService | ||
([#2876](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2876)) | ||
- Context leak when using Ratpack | ||
([#2910](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2910)) | ||
- Context leak when using Jetty | ||
([#2920](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2920)) | ||
- Servlet instrumentation overwrites setStatus that was set manually earlier | ||
([#2929](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2929)) | ||
- Spans not captured on interface default methods annotated with JAX-RS annotations | ||
([#2930](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2930)) | ||
|
||
### 🧰 Tooling | ||
|
||
- Documented how to write InstrumentationModule line by line | ||
([#2793](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2793)) | ||
- New instrumenter API used in JMS instrumentation | ||
([#2803](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2803)) | ||
- Instrumenter API improvements | ||
([#2860](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2860)) | ||
- Muzzle checks whether used fields are actually declared somewhere | ||
([#2870](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2870)) | ||
- Extracted javaagent-extension-api from tooling & spi | ||
([#2879](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2879)) | ||
- You no longer have to depend on the `javaagent-tooling` module to implement custom instrumentations: a new `javaagent-extension-api` module was introduced, containing all the necessary instrumentation classes and interfaces; | ||
- `InstrumentationModule` and `TypeInstrumentation` were moved to the `io.opentelemetry.javaagent.extension.instrumentation` package; | ||
- `AgentElementMatchers`, `ClassLoaderMatcher` and `NameMatchers` were moved to the `io.opentelemetry.javaagent.extension.matcher` package; | ||
- A new SPI `AgentExtension` was introduced: it replaces `ByteBuddyAgentCustomizer`; | ||
- `InstrumentationModule#getOrder()` was renamed to `order()`; | ||
- `InstrumentationModule#additionalHelperClassNames()` has been removed; use `isHelperClass(String)` instead if you use the muzzle compile plugin. If you're not using muzzle, you can override `getMuzzleHelperClassNames()` directly instead; | ||
- `InstrumentationModule#getAllHelperClassNames()` has been removed; you can call `getMuzzleHelperClassNames()` to retrieve all helper class names instead. | ||
|
||
## Version 1.1.0 - 2021-04-14 | ||
|
||
### ☢️ Breaking changes | ||
|
||
- Update servlet attribute names for log injection, from `traceId` and `spanId` to `trace_id` and | ||
`span_id` | ||
([#2593](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2593)) | ||
- Renamed `runtime.jvm.gc.collection` metric to `runtime.jvm.gc.time` | ||
([#2616](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2616)) | ||
|
||
### 🌟 New javaagent instrumentation | ||
|
||
- Elasticsearch 7 | ||
([#2514](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2514), | ||
[#2528](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2528)) | ||
- Couchbase 3.1 | ||
([#2524](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2524)) | ||
- Grails | ||
([#2512](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2512)) | ||
- RocketMQ | ||
([#2263](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2263)) | ||
- Lettuce 6 | ||
([#2589](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2589)) | ||
- Servlet 5 | ||
([#2609](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2609)) | ||
- Vaadin web framework | ||
([#2619](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2619)) | ||
- GWT | ||
([#2652](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2652)) | ||
- Tapestry web framework | ||
([#2690](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2690)) | ||
- `@WithSpan` support for methods returning CompletableFuture | ||
([#2530](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2530)) | ||
- `@WithSpan` support for methods returning async RxJava 2 types | ||
([#2530](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2530)) | ||
|
||
### 🌟 New library instrumentation | ||
|
||
- Library instrumentation for AWS SDK v1 | ||
([#2525](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2525)) | ||
- Library instrumentation for Lettuce 5.1 | ||
([#2533](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2533)) | ||
- RocketMQ | ||
([#2263](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2263)) | ||
- Lettuce 6 | ||
([#2589](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2589)) | ||
- Spring Boot Autoconfigure support for `@WithSpan` methods returning CompletableFuture | ||
([#2618](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2618)) | ||
- Spring Boot Autoconfigure support for `@WithSpan` methods returning async RxJava 2 types | ||
([#2530](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2530)) | ||
|
||
### 📈 Improvements | ||
|
||
- Move attributes to span builder for use by samplers | ||
([#2587](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2587)) | ||
- Apache Camel - SNS propagation | ||
([#2562](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2562)) | ||
- Apache Camel - S3 to SQS propagation | ||
([#2583](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2583)) | ||
- Added `runtime.jvm.gc.count` metric | ||
([#2616](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2616)) | ||
- Support reactor netty `HttpClient.from` construction | ||
([#2650](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2650)) | ||
- Improve akka instrumentation | ||
([#2737](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2737)) | ||
- Record internal metric for SQL cache misses | ||
([#2747](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2747)) | ||
- End Netty 4.1 client and server spans when the response has completed, instead of when the | ||
response has started | ||
([#2641](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2641)) | ||
|
||
### 🛠️ Bug fixes | ||
|
||
- Fix RestTemplateInterceptor so that it calls endExceptionally() on exception | ||
([#2516](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2516)) | ||
- Fix app failure under Eclipse OSGi | ||
([#2521](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2521)) | ||
- Fix undertow span ending too early | ||
([#2560](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2560)) | ||
- Fix context leak in AWS SDK 2.2 and RocketMQ instrumentations | ||
([#2637](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2637)) | ||
- Fix hang when a webflux http request is made inside of another webflux http request | ||
(e.g. auth filter) | ||
([#2646](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2646)) | ||
- Fix `@WithSpan` instrumentation breaking Java 6 classes | ||
([#2699](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2699)) | ||
- Fix context not propagated over JMS when explicit destination used | ||
([#2702](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2702)) | ||
- Fix StackOverflowError if jdbc driver implementation of Connection getMetaData calls Statement | ||
execute | ||
([#2756](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2756)) | ||
|
||
### 🧰 Tooling | ||
|
||
- Make muzzle reference creation package(s) configurable | ||
([#2615](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2615)) | ||
- Instrumentations now can skip defining context store manually | ||
([#2775](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2775)) | ||
- New Instrumenter API | ||
([#2596](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2596)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
## Contributing | ||
|
||
Pull requests for bug fixes are welcome, but before submitting new features | ||
or changes to current functionality [open an | ||
issue](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/new) | ||
and discuss your ideas or propose the changes you wish to make. After a | ||
resolution is reached a PR can be submitted for review. | ||
|
||
In order to build and test this whole repository you need JDK 11+. | ||
Some instrumentations and tests may put constraints on which java versions they support. | ||
See [Running the tests](./docs/contributing/running-tests.md) for more details. | ||
|
||
### Building | ||
|
||
#### Snapshot builds | ||
|
||
For developers testing code changes before a release is complete, there are | ||
snapshot builds of the `main` branch. They are available from | ||
the Sonatype OSS snapshots repository at https://oss.sonatype.org/content/repositories/snapshots/ ([browse](https://oss.sonatype.org/content/repositories/snapshots/io/opentelemetry/)) | ||
|
||
#### Building from source | ||
|
||
Build using Java 11: | ||
|
||
```bash | ||
java -version | ||
``` | ||
|
||
```bash | ||
./gradlew assemble | ||
``` | ||
|
||
and then you can find the java agent artifact at | ||
|
||
`javaagent/build/libs/opentelemetry-javaagent-<version>-all.jar`. | ||
|
||
### IntelliJ setup | ||
|
||
See [IntelliJ setup](docs/contributing/intellij-setup.md) | ||
|
||
### Style guide | ||
|
||
See [Style guide](docs/contributing/style-guideline.md) | ||
|
||
### Running the tests | ||
|
||
See [Running the tests](docs/contributing/running-tests.md) | ||
|
||
### Writing instrumentation | ||
|
||
See [Writing instrumentation](docs/contributing/writing-instrumentation.md) | ||
|
||
### Understanding the javaagent components | ||
|
||
See [Understanding the javaagent components](docs/contributing/javaagent-jar-components.md) | ||
|
||
### Understanding the javaagent instrumentation testing components | ||
|
||
See [Understanding the javaagent instrumentation testing components](docs/contributing/javaagent-test-infra.md) | ||
|
||
### Debugging | ||
|
||
See [Debugging](docs/contributing/debugging.md) | ||
|
||
### Understanding Muzzle | ||
|
||
See [Understanding Muzzle](docs/contributing/muzzle.md) |
Oops, something went wrong.