Immutable
release. Only release title and notes can be modified.
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
NoLabelNameTypeby @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
- @Yesterday17 made their first contribution in #655
- @jdmarshall made their first contribution in #658
- @ManuelLG92 made their first contribution in #613
- @alexgleason made their first contribution in #686
- @krajorama made their first contribution in #749
- @chidam333 made their first contribution in #742
- @zigazajc007 made their first contribution in #629
- @cjihrig made their first contribution in #751
- @vishwa357 made their first contribution in #746
- @yvon-morice-wmx made their first contribution in #744
- @SuperQ made their first contribution in #762
- @us-asad made their first contribution in #696
- @bugprone made their first contribution in #768
- @prombot made their first contribution in #764
- @oiahoon made their first contribution in #772
- @rishh09 made their first contribution in #778
- @AysajanE made their first contribution in #771
- @milcho0604 made their first contribution in #786
Full Changelog: v15.1.3...v0.16.0