[workers-utils] Replace deprecated promjs with MetricsRegistry#12753
Open
petebacondarwin wants to merge 2 commits intomainfrom
Open
[workers-utils] Replace deprecated promjs with MetricsRegistry#12753petebacondarwin wants to merge 2 commits intomainfrom
petebacondarwin wants to merge 2 commits intomainfrom
Conversation
🦋 Changeset detectedLatest commit: 8429f12 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
|
✅ All changesets look good |
create-cloudflare
@cloudflare/kv-asset-handler
miniflare
@cloudflare/pages-shared
@cloudflare/unenv-preset
@cloudflare/vite-plugin
@cloudflare/vitest-pool-workers
@cloudflare/workers-editor-shared
wrangler
commit: |
Contributor
|
Codeowners approval required for this PR:
Show detailed file reviewers
|
Replace the deprecated and unmaintained promjs library (broken package.json, no updates since 2022) with a lightweight MetricsRegistry class in @cloudflare/workers-utils/metrics. - Add MetricsRegistry class that produces byte-identical Prometheus text exposition format for counter metrics - Add comprehensive test suite (35 tests) including cases ported from the original promjs test suite - Update edge-preview-authenticated-proxy, playground-preview-worker, and format-errors to use the new MetricsRegistry - Remove promjs from all package.json files - Remove the vitest alias workaround for promjs broken package.json - Fix format-errors tsconfig moduleResolution to support subpath exports
0c86431 to
b88af36
Compare
wsimon1982
pushed a commit
to wsimon1982/workers-sdk
that referenced
this pull request
Mar 4, 2026
…sue cloudflare#12753 to replace a deprecated library with a lightweight, maintained solution.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace the deprecated and unmaintained
promjslibrary with a lightweightMetricsRegistryclass in@cloudflare/workers-utils/metrics.promjshas been unmaintained for 3+ years, has a brokenpackage.json(themainfield points to a non-existentlib/directory, requiring a vitest alias workaround), and is used in the most trivial way possible: just counters with no labels, always value 1, pushed per-request to a Prometheus gateway.What changed:
MetricsRegistryclass to@cloudflare/workers-utils/metricsthat produces byte-identical Prometheus text exposition format for counter metrics (~80 lines including docs)edge-preview-authenticated-proxy,playground-preview-worker, andformat-errorsto use the newMetricsRegistrypromjsfrom allpackage.jsonfilespackage.jsonformat-errorstsconfigmoduleResolutionfrom"node"to"bundler"to support subpath exportsThe metrics utility is exposed as a separate subpath export (
@cloudflare/workers-utils/metrics) which produces a tiny 160-byte standalone module, ensuring compatibility withvitest-pool-workers/workerd's SSR module resolution.