@koo-taejin koo-taejin released this Dec 8, 2016 · 1524 commits to master since this release

Assets 5

1.6.0 release note

You must create 2 new HBase tables if you are upgrading from a previous release.

AgentStatV2
TraceV2

For more information on what these tables do, please refer to the Trace/AgentStat improvements section below.

ASM

We have changed our default bytecode instrumentation engine from Javassist to ASM and you will now experience faster application startup time especially in an environment with a lot of Spring beans.
This change also allows us to add powerful new APIs for you to utilize when developing plugins in the future.

We have added the following option to pinpoint.config to configure bytecode instrumentation engine used by the agent.

pinpoint.config

profiler.instrument.engine=ASM

Possible values are:

  • ASM (default) - uses ASM for bytecode instrumentation
  • JAVASSIST - uses Javassist for bytecode instrumentation

Please note that JAVASSIST instrumentation is deprecated and will be removed in future release.

Trace/AgentStat improvements

Huge improvements have been made to storing trace and agent stat data. We've experienced upwards of 60-70% improvement in I/O performance and storage capacity internally.
We highly recommend you create the following tables when upgrading from 1.5.x.

AgentStatV2
TraceV2

We have added the following options to pinpoint-collector.properties and pinpoint-web.properties to configure which tables to use.
Default values have been set to ensure backwards compatibility so you most likely will not need to change anything after creating the tables above.

pinpoint-collector.properties

collector.span.format.compatibility.version=v2
collector.stat.format.compatibility.version=v2

Possible values are:

  • v1 - writes data to AgentStat/Trace table.
  • v2 (default) - writes data to AgentStatV2/TraceV2 table.
  • dualWrite - writes data to AgentStat/Trace and AgentStatV2/TraceV2 tables.

pinpoint-web.properties

web.span.format.compatibility.version=compatibilityMode 
web.stat.format.compatibility.version=compatibilityMode 

Possible values are:

  • v1 - reads data from AgentStat/Trace table.
  • v2 - reads data from AgentStatV2/TraceV2 table.
  • compatibilityMode (default) - reads data from AgentStatV2/TraceV2 and if nothing is found, reads data from AgentStat/Trace tables.




Known Issues

  • When profiling Jboss, you must set profiler.instrument.engine=JAVASSIST in pinpoint.config


Plugins

  • Added Hystrix support - #1594, #2101 (Contributed by jiaqifeng)
  • Added ActiveMQ support - #1709
  • Added Apache cxf client support - #1994 (Contributed by barneykim)
  • Added JBOSS support - #2001, #2026, #2117, #2170 (Contributed by suraj-raturi)


  • Modified a number of log levels in JDBC plugins - #1729
  • Added options to allow for additional configuration in tracing JDBC drivers - #2083
  • TProtocolDecorators are now supported for Thrift plugin - #2106
  • Spring plugin now supports tracing component-scanned beans - #2143
  • Improved Tomcat plugin stability - #2155, #2159, #2166, #2168


  • Fixed a bug where Tomcat wasn't being traced if excludeUrl was not set - #2077
  • Fixed a bug where traces from JDK-HTTP plugin would not render destination nodes in the server map - #2010


  • Added tests for mybatis-spring v1.3+ #1703
  • maria-db-java-client libraries are now pulled from maven central when running MariaDB integration test - #2072


Enhancements

  • Added support for tracing message queue clients - #1708
  • Added support for using NIO for UDPDataSender - #1711
  • CPU statistics can now be collected when using IBM JVMs - #1756
  • Upgraded Javaassist library (3.20.0-GA -> 3.21.0-GA) - #1807
  • Added support/configs for dumping bytecodes - #1811, #1814
  • You may now choose to use ASM (default) to do bytecode instrumentation - #2017
  • API information can now be stored as SpanEvent annotation field - #2018
  • Removed JDK logger dependency from bootstrap module - #2026
  • Agent now uses JDK's ThreadLocalRandom when running on Java 7+ - #2027
  • You can now trace Pinpoint Web using Pinpoint! - #2044
  • Main classes used to detect application type are now configurable - #2156
  • You may now use ant-style patterns when configuring custom classes to trace - #2173
  • Agent's child directories are now resolved using their canonical path - #2202


  • Collector statistics report is now a lot more detailed - #1990


  • Web now displays detailed error message for uncaught server exceptions - #535
  • API for user data is now ordered - #1723
  • API for user data now uses a parameter object - #1723
  • Added support for storing total number of registered agents into a relational database- #1883
  • Added additional query parameters for alarm rule API - #1887
  • Configuration API now returns additional result - #1900
  • Real time scatter chart now retries request on 5xx errors - #1928
  • Improved real time scatter chart performance - #1986
  • Removed a number of $timeout that led to performance issues in Inspector - #2176, #2177, #2194
  • Added parameter verification to certain APIs - #2217


  • Improved agent stat data storage - #1533
  • Changed hbase client - #1613
  • Improved trace data storage - #1819, #1913, #2187
  • Improved buffer related APIs - #1838, #1847, #1853, #1866
  • Added support for relative path execution of networktest.sh #2261 (Contributed by fanyeren)


