Skip to content

Releases: siimon/prom-client

v14.0.1

02 Nov 19:48
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v14.0.0...v14.0.1

v14.0.0

19 Sep 02:09
Compare
Choose a tag to compare

Breaking

  • changed: linearBuckets does not propagate rounding errors anymore. Fewer bucket bounds will be affected by rounding errors. Histogram bucket labels may change. 6f1f3b2

  • changed: The push gateway methods pushAdd(), push() and delete() now return Promises instead of accepting a callback:

    // Old:
    gateway.pushAdd({ jobName: 'test' }, (err, resp, body) => {});
    // New:
    gateway
      .pushAdd({ jobName: 'test' })
      .then(({ resp, body }) => {})
      .catch(err => {});
    // or
    const { resp, body } = await gateway.pushAdd({ jobName: 'test' });

    f177b1f

  • changed: The default nodejs_eventloop_lag_* metrics are now reset every time they are observed. This prevents these metrics from "stabilizing" over a long period of time and becoming insensitive to small changes. For more info, see
    #370. 0f444cd

Changed

  • Add missing await/thens to examples. 074f339
  • Add missing type declaration for client.contentType. 3b66641
  • Modernize some label processing code. c9bf1d8

v13.2.0

09 Aug 05:33
Compare
Choose a tag to compare

Changed

  • Don't add event listener to process if cluster module is not used.
  • fix: set labels for default memory metrics on linux.
  • fix: fix DEP0152 deprecation warning in Node.js v16+.
  • fix: Set aggregation mode for newer event loop metrics. (Fixes #418)
  • Improve performance of/reduce memory allocations in Gauge.

Added

  • feat: added zero() to Histogram for setting the metrics for a given label combination to zero
  • fix: allow Gauge.inc/dec(0) without defaulting to 1

v13.1.0

25 Jan 02:20
Compare
Choose a tag to compare

[13.1.0] - 2021-01-24

Changed

  • fix: push client attempting to write Promise (fixes #390)
  • types: improve type checking of labels
  • fix: Summary#observe should throw when adding additional labels to labelset (fixes #262)

Added

  • feat: added the ability to pass labels as an object to labels() and remove()
  • Added: More examples with commented output

13.0.0

16 Dec 11:19
Compare
Choose a tag to compare

[13.0.0] - 2020-12-16

Breaking

  • changed: The following functions are now async (return a promise):
    registry.metrics()
    registry.getMetricsAsJSON()
    registry.getMetricsAsArray()
    registry.getSingleMetricAsString()

    If your metrics server has a line like res.send(register.metrics()), you
    should change it to res.send(await register.metrics()).

    Additionally, all metric types now accept an optional collect function,
    which is called when the metric's value should be collected and within which
    you should set the metric's value. You should provide a collect function for
    point-in-time metrics (e.g. current memory usage, as opposed to HTTP request
    durations that are continuously logged in a histogram).

  • changed: register.clusterMetrics() no longer accepts a callback; it only
    returns a promise.

  • removed: v12.0.0 added the undocumented functions registry.registerCollector
    and registry.collectors(). These have been removed. If you were using them,
    you should instead provide a collect function as described above.

Changed

  • fix: provide nodejs_version_info metric value after calling registry.resetMetrics() (#238)
  • fix: provide process_max_fds metric value after calling registry.resetMetrics()
  • fix: provide process_start_time_seconds metric value after calling registry.resetMetrics()
  • chore: improve performance of registry.getMetricAsPrometheusString
  • chore: refactor metrics to reduce code duplication
  • chore: replace utils.getPropertiesFromObj with Object.values
  • chore: remove unused catch bindings
  • chore: upgrade Prettier to 2.x
  • fix: startTimer returns number in typescript instead of void
  • fix: incorrect typings of `registry.getSingleMetric' (#388)
  • chore: stop testing node v13 on CI

Added

  • feat: exposed registry.registerCollector() and registry.collectors() methods in TypeScript declaration
  • Added: complete working example of a pushgateway push in example/pushgateway.js
  • feat: added support for adding labels to default metrics (#374)
  • Added CHANGELOG reminder

12.0.0

20 Feb 09:23
Compare
Choose a tag to compare

Breaking

  • 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 timeout option to collectDefaultMetrics(conf) is no longer
    supported or needed, and the function no longer returns a Timeout object.

Changed

  • chore: remove ignored package-lock.json
  • fix: process_max_fds is process limit, not OS (#314)
  • Changed Metric labelNames & labelValues in TypeScript declaration to a generic type T extends string, instead of string
  • 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

Added

  • feat: implement GC metrics collection without native(C++) modules.
  • faet: implement advanced event loop monitoring

11.5.2

20 Jun 10:52
50ce3db
Compare
Choose a tag to compare

Changed

  • fix: avoid mutation bug in registry

11.5.1

20 Jun 10:52
e291f4d
Compare
Choose a tag to compare

Changed

  • fix: guard against missing constructor

11.5.0

04 Jun 22:07
210960e
Compare
Choose a tag to compare

Added

  • Added timestamps toggle to collectDefaultMetrics options
  • Export validateMetricName

11.4.0

04 Jun 13:18
6d1f37e
Compare
Choose a tag to compare

Added

  • nodejs_active_handles metric to the collectDefaultMetrics(). Unlike nodejs_active_handles_total it split count of active handles by type.
  • nodejs_active_requests metric to the collectDefaultMetrics(). Unlike nodejs_active_requests_total it split count of active requests by type.