All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Dropped support for end-of-life Node.js versions 6.x and 8.x
- Dropped the previously deprecated support for positional parameters in constructors, only the config object forms remain.
- Default metrics are collected on scrape of metrics endpoint, not on an
interval. The
timeoutoption tocollectDefaultMetrics(conf)is no longer supported or needed, and the function no longer returns aTimeoutobject.
- chore: remove ignored package-lock.json
- fix:
process_max_fdsis process limit, not OS (#314) - Changed
MetriclabelNames & labelValues in TypeScript declaration to a generic typeT extends string, instead ofstring - Lazy-load Node.js Cluster module to fix Passenger support (#293)
- fix: avoid mutation bug in
registry.getMetricsAsJSON() - fix: improve performance of
registry.getMetrics* - End function of histogram
startTimer, when invoked returns the number of seconds - chore: reindent package.json
- chore: correct var name in processStartTime
- chore: add test for
process_start_time_seconds - chore: spelling corrections in README
- feat: implement GC metrics collection without native(C++) modules.
- faet: implement advanced event loop monitoring
- Parameter
compressCountin Summaries to control compression of data in t-digest. - Compress t-digest in Summaries
- fix: avoid mutation bug in registry
- fix: guard against missing constructor
- Added
timestampstoggle tocollectDefaultMetricsoptions - Export
validateMetricName
nodejs_active_handlesmetric to thecollectDefaultMetrics(). Unlikenodejs_active_handles_totalit split count of active handles by type.nodejs_active_requestsmetric to thecollectDefaultMetrics(). Unlikenodejs_active_requests_totalit split count of active requests by type.
- Check that cluster worker is still connected before attempting to query it for metrics. (#244)
- Added a
remove()method on each metric type, based on Prometheus "Writing Client Libraries" section on labels
- Updated types for Summary in typescript definition file
- Updated child dependency
mergepatch version to remove vulnerability.
- Added an initial
benchmarksuite which can be run withnpm run benchmarks. - Add support for sliding windows in Summaries
- Fixed performance by avoiding
Object.assignon hot paths, as well as mutating objects when appropriate.
- Allow setting Gauge values to NaN, +Inf, and -Inf
- Fixed
histogramscrape performance by usingacc.pushinstead ofacc.concat. Fixes #216 with #219
- Fixed
processOpenFileDescriptorsmetric when no custom config was set
- Added ability to set a name prefix in the default metrics
- Fixed
startTimerutility to not mutate objects passed asstartLabels - Fixed
Counterto validate labels parameter ofinc()against initial labelset - Fixed
AggregatorFactorylosing the aggregator method of metrics
- Fixed
gauge.setToCurrentTime()to use seconds instead of milliseconds- This conforms to Prometheus best practices
- Dropped support for node 4
- Fixed issue that
registry.getMetricsAsJSON()ignores registry default labels
10.2.2 - 2017-11-02
- Fixed invalid
process_virtual_memory_bytesreported under linux
10.2.1 - 2017-10-27
- Only resolve/reject
clusterMetricspromise if no callback is provided
10.2.0 - 2017-10-16
- Don't add event listeners if cluster module is not used.
- Fixed issue with counters having extra records when using empty labels
- Added
resetto Counter and Gauge - Added
resetMetricsto register to callingresetof all metric instances
10.1.1 - 2017-09-26
- Update TypeScript definitions and JSDoc comments to match JavaScript sources
- Fix lexical scope of
argumentsin cluster code
10.1.0 - 2017-09-04
- Support aggregating metrics across workers in a Node.js cluster.
10.0.4 - 2017-08-22
- Include invalid values in the error messages
10.0.3 - 2017-08-07
- Added registerMetric to definitions file
- Fixed typing of DefaultMetricsCollectorConfiguration in definitions file
- Don't pass timestamps through to pushgateway by default
10.0.2 - 2017-07-07
- Don't poll default metrics every single tick
10.0.1 - 2017-07-06
- Metrics should be initialized to 0 when there are no labels
10.0.0 - 2017-07-04
- Print deprecation warning when metrics are constructed using non-objects
- Print deprecation warning when
collectDefaultMetricsis called with a number
- Ability to set default labels by registry
- Allow passing in
registryas second argument tocollectDefaultMetricsto use that instead of the default registry
- Convert code base to ES2015 code (node 4)
- add engines field to package.json
- Use object shorthand
- Remove
util-extendin favor ofObject.assign - Arrow functions over binding or putting
thisin a variable - Use template strings
prototype->class
9.1.1 - 2017-06-17
- Don't set timestamps for metrics that are never updated
9.1.0 - 2017-06-07
- Ability to merge registries
- Correct typedefs for object constructor of metrics
9.0.0 - 2017-05-06
- Support for multiple registers
- Support for object literals in metric constructors
- Timestamp support
- Collection of default metrics is now disabled by default. Start collection by
running
collectDefaultMetrics().
- Creating metrics with one argument per parameter - use object literals instead.