|April 7, 2017
- Fixed startup deadlock due to a rare condition
- Fixed duplicated metrics reporting
- Fixed potential conflicts with CGLib proxies
- Added automatic context cleanup for unexpected conditions
|February 14, 2017
- Improved Asynchronous Servlet instrumentation to avoid context leaking that causes unnecessary tracing
|December 22, 2016
- Added config option to allow custom hostname to be reported
|September 30, 2016
- Improved ThreadPoolExecutor instrumentation to provide better protection against context leaking that causes unnecessary tracing
- Updated LICENSE.TXT
|August 9, 2016
- Fixed: Incorrect instrumentation on Play 2.4 WS Scala library
|June 23, 2016
- Fixed: In high traffic environments, thread pool instrumentation caused unintended tracing.
|May 5, 2016
- The java agent and the custom instrumentation API are available in the Maven Central repository.
- We now provide a Maven plugin that supports installation, re-installation, download and update of the java agent.
- Fixed: Spring RestTemplate client instrumentation produced broken traces in certain setups.
|February 10, 2016
- In some cases, instrumented operations in an asynchronous stack were not properly flagged as asynchronous. This issue has been resolved.
- A warning message was triggered by HTTP POST-redirect requests from Oracles’ JDK 8 HttpURLConnection implementation. The agent should now properly instrument Oracle JDK 8’s HTTP POST-redirect requests without triggering warning messages.
- Improved HttpURLConnection instrumentation to provide extra information on http redirects.
|February 1, 2016
- Added support for akka actor. Interactions and processing of akka actors will be reported only if the newly addedagent.akkaActors option is included in javaagent.json. Note that instrumentation context will always be propagated even if the akka config option is not included, such that any operations that are valid for other instrumentation, jdbc calls for example, will be captured if they are triggered by actor interactions running on different threads.
- Improved the way play instrumentation captures asynchronous operations. Also fixed missing instrumentation on synchronous play extents in certain edge cases.
- Added support for Play WS. Web service/http requests made using Play WS client will now be captured.
- All http/https requests made using java.net.HttpURLConnection and javax.net.ssl.httpsURLConnection will now be traced.
- Any tasks handled by ThreadPoolExecutor will now have their operations instrumented automatically.
- Added support for Spray-can HTTP server and Spray-routing. General http information will be captured by Spray-can instrumentation for applications run on Spray-can HTTP server. Routing and processing logic within the Spray-routing layer will also be reported if applicable.
- Added support for Spray-can HTTP client and Spray-client. Outbound http requests made by the modules will be captured as http service calls.
- Added support for Undertow webserver.
|October 8, 2015
- In high traffic environments, the Play layer was sometimes not captured though its function profiles were. This issue has been resolved.
|September 24, 2015
- The method for generating trace-id has been updated to speed up app initialization when the Tracelyzer is running.
- Beginning with scala 2.10, instrumentation has increased coverage for tracing asynchronous threads.
- Instrumentation now traces controller actions that return async results like Promise<Result> in java or Future[Result] in scala.
|August 31, 2015
- Introduced instrumentation for RabbitMQ 2.6.0 - 3.5.4.
- Updated instrumentation to support Apache HttpClient 4.4.x.
- Updated instrumentation to support MongoDB 3.0.x.
- Updated instrumentation to support Play 2.4.
- Updated instrumentation to support HBase 1.1.1.
- Cassandra client instrumentation now uses the layer name ‘CQL’ instead of ‘Cassandra’.
- A new configuration optionagent.hbaseScannerNext controls whether hbase instrumentation traces ResultScanner.next() operations; they are no longer traced by default.
- We now avoid nested jdbc instrumentation on jdbc layers with the same layer name. For example mysql CallableStatement, which extends PreparedStatement, no longer produces nested ‘mysql’ extents because of duplicated instrumentation on the nested operation (CallableStatement calls parent class PreparedStatement). Please take note that this will not affect nested layers with different layer names. For example when a cached connection pool framework is used, e.g., c3p0, the instrumentation still shows the cached connection layer, c3p0, along with the actual driver layer, e.g., mysql.
- Throughput metrics were incorrectly reported for some layers. This issue has been resolved.
- When shutting down Tomcat, the TraceView java agent no longer triggers warning messages regarding class loader memory leak.
- Hosts with low sample rates sometimes did not report Webflow profile names. This issue has been resolved.
- Excessive class loaders in the jvm caused high memory usage. This issue has been resolved.
| July 31, 2015
- An excessive number of query args could trigger a BufferOverflowException. This issue has been resolved.
| June 25, 2015
- Total requests is now reporting more predictably on the 0 and 30 second mark of each minute so that total requests and traced requests are aligned.
| June 11, 2015
- Fixed a problem in javassist that triggers errors on Solr 4.8.0+.
- Added support of asynchronous operations from Spring RestTemplate.
- Added support of asynchronous operations from Axis2.
- Counters have been added to support forthcoming total request reporting.
- Avoid tracing when settings file is not readable.
- Added builds to Amazon linux distribution.
- Added warning message if no layer specific nor default record is found from the memory mapped settings file.
- Added config option agent.hideParams to suppress reporting of url query parameters on web-servers, netty, apache http client, REST/SOAP clients, and JBoss EJB instrumentations.
| April 24, 2015
- TraceView has a defined maximum number of layers, but was mishandling the final allowable layer. This resulted in an IndexOutOfBoundException and the offending layer not being traced. This issue has been resolved.
| February 23, 2015
- Added support to JBoss 7/8 EJB
- Fixed a problem of missing exit event on Jboss-ejb client due to exceptions
| February 6, 2015
- Fixed crashes triggered by jdk 8 and javassist in certain setup
| February 2, 2015
- Redis java client now supported - Jedis 1.3.x - 2.6.x, Redisson 1.0.1 - 1.1.x
- Restlet client now supported 2.0.x - 2.3.x
- Wildfly 8 (Jboss) now supported
- Enhanced support for Spring 4 MVC
- Incremented mongodb client support to 2.13.x
- Incremented spymemcached client support to 2.11.x
- Enhanced support for Thrift client calls - capturing Remote Host information
- Miscellaneous fixes for asynchronous traces in various scenarios
| December 3, 2014
- This updates the support for JRuby to ensure servlet calls are reported.
| November 7, 2014
- EhCache support for versions 1.3.x - 2.8.x
- Add support for WebSphere, versions 7.5, 8.0, 8.5
- Add support for WebLogic, versions 11g to 12c
- improved Play 2.3 support, template rendering now captured
- changes to support latest Apache HttpClient up to 4.3.x
- fix Axis 2 client support so that if an exception is thrown, we still report the trace event
- fix http status reporting so that a 500 error is always reported if an exception is uncaught
- improve Spring Webflow support to ensure the EvaluateAction is captured
- fix rare classloader race condition when instrumenting annotations
- trivial fix to avoid a warning message when instrumenting cxf
| October 31, 2014
- [smart tracing] Further evolution of trace sampling evolution to smoothly adjust when spikes and dips in traffic occur
- [cassandra] Support Cassandra CQL via the Datastax driver - supported versions 1.0.0 - 2.0.x
- [play] Support Play2War, a Play 2 Framework deployable - supported versions 2.0.x - 2.3.x
- Configuration now allows per module enabling of backtrace reporting for select modules that do not report backtraces by default, in addition to global enabling
- [httpclient] apache httpclient backtraces no longer contain our instrumentation class in the callstack
- [httpclient] all versions of the apache http client will now report the remote uri
- [mongo] fix to remove potential leading slash from the start of the remote hostname
| July 23, 2014
- RedHat OpenShift platform deployment now supported (installed with thecartridge).
- Updates to further support JRuby.
- Optimize agent when collecting backtraces.
- Fix spymemcached tracing where sometimes on an async call 2 exit events would be sent.
- Detect when running on an older Jetty version.
| June 23, 2014
- Small edit to return “java” as the default entry layer name, temporarily was “cq-server” for AEM/CQ5 servers.
| June 20, 2014
- AEM / CQ5 - more specific naming of profiles based on the Resource being accessed.
| June 16, 2014
- Play framework now supported.
- Enhanced Adobe Experience Manager (formerly CQ5) instrumentation: REPORT and POST calls now reporting extra info.
- Java 8 now supported.
- SpyMemcached async event timing fixed so extra info appears under the async extent.
- Minor change to skip an unnecessary hbase constructor that causd a warning message to print out when instrumenting hbase.
- Minor fix to support annotation classloading on Windows.
- Updated documentation links.
| May 2, 2014
- This release improves CQ5 insight by removing a noisy extent and capturing a couple of new ones.
| April 11, 2014
- Support Adobe Experience Manager (CQ5) : Apache Sling and Jackrabbit JCR requests now provide contextual information.
- Propagate hbase context between threads so all events are captured.
- Ensure all keys are reported for jboss remote calls.
- Updated javadoc comments for the external API.
- Can now disable whole modules via configuration (in addition to excluding via classnames).
| March 5, 2014
- Some HBase enhancements to decode binary string names for regions and ensure functions with empty list parameters also report events.
| March 4, 2014
- Enhanced Grails support added.
- Enhanced Spring tracing now includes view rendering.
| February 27, 2014
- MongoDB support added.
- HBase support added.
- spymemcached now reports the remote host and the size of the value retrieved.
- Error events now reported for servlet filter exceptions.
- The API jar for custom instrumentation has been updated; if you use this new jar you need to use the 2.8.1 agent.
| January 8, 2014
- [grails] Grails now supported.
- [jdbc] An Oracle driver classloader contention issue fixed.
- [jdbc] Optimize event sizing when very large events are reported to avoid a BufferOverflow.
- [agent] Classes whose toString() method returned very large representations would consume lots of memory - fixed.
| October 18, 2013
- [spymemcached] SpyMemcached now supported.
- [agent] App container shutdown now much faster than before when the agent would not want to die.
- [agent] IBM jre 1.5 now supported.
- [api] If the agent fails to initialize on startup, we’ve ensured the custom api calls will not affect the app.
| September 25, 2013
- [agent] Specific url endpoints can be identified via configuration to skip tracing if desired. Enhanced Smart Tracing provided at the url level as well.
| August 19, 2013
- [solr] Solr 1.3 to 4.4 now supported!
- [jax-ws] More depth added to JAX-WS tracing (asynchronous calls and better action identification).
| July 18, 2013
- [jboss] Fixed a classloader concurrency issue with jboss 6.
- [CXF] Added support to trace Apache CXF asynchronous calls.
- [windows] Infrastructure changes in preparation for Windows support. Stay tuned!
| July 3, 2013
- [agent] Added ability to exclude instrumentation on specific classes using partial matching (no longer need to specify the FQN).
| June 27, 2013
- Support for many more HTTP clients have been added! Includes:
- Apache CXF : 2.2.1 - CXF 2.7.5
- Axis 2 : 1.5 - 1.6.2
- Sun Jersey : 1.2 - 1.17.1
- Glassfish Jersey (JAX-RS 2.0): 2.0-m-08 - 2.0-m-13
- Glassfish JAX-WS RI : 2.1 - 2.2.7
- Spring REST template : 3.0.0 - 3.2.3
- JBoss Resteasy : 2.0.0 - 3.0
- JDK javax.xml.soap : 1.6 - 1.7.0_22
- SAAJ javax.xml.soap : 1.3
| May 27, 2013
- [apache httpclient] Handle edge case where potentially the host and protocol would be empty.
- [agent] With JVM metrics, some primitive types such as Short’s would not be reported - added comprehensive primitive type mapping.
- [agent] Alternative agent installation directory now supported.
- [agent] Warning messages that are informative in nature should no longer log a stack trace.
- [jdbc] Fix to Postgres prepared statements to ensure all parameters are tracked.
- [spring webflow] Fix on Jboss6 to handle classloading order.
- [agent] Integration with AppView Web.
| April 8, 2013
- [custom-profiling] Added ability to send a backtrace when using custom profiling.
- [api][rum] You will need to update the way in which you include the API classes if you are a user of our Real User Monitoring, Public API, and/or our Custom Layers and Profiling. Full instructions can be found within the afore-mentioned links. The benefit of this new deployment architecture is that you can deploy your custom code that includes the TraceView API hooks to all your servers and only run the javaagent some of the servers, allowing a partial roll-out strategy.
| March 21, 2013
- [agent] Fix JBoss startup timing issue as the java agent starts up.
- [agent] Configuration feature added that allows specified java classes to be excluded from profiling.
| March 11, 2013
- [jdbc] New feature to allow the user to configure the agent to not send the values within SQL statements. When privacy of the data is of concern, setting the config key “agent.jdbcSanitize” will strip out the values from the SQL.
- [jdbc] Fix Oracle JDBC instrumentation to properly identify the hostname.
- [jdbc] MS SQLServer now recognized as a distinct db flavour.
| March 6, 2013
- [agent] Sample rate is now configurable via the Traceview UI; changes made will be pushed to the client applications in real-time (no client application restart necessary).
| February 12, 2013
- [agent] Log exceptions that originate in the agent rather than throw them to the application.
| February 8, 2012
- [agent] Configuration of the java agent is now file-based. The features delivered with this release can be controlled via this new configuration file. See Configuring Java Instrumentation.
- [jmx] JMX metric reporting - Now you can trend JVM garbage collection and other useful java internals inline with your traces.
- [logging] Java agent logging - can toggle verbosity up or down as needed.
- [jdbc] PreparedStatement args now captured as “QueryArgs”.
| February 1, 2013
- [agent] Fix BufferOverflow error when SQL strings are extremely long.
| January 25, 2013
- [agent] Backwards-compatible with java 1.5.
| January 18, 2013
- [spring] Support for Spring Webflow.
| January 10, 2013
- [agent] Exception reporting more comprehensive; backtraces also now added to Exception events.
| January 4, 2013
- [agent] Limit the size of backtraces when reporting from very deep stacks.
| November 8, 2012
- [thrift] Support for Apache Thrift, versions 0.8 and 0.9.
- [servlets] Bug fix: Exit events were not being recorded if a servlet service() or filter doFilter() method threw an exception.
| October 10, 2012
- [api] Public API now provides Context class, to make it easier to trace asynchronous systems.
- [rum] Added RUM instrumentation header and footer functions.
| June 27, 2012
- [http_client] Apache Commons HTTP Client (3.x and 4.x) support.
- [jsf] Support for JSF 1.x and 2.x web frameworks.
- [jdbc] Oracle and DB2 support.
- [api] Public API updates to allow instrumentation of traces across layers.
| June 11, 2012
- [glassfish] Support for Glassfish application server (v2.1.1 and v3.1.2).
- [jdbc] Report remote database server hostname (“RemoteHost”).
| May 30, 2012
|| 0.40 [beta]
- [spring] Support for Spring MVC controller/actions.
- [struts] Support for Struts 2 controller/actions.
- [resin] Support for Resin app server.
- [remoting] Report remote class and method name for calls to JBoss EJBs.
- [jdbc] JDBC now only instruments lowest layers (MySQL, Postgres).
- [jni] Support for optional JNI library that provides more accurate timing information.
- [packaging] rpm and deb packages are now available.
| May 15, 2012
|| 0.38 [beta]
- [agent] Bug fixes for memory leaks.
| May 11, 2012
|| 0.36 [beta]
- [agent] Detect hostname consistently, regardless of java.net.preferIPv4Stack setting.
- [agent] Report version at agent initialization.
- [remoting] need to clear context at exit from remote EJB calls.
- [jdbc] detect JBoss JDBC classes (CachedPreparedStatement, etc.).
| May 10, 2012
|| 0.35 [beta]
- [remoting] support for org.jboss.remoting client and server classes. Allows instrumentation of EJB calls against a JBoss 4.x, 5.x, or 6.x server.
- [api] added logException call to public tracing API.
| May 3, 2012
|| 0.3 [beta]
- [jetty] Jetty app server version 6.0 and above is supported.
- [memcache] Added instrumentation for xmemcached client.
- [jdbc] Additional JDBC ‘execute’ methods are now instrumented, database flavor is always reported.
- [remoting] HTTP remoting using the org.jboss.invocation.http.interfaces.HttpInvokerProxy client is instrumented.
| April 17, 2014
|| 0.2 [beta]
- [servlets] servlet/filter class details are now info events instead of layer calling into itself. This presents as a more legible traceview.
- [jboss] detect JBoss as layer based on presence of org.jboss.resolver property. Was previously reporting as a generic Java layer.
- [jdbc] add backtraces to JDBC calls.
| April 2, 2012
|| 0.1 [beta]
- Initial support for Apache Tomcat, JBoss, and JDBC.
- Expose annotations for custom instrumentation of layers and method profiles. More details at Java Custom Instrumentation.
- Install documentation updated: Java support docs.