- Grizzly Http Server refactor (#581)
- Fixes Spring messaging version incompatibility (#580)
- Update Lightstep Tracer Bundle to 0.30.0 (#579)
- Unprotected WeakHashMap in servlet rule leads to 100% CPU intermittently (#578)
- Avoid suppressing of creation of new span when active span of another component exists (#571)
- Improved runtime performance in
BootLoaderAgent
(#552) - Resolution to "self tracing" issue experienced with Jaeger (#531 #548)
- Support
-DskipTests
initest-maven-mojo
(#568) - Upgrade LightStep Tracer Bundle to v0.20.1 (#566)
- Make CI/CD stable, and reduce time for releases and PR checks (#538 #539)
- Prefer compiled invocation rather than via reflection in
servlet
rule (#547) - Fix to
sparkjava
integration test failing (#560 #561) - Fix to
ZuulITest
failure with span not error (#558 #559) - Remove "unchained" agent rule
spring-web-*
in favor ofHttpUrlConnection
(improved startup performance) (#556 #557) - Merge all "unchained"
spring-webmvc-*
rules into one "chained"spring-webmvc
(improved startup performance) (#553 #554) - Chain rules in
BootLoaderAgent
(improved startup performance)
- Fix
Span.KIND
forapache:httpclient
rule (#550) 👈 Thank you @zeitlinger - Install Memcached for integration testing in Circle CI (#545)
- Fix incorrect
http.status_code
being set inservlet
rule (#533) - Merge all lettuce rules into one (#544 #546)
- Split CXF rules into server and client parts (#532) 👈 Thank you @jianshaow
- Fix classpath property for custom integration rules (#537)
- Fix class loader isolation issue in
IsoClassLoader
(#540) - Turn on Mule integration test for jdk8 (#534) 👈 Thank you @jam01
- Fix
StackOverflowError
injdbc
rule (#541) - Upgrade JDBC Integration to v0.2.10
- Improve rule loading performance (#492 #524)
- Switch to OpenTelemetry's terminology {#522)
- Fix for:
CassandraTest
(#508) - Fix for: Jetty 7.6.21: "Illegal type in constant pool" (#509)
- Combine
jms:1
andjms:2
rules injms
rule (#521 #498 #523) - Determine min & max instrumented versions of libs supported by default (#468)
- Add integration tests for
spring-data
(#520) - Add integration rules for Dubbo 2.6 and 2.7 (#505) 👈 Thank you @limfriend
- Upgrade LightStep trace exporter to
v0.20.0
with support for metrics
- Fix
spring-kafka
Static Deferred Attach (#661 #583 #484) - Support target runtimes that import OpenTracing API (#640)
- Add new Integration Rule: Kafka Streams (#694)
- Add compatibility tests for
com.typesafe.akka:akka-http_2.1[123]
(#671 #597) - Add support for Kafka Streams Processor (#690)
- Add support for CXF Interceptors (#506)
- Resolve overlapping integrations for
spring-web-*
rules (#667) - Resolve couplings of
jms-1
andjms-2
tospring-jms
(#663) - Resolve fingerprint dependency coupling (#664 #507)
- Revised class loading architecture (#504)
- Add integration tests for JDBI (#511)
- Add integration tests for Hystrix (#512)
- Add
<passCompatibility>
for Ratpack (#513) - Add
<passCompatibility>
for Solr Client (#514) - Add
<passCompatibility>
for SparkJava (#516) - Support custom span decorators for Apache Http Client (#510) 👈 Thank you @jianshaow
- Support custom span decorators for Feign (#515) 👈 Thank you @jianshaow
- Document pass/fail compatibility spec (#673)
- Sunset
@AgentRunner.Config(isolateClassLoader=false)
(#517)
- Rewritable Tracer (#607 #515 #437 #479 #486)
- Support "optional deferrable" rule attibute (#645)
- Static Deferred Attach: Fix spring-kafka (#661)
- Static Deferred Attach: Fix spring-messaging (#660 #570)
- Static Deferred Attach: Fix spring-websocket (#674 #578)
- Static Deferred Attach: Fix spring-messaging and spring-kafka (#681)
- Auto-Compatibility Test: Auto-assert compatibility of integrations (#662)
- Auto-Compatibility Test: Support multiple pass/fail compatibility specs (#669)
- Auto-Compatibility Test: Support complex pass/fail compatibility specs (#672)
- Fix generated classes in Thrift rule (#689)
- Implement Apache CXF Integration Rule (#676)
- Enable Static Deferred Attach for
spring-kafka
integration test (#625) - Fix failing Pulsar Functions integration test (#618)
- Selective assertion of span count in Pulsar Functions integration test (#619)
- Remove deprecated methods in
TestUtil
(#622) - Concurrent-safe and self-healing builds in Travis CI (#629 #536)
- Implement
LocalSpanContext
to avoid duplication ofContext
pattern (#632 #533) - Refactor duplicated
onError(...)
methods toAgentRuleUtil
(#635) - Upgrade LightStep Trace Exporter to
v0.19.0
(#647)
- New integration rules: Mule 4 (#324), Pulsar Functions (#398)
- New integration tests: Pulsar Functions (#608 #511 #412)
- Mechanism to load customized span decorators externally (#610)
- Mechanism in
TestUtil
to check span count by component name (#613 #514) - Rebase
servlet
rule with current implementation ofjava-web-servlet-filter
(#600) - Modify
servlet
rule to addskipPattern
andspanDecorators
(#399) - Modify
servlet
rule to allow creation of tags from HTTP headers (#602) - Solution to prevent tracers getting instrumented by SpecialAgent (#381)
- Fix Static Deferred Attach not executing hook for Spring Boot apps (#382)
- Fix to stack-overflow in
FilterAgentIntercept
(#391) - Fix to memory leak in
servlet
rule with Jetty 9.4 and Spring 5 (#395) - Fix error tag for
jedis
(#396) - Cleanup and refactor patterns (#397)
- Improve intercept logging (#385)
- Improve test coverage for init patterns (#342)
- Fix download links in README.md (#386)
- Make
TracedMessage
distributable (#380) - Fix Static Deferred Attach for Spring Boot based apps (#379)
- Determine libs transitively supported by existing integration task (#329)
- Implement integration tests for transitively supported libs (#330)
- Add integration tests for Ratpack (#378)
- Add integration tests for SparkJava (#373)
- Add integration tests for Twilio (#371)
- Fix
NoSuchMethodException: TracingFilter.buildSpan(...)
(#369) - Use
WrapperProxy
from "io.opentracing.contrib:common" (#374) - Implement Dynamic Integration Rule (#375)
- Fix "object is not an instance of declaring class" resulting from
DynamicProxy
(#368) - Fix incorrect return from
PluginManifest.getPluginManifest
when called fromAgentRunner
(#372) - Fix different span behavior for Spring WebMVC with Static Deferred Attach (#358)
- Make
JmsTest
in JMS-2 more stable (#364) - Allow Static Deferred Attach to work with Spring Boot apps built with
spring-boot-maven-plugin
(#362) - Add support for global tags when using LightStep Tracer (#320)
- Update
SpecialAgentUtil.convertToNameRegex(...)
to match name literals (i.e. "spring:boot") (#363) - Update Integration Rules (#387)
- Tokenize
${sa.itest.args}
initest-maven-plugin
to (#388) - Fix
VerifyError: "Illegal type in constant pool"
due toisEnabled(Class,String)
(#389) - Fix Static Deferred Attach initializing Spring Boot too early (#367)
- Improve test module structure (#348)
- Use DynamicProxy for all objects instrumented via inheritance pattern (#359)
- Update
CouchbaseClientTest
to resembleCouchbaseClientITest
(#352) - Static deferred attach is unavailable (#356)
- Upgrade JDBC Integration to v0.2.7
- Implement AgentRule(s) for Neo4J Driver (#321)
- Implement AgentRule(s) for Netty (#318)
- Explicitly support OpenJDK (#158)
- Explicitly support Jetty 9.3.x and 9.4.x (#327)
- Use strict advice clauses in FilterAgentRule (#331, #338)
- Improve integration test architecture (#335)
- Upgrade JDBC Integration to v0.2.5 (DynamicProxy) (#343)
- Fix to possible race condition in "servlet" rule (#316)
- Implement AgentRule(s) for Google Http Client (#314)
- Implement AgentRule(s) for Couchbase Client (#310)
- Implement integration test for Spymemcached (#305)
- Reduce source & target versions for all rules (#277)
- Fix to startup failure with Dynamic Attach on Windows (#288)
- Fix to
-Dsa.log.file
resulting in empty logs (#294) - Add ability to specify system properties to AgentRunner runtimes (#307)
- Implement integration rule for
HttpUrlConnection
(#300) - Implement Static Deferred Attach for SpringWebMVC (#304)
- Implement integration test for
ForkJoinPool
(#102) - Implement integration tests for
- Zuul (#266)
- Spring WebFlux (#275)
- Spring WebMvc (#278)
- Spring Scheduling (#281)
- Spring Kafka (#284)
- Spring RabbitMQ (#289)
- Spring JMS (#291)
- Spring Messaging (#295)
- Spring WebSocket (#297)
- Integrate OpenTelemetry Bridge Trace Exporter into SpecialAgent (#229)
- Implement Formal API for Static Deferred Attach (#267)
- Implement integration tests for:
- Hazelcast (#230)
- JAX-RS Client (#235)
- Apache HttpClient (#233)
- Kafka Client (#244)
- Lettuce (#247)
- Reactor (#255)
- Jedis (#257)
- RabbitMQ Client (#249)
- Redisson (#260)
- Thrift (#263)
- Spring Web (#270)
- Upgrade
opentracing-grpc
to 0.2.x (#242) - Upgrade
opentracing-elasticsearch
to 0.1.6 (#251) - Upgrade
opentracing-jdbc
to 0.2.3 (#268) - Fix to:
elasticsearch-client-rest
integration causing "authorization failed" (#240) - Fix to:
GrpcTest
is unstable (#237) - Fix to:
KafkaClientITest
is unstable (#262) - Fix to: Termination due to absolute/relative file path mismatch (#225)
- New integration rules: Akka Http Server, OkHttp 4, Play Framework (server and client).
- Include external integration rules (those which are not included in the SpecialAgent, such as proprietary rules).
- Fix to
ClassLoaderAgentRule
bug leading toNoClassDefFoundException
. - Static Deferred Attach for Spring Boot versions 1.0.0.RELEASE to LATEST.
- Automatic activation of Static Deferred Attach for Spring Boot applications.
- Migrate integration tests for: OkHttp, JDBC API, Concurrent API, MongoDB Driver, Servlet API (Jetty and Tomcat), AWS SDK 1 and 2, Cassandra Driver, JMS 1 and 2, ElasticSearch 6 and 7, RxJava 2, Akka Http.
- Expanded ranges of versions tested in integration-test phase.
- Updated Integration Rules to most recent versions.
- Updated package and class names for all Integration Rules to conform to naming convention.
- New Integration Rules: Akka Http Client.
- Fix bug in config properties import process (#179).
- Fix bug in
servlet
rule resulting in duplicate requests (#178). - Introduced "plugin groups", with new plugin naming convention.
- Linked integration tests: OkHttp, JDBC.
- Updated Integration Rules: Spring 4 Web, Spring 4 Web MVC.
- New Integration Rules: Lettuce 5.2.
- Fix class loader issues in JDBC Rule.
- Fix J9+ cross-module readability issues.
- Support ASYNC mode in
web-servlet-filter
. - Integrate Wavefront Trace Exporter into SpecialAgent.
- Exclusively rely on Fingerprint Algo to qualify integration compatibility in all cases.
- Update Lettuce and Lettuce-50 rules to load mutually exclusively.
- Update Spring Web and WebMVC rules (for versions 3, 4, and 5) to load mutually exclusively.
- Improved rigor in requirements imposed onto JUnit tests by
AgentRunner
. - Improved class loading architecture.
- Improved class loading policy for
RuleClassLoader
. - Improved stability and resilience to
LinkageError
s. - Support Tomcat 7.0.96 with
web-servlet-filter
. - Optimized load time and runtime performance.
- Resolve minimum versions of 3rd-party libraries supported by each Integration Rules.
- Resolve false negative compatibility tests in fingerprinting algorithm.
- Remove reliance of JMS-2 rule onto JMS-1 rule.
- Improve performance of fingerprint generation.
- Fix issue that may result in NoClassDefFoundError during JVM shutdown hook.
- Resolve class signature conflicts in
web-servlet-filter
rule. - Upgrade core libraries.
- Improve stability of tests.
- Improve speed of fingerprint creation.
- Resolve conflict with Java Logging system properties.
- Isolate TracerResolver into non-interfering class loader.
- Remove Hystrix Rule, as its functionality is convered by Java Concurrent Integration.
- Support for Spring 4.
- Standard stream logging.
- Disable class format changes.
- Stability updates to Integration Rules: Apache HTTP Client, Feign.
- New Integration Rules: Spring 4 Web, Spring 4 Web MVC, Elasticsearch 7, AWS SDK 2.
- Support Servlet API 2.3 with
web-servlet-filter
rule. - Remedy class collision errors of conflicting library versions.
- Reduce excess log verbosity.
- Support windows slashes.
- Update JDBC Integration to
0.1.5
. - Update Grizzly AHC Integration to
0.1.3
. - Minor fixes to Kafka Messaging, Redisson, and Cassandra rules.
- Resolve conflicting transitive dependencies in Integration Rules.
- Update Fingerprinting Algorithm to support (full)-depth-n fingerprints.
- Implement static-deferred attachment strategy.
- Implement mechanism to disable
AgentRule
s. - New Integration Rules: Spring 3 Web, Spring 3 Web MVC, JAX-RS, Thread.
- Fix to propagation of system properties via dynamic attach.
- Implement assert that name of SpecialAgent JAR is correct.
- Make SpecialAgent thread safe.
- Update LightStep and Jaeger Trace Exporters.
- Update Fingerprinting Algorithm to support (semi)-depth-n fingerprints.
- Update Integration Rules: JDBC.
- Re-integrate Integration Rules: Grizzly AHC, Grizzly Http Server, Reactor.
- Officially support Spring rules.
- New Integration Rules: Spring Messaging, Spring WebSocket STOMP, Spring
@JmsListener
, Spring RabbitMQ. - Update to Apache HttpClient Rule: Added
hostname
andport
tags to http client spans. - Upgrade to SpecialAgent API in lieu of Fingerprinting Algorithm rewrite.
- Resolve issue #86: DynamoDB Calls regarding bad headers when using LightStep.
- Resolve issue #87: Apache HttpClient Rule regarding default HTTP port.
- Resolve issue #88: Redis Rule regarding PubSub.
- New Integration Rules: Feign, Zuul, Spring Kafka, Spring Scheduling.
- Upgrade to SpecialAgent API, requiring AgentRule(s) to explicitly specify a name for the integration rule.
- Improved configuration spec utilizing short names for integration rules.
- Fix to bug regarding dependency resolution of a rule's dependency graph.
- Improved API documentation.
- New Integration Rules: Redis, Spring Web Flux, Grizzly HTTP Server, Grizzly AsyncHttpClient, Reactor, Hazelcast, Spymemcached.
- Upgraded Jaeger Trace Exporter to support OT API 0.32.0.
- Startup performance improvement.
- Improved documentation.
- Bug fixes.
- New Integration Rules: Apache HttpClient, Redis Client Lettuce, Spring Web, Spring Web MVC.
- Addition of configurable "General Verbose Mode" in
AgentRule
. - Fix class loading issues seen in Tomcat and Elasticsearch6.
- Fix Mongo Driver rule in lieu of upgrade to OT API v0.32.0.
- Fix
OkHttp
rule to also instrument default constructor. - Now reporting code test coverage on Coveralls.
- Declared support for OpenJDK.
- Improved documentation.
- Place
Tracer
instances into an isolated class loader. - Upgrade to OpenTracing API 0.32.0.
- New Integration Rules: Jedis, RabbitMQ, RabbitMQ Spring, gRPC, and Apache Thrift.
- Upgraded
opentracing-specialagent-api
. - Improved logging: see intercept events on
Level.FINER
.
- Release
agentrule-maven-plugin
in deployment. - Support any 3rd-party libraries present on BootPath.
- Upgrade LightStep Tracer to 0.15.4 for interoperability with SpringBoot.
- Resolve bugs in dependency correlation for rule wiring in SpecialAgent runtime.
- Standardize
-Dsa.
prefix for properties of SpecialAgent. - Support execution of SpecialAgent with a tracer in IDEs.
- Implement
ProxyMockTracer
, which allows all tests to plug into a real tracer as specified by the-Dsa.tracer=...
property (-Dsa.exporter=...
property as ofv1.7.0
). - General performance improvements.
- Support for Trace Exporters.
- New Integration Rules: Elasticsearch 6, RxJava 2, Kafka Client, AsyncHttpClient.
- Performance optimization via exclusion of unintended integration of tracer code.
- Improvements to
AgentRunner
runtime, Fingerprint algorithm, logging and exception behavior.
- Initial release.