Skip to content

v0.16.0

Latest

Choose a tag to compare

@jdmarshall jdmarshall released this 24 Aug 17:15
Immutable release. Only release title and notes can be modified.
e846ce7

Summary

This is our first release under the Prometheus project, and our first release for a long time.

The three main features of this release are:

  • Substantially more robust support for Cluster Workers
  • Equivalent support for Worker Threads
  • Performance

Besides the worker improvements, this release introduces a handful of bug fixes, and a number of Typescript improvements, but is primarily a performance release. Memory use for stats storage has been reduced, as well as lookup time. Most telemetry types are between 15-35% faster, and gauges are 55% faster. Metric aggregation is up to 2.4x faster, and metrics() calls are generally around 10-35% faster depending on the sorts of labels your project uses.

What's Changed

  • feat: update default type for metrics to NoLabelNameType by @Yesterday17 in #655
  • chore: add dependabot by @SimenB in #659
  • chore(deps-dev): bump eslint-config-prettier from 9.1.0 to 10.1.5 by @dependabot[bot] in #664
  • chore(deps-dev): bump express from 4.21.2 to 5.1.0 by @dependabot[bot] in #663
  • chore: upgrade to ESLint 9, and all plugins by @SimenB in #665
  • chore: drop old versions of Node by @SimenB in #666
  • chore: update Jest by @SimenB in #667
  • perf: Utilize Maps for metric collection by @jdmarshall in #658
  • Reorder number formatting tests to reflect likelihood. by @jdmarshall in #670
  • chore(deps-dev): bump prettier from 3.6.0 to 3.6.2 in the everything group by @dependabot[bot] in #672
  • chore: update lint-staged by @SimenB in #675
  • Add Code Coverage and make sure benchmarks doesn't go OOM by @jdmarshall in #668
  • Reduce function indirection in histogram.js for easier debugging by @jdmarshall in #669
  • Fix for memory leak and avoid processing expired responses by @jdmarshall in #679
  • Additional performance improvements for cluster mode by @jdmarshall in #680
  • feat: enhance error output on not valid name and label names by @ManuelLG92 in #613
  • Performance: New storage engine for stats, with improved key management by @jdmarshall in #687
  • chore(deps-dev): bump eslint-plugin-jsdoc from 51.4.1 to 52.0.0 by @dependabot[bot] in #695
  • Further refinement of key computation for performance and space. by @jdmarshall in #691
  • Performance: simplified checking for reserved label keyword by @Connormiha in #705
  • Switch to performance.now() for timing calculations. by @jdmarshall in #725
  • Fix browser compatibility by @alexgleason in #686
  • ci: Modify build actions to include benchmarks. by @jdmarshall in #720
  • Replace benchmark-regression, and compare branch performance to trunk by @jdmarshall in #728
  • chore: update prettier by @SimenB in #731
  • chore(deps-dev): bump eslint-plugin-jsdoc from 52.0.4 to 61.4.1 by @dependabot[bot] in #729
  • Add worker support by @jdmarshall in #693
  • Update to faceoff 1.1 by @jdmarshall in #735
  • security: update and pin workflow action dependencies by @krajorama in #749
  • 2.4x improvement in Cluster aggregation performance by @jdmarshall in #692
  • perf: use the faster api to collect rss by @chidam333 in #742
  • chore: add MAINTAINERS.md file by @krajorama in #752
  • Fixed types by @zigazajc007 in #629
  • chore: rename module to @prometheus/client_js by @cjihrig in #751
  • Adding example of Summary metric by @vishwa357 in #746
  • drop node 20 support by @cjihrig in #756
  • Replace usage of old node:url api with WHATWG one in pushgateway.js by @yvon-morice-wmx in #744
  • chore: Update dependabot config by @SuperQ in #762
  • chore(deps): bump actions/cache from 6.0.0 to 6.1.0 by @dependabot[bot] in #763
  • feat: add constructor with content type param to Registry class in Ty… by @us-asad in #696
  • chore: Add NOTICE file by @SuperQ in #766
  • Add Zach to maintainers list. by @jdmarshall in #767
  • Add getMetricsAsString to TypeScript definitions by @bugprone in #768
  • Add node 26 to the test matrix. by @jdmarshall in #759
  • chore: Synchronize common files from prometheus/prometheus by @prombot in #764
  • Support registry as Pushgateway second argument by @bugprone in #769
  • chore: Add check-license CI job by @SuperQ in #770
  • docs: clarify cluster listener initialization by @oiahoon in #772
  • Add debug logging for metrics collection failures by @rishh09 in #778
  • Synchronize common files from prometheus/prometheus by @prombot in #781
  • Address misreported value on exemplars for counters. by @jdmarshall in #776
  • fix(cluster): aggregate metrics in a deterministic order by @AysajanE in #771
  • Synchronize common files from prometheus/prometheus by @prombot in #783
  • Add event loop utilization to default metrics by @bugprone in #785
  • fix(types): export MetricObjectWithValues, MetricValue and related types by @milcho0604 in #786
  • chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 by @dependabot[bot] in #797
  • chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #796
  • fix(types): make MetricType a string union matching runtime values by @milcho0604 in #790
  • Rename to prometheus-io to avoid naming collision on npmjs.org by @jdmarshall in #799
  • Add publication workflow for npmjs.com by @jdmarshall in #782
  • Add CHANGELOG entry and README install section for the prometheus-io rename by @krajorama in #801
  • Deprecate functions that were replaced by LabelMap by @jdmarshall in #795
  • Cluster fixes by @jdmarshall in #789
  • Support worker termination by collecting sum stats on exit. by @jdmarshall in #806
  • perf(registry): Avoid label array manipulation in the happy path. by @milcho0604 in #804

New Contributors

Full Changelog: v15.1.3...v0.16.0