-
Notifications
You must be signed in to change notification settings - Fork 12
changelog
dimovelev edited this page Mar 4, 2013
·
13 revisions
List of changes for each version
- Added a new optional timeout to the default sampler (reset-timeout attribute in seconds) which can help with inputs that gradually make sampled metrics available during startup. This option causes the sampler to keep track of the number of selected metrics after the each reconnect. If this number changes a reset of the input and the selectors is triggered in order to select the metrics again. This is done until the number of metrics stops changing.
- Use a daily rolling file appender with 14 days of history by default
- Some minor multi-threading and logging improvements
- Support for new input - webmethods which fetches the diagnostics data from http://webmethods.example.com:1234/invoke/wm.server.admin/getDiagnosticData, unzips it and parses some of the runtime files
- Improved JMX complex and tabular data support (more metrics available)
- Added support for Oracle NoSQL metrics (kvstore). This is achieved by fetching perfmap over the CommandServiceAPI of each replication node over RMI. Only the master keeps the statistics. Both cumulative and interval statistics are used.
- Added shared resources as concept. Currently there are two kinds of shared resources: ** thread pool - a thread pool for samplers. There should be one named "samplers" for all the samplers that do not explicitly specify a thread pool. A sampler can be scheduled on a specific thread pool using the "pool" attribute ** jdbc connection pool - a JDBC connection pooling with c3p0. JDBC inputs do not own the JDBC connection any more but rather have a reference to a pool. This way a connection pool can be used by multiple JDBC readers.
- An output can now be marked as default (default="true"). All outputs marked as default will be used for samplers that do not explicitly have their "outputs" attribute set.
- Fixed JMX socket options receive buffer size XML attribute name
- Reworked the control interface. Sampler can now also be temporarily enabled. Some examples of commands that achieve that:
- sampler mySamplers.* enable - enable until stopped / disabled
- sampler mySamplers.* enable for 10 times - enable for the next 10 intervals. When they are reached the sampler will be disabled again. A sampling is counted even if it fails for some reason (e.g. connection failure)
- sampler mySamplers.* enable for 45 seconds - use the sampler's interval to compute how many times would fit into the given duration and use that.
- sampler mySamplers.* enable for 1 hour
- sampler mySamplers.* enable for 36 minutes
- Implemented a rudimentary redis input metrics reader that uses the jedis API implementation and the redis info command
- Control samplers using regular expressions over the control interface - e.g. echo "sampler weblogic.* start" | nc localhost 28111 will start all samplers that match the regular expression "weblogic.*"
- Renamed the @disabled to @ignored sampler XML attribute. Added @disabled which now means that the sampler is scheduled but not sampling. It can then be started / stopped via the control interface
- @disabled and @ignored XML attributes are now inherited from the template
- hostname derived variables for JMX and apache-status readers
- Renamed mod_qos to apache-status extension. Now it can also parse the Scoreboard line from the apache mod_status response
- Added a new sampler command to the control interface which causes a disabled sampler to fire just once the next time it is scheduled. Invoked using echo "sampler weblogic1 sample" | nc localhost 28111
- Log performance timings for apache-status and JDBC readers
- Application version now available to all extensions
-
Reworked mod_qos reader to use httpcomponents httpclient instead of the HTTPURLConnection. It should now also work with HTTP digest authentication. HTTP Requests now send "metrics-sampler mod_qos" as User-Agent so that such requests can be filtered in the access logs. The input can now also specify any HTTP headers to be overwritten using:
<mod_qos ...> </mod_qos>
- Enable/disable sampler through the TCP control interface without restarting the application using e.g. echo "sampler stop" |nc localhost 28111
- Added service status command
- Added support for variable definition in inputs
- Added some common Weblogic and Tomcat JMX expressions in config/selectors/*.xml.example
- Renamed attribute abstract to template and template to parent
- Renamed most of the XML configuration elements
- Added support for input templates
- Added support for sampler templates
- Fixed problems with multiple JDBC drivers
- Renamed to metrics-sampler (from jmx-sampler) as it better reflects the purpose of the application
- Improved debug logging
- Performance logging using "timings" logger in debug level
- Import local.sh settings from the starter script so that local settings do not get overwritten after an upgrade
- Added support for low level socket options for the JMX input
- Added support for placeholders in the name patterns
- Added some more default placeholders for the JMX input
- Added graceful shutdown command over a configured TCP/IP port
- Changed log format to contain the sampler name
- Changed logger most important logger names to reader.name, writer.name, sampler.name so that they can be separately be configured
- Use -f option for readlink for better compatibility
- Added support for ignoring JMX object names (see config.xml.example)
- Added support for placeholders definitions - global (directly under configuration) and in the default sampler (see config.xml.example)
- Added support for mapping of placeholder values using ${fn:map(dictionary_key,placeholder_for_entry_key)} (see config.xml.example)
- Switched to three number versioning
- Readers wrap the metric values in a MetricValue object containing a timestamp. This way metrics for older time intervals (than the current time) can be returned.
- Readers may not know the metadata before actually quering the metrics. In such cases the transformers fetch all metrics through a different method (readAllMetrics()).
- Added JDBC reader support
- The console output uses the metric's timestamp not the current timestamp
- The console output has correct time now (hh:mm not mm:hh)
- Graphite writer replaces spaces with underscores in metric names
- The check command outputs the number of matched metrics for each transformer
- Improved example configuration with hotspot and jrockit metrics
- Support for composite JMX metrics
- Switched to canonical jmx object names for better compatibility
- Do not check disabled samplers
- Switched from ant to maven and modularized the readers/writers/etc
- Implemented a mod_qos reader
- Added check() method to samplers so that they can check their configurations
- Added extension support using java SPI
- Initial implementation of a simple jmx reader, graphite writer and regular expression transformations