Update CHANGELOG + release announcement #147
Merged
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.
In addition to the
CHANGELOG.md
, please review the release announcement as well:This release features full compliance with the Autometrics v1.0.0 specification as well as first-class Deno support. Also, our decorators have been updated to match the Stage 3 ECMAScript decorators proposal.
Autometrics 1.0.0
In order to match the full Autometrics specification, we implemented the following features and changes:
@Autometrics({ skip: true })
.service.name
label. The service name is automatically detected based on theAUTOMETRICS_SERVICE_NAME
orOTEL_SERVICE_NAME
environment variables (in order of significance). If neither environment variable is set, Autometrics-ts attempts to determine the service name based on the package name defined inpackage.json
.repository.url
andrepository.provider
labels. These labels can be used to create links from Autometrics function metrics directly to your source code. We attempt to auto-detect these labels based on your Git configuration, but you can configure them explicitly using theAUTOMETRICS_REPOSITORY_URL
andAUTOMETRICS_REPOSITORY_PROVIDER
environment variables.function.name
instead offunction_name
. When used with Prometheus, labels should still be exported using underscores.Note that all labels such as
service.name
andrepository.url
/repository.provider
are also configurable in theinit()
function, in addition to using environment variables.Deno support
We already offered experimental Deno support before, but with this release we've taken things one step further: We've migrated the Autometrics-ts core library to be Deno-first! This means we use Deno for our internal development and the Deno library is a first-class citizen. Most of our core unit tests also run in Deno now.
We also publish Deno releases straight to https://deno.land/x/autometrics now. (Please note there is still a slightly awkward
lib-
prefix in the version specifiers, which we hope to resolve in the future.)Improved web compatibility
Thanks to the plumbing we did for moving to a Deno-first approach (shoutout dnt and rollup!), we have also been able to improve our compatibility with web bundlers. We now generate two versions of our NPM packages, one for Node.js users and one for web users. They're both bundled within the same package, so this should be fully transparent to our users.
Modern decorators
Previous versions of Autometrics-ts only supported the TypeScript-specific legacy decorators. We still support those as well, but they've been renamed to
@AutometricsLegacy
. The new@Autometrics
decorators are fully compliant with the ECMAScript proposal.The updated feature set, such as the new
@Autometrics({ skip: true })
option, is supported by both our modern and legacy decorators alike.Detailed CHANGELOG
Here is a more detailed list of changes:
Changed
exported through OTLP. This should not affect exports to Prometheus.
@Autometrics
decorator is now compliant with theStage 3 ECMAScript decorators proposal.
For the legacy TypeScript decorators, please use
@AutometricsLegacy
instead.caller.function
andcaller.module
havebeen changed to match the specification.
Added
service.name
label.repository.url
andrepository.provider
labels.class decorator, using
@Autometrics({ skip: true })
. This also works withthe legacy decorator.
configured an invalid objective name.
Fixed
this
handling in the wrappers and decorators.autometrics
package with web bundlers such as Parcel andWebPack.