Bug Fixes

  • Fixed an issue where array typed fields and their getter/setter could not be injected - #1879
  • Fixed an issue where profiler.include was not working as intended - #1947
  • Added additional checks to prevent agent from registering multiple transformers for the same class - #2178
  • Fixed send retry policy for TCPDataSender - #2198
  • Fixed potential thread safety issue with InterceptorScope - #2259
  • Fixed an issue where ASMClass.addDelegatorMethod() would produce incorrect bytecode - #2264


  • Fixed concurrency issue for real time active thread chart - #1482
  • Pinpoint web now scans for mapper files in all class paths - #1746
  • Fixed an issue where a wrong agent was selected when dragging on the scatter chart - #1797
  • Fixed an issue where a different focus time was being selected in the call tree - #1828
  • Fixed an issue where a wrong application name was being displayed in the Transaction List - #1872
  • Removed pop up warnings for jquery-layout components - #1873
  • Fixed an issue where the Transaction List would not load when the page is loaded through url - #1877


  • Fixed an issue where toggling success/failed check boxes in the scatter chart would show a different agent's data - #2004
  • Fixed an issue where agent information was not being reset when selecting a different application in Inspector - #2082
  • Fixed an issue where changing applications with real time chart pinned would result in incorrect summation of active threads - #2085
  • Fixed an issue where the Server-List layer's scatter chart would not update itself under real time mode - #2137
  • Scatter chart's total request count is now calculated correctly - #2163
  • Fixed incorrect date calculation when time slider's previous/next button is selected in Inspector - #2197
  • Events are now properly cleared from the time slider when selecting different agents in Inspector - #2206
  • Fixed an issue where the response time chart's layout would break when the link node is clicked more than once - #2224
  • Fixed incorrect binding of ${buildtime} variable - #2266
  • Fixed an issue where scatter chart stuck when the y-axis max value is modified #2299


UI & UX

  • Modified UI for configuration modal - #1706
  • Improved UI for alarm configuration - #1715, #1725, #1706, #1889, #1902
  • Removed beta tag from Pinpoint logo - #1731
  • Changed label for switching to real time mode (from an icon to text) - #1764
  • Added scatter charts under Server List - #1787
  • Improved Inspector UI and added a time slider - #1799, #1800, #1803, #1815, #1831
  • Changed date formats for charts in Inspector - #1835
  • Added active thread chart to Inspector - #2054, #2056, #2057, #2058, #2208
  • Application select box now shows more applications - #2137
  • Transaction List now forbids events from firing until it has finished loading - #2130
  • Iframe inside Transaction List is no longer cached - #2145
  • Modified UI for the Server List layer


  • The position of Transaction List's handle bar is now remembered - #1797
  • Adding applications to "favorites" is now instantly applied to application select box - #1832
  • Added an option to set user's time zone - #1997
  • It is now impossible to drag outside the scatter chart - #2105
  • Added paging for displaying response summary charts for unknown nodes - #2150


Tasks

  • Added comments on cluster configuration - #1695
  • Refactored xxxBo classes into the server module (package changed from com.navercorp.pinpoint.common to com.navercorp.pinpoint.common.server) - #1720
  • Cleaned up spring-related configurations - #1727
  • Improved SpanBo code - #1734, #1742
  • Updated QuickStart README.md - #1736, #1980 (Contributed by yous and abhijith0505)
  • Added configurations for checking JDK 1.6 compatibility - #1761
  • Separated tools module - #1774
  • Added configuration options for various plugins - #1788, #2090, #2151 (Contributed by guindous)
  • Separated optional modules by JDK versions - #1821
  • Modified default log4j setting - #1822, #2086
  • Added maven profile to separate pinpoint.config into local(development) and release configurations - #1822
  • Updated README.md - #2005 #2186
  • Repackaged Guava to remove JDK logger dependency - #2038
  • Fixed compatibility issue with Java 7 when the agent is built using JDK 8 - #2095
  • Changed default bytecode instrumentation to use ASM (JAVAASSIST -> ASM) - #2215
  • Updated doc/installation.md


  • jshint is no longer defaulted to run when building web - #1751
  • Docker image bumped to HBase 1.2.x and fixed port for web - #1767 (Contributed by dawidmalina)
  • Added MySql docker image and made it configurable through start-web.sh - #1768 (Contributed by dawidmalina)
  • Changed artifactId of the root module (pom -> pinpoint) - #1794, 1795
  • Added maven-animal-sniffer plugin - #1833 (Contributed by 999fg)
  • Added grunt-maven-plugin to enable grunt build - #1843
  • Remove original source from being deployed after a grunt build - #1890
  • Provide fallback when the main hbase repository is not available when building HBase docker image - #2225


  • Added CodeCov - #2060


Library Updates

  • Upgraded HBase library (1.0.0-cdh5.4.0 -> 1.2.0-cdh5.7.3) - #1684
  • Upgraded go js library (1.5.19 -> 1.6.5) - #1731
  • Upgraded select2.js component - #1737
  • Upgraded various dependency libraries - #1749
  • Upgraded Javaassist library (3.20.0-GA -> 3.21.0-GA) - #1807 (Contributed by dawidmalina)
  • Upgraded netty library (3.6.6.Final -> 3.10.6.Final) - #2026


  • Upgraded maven clover plugin - #1757
  • Upgraded HBase version for docker HBase image (1.0.3 -> 1.2.3) - #2127 (Contributed by mvlbarcelos)