Releases: autometrics-dev/autometrics-ts
v1.0.1
What's Changed
- Change publish command by @arendjr in #148
- fix an infinite loop which happens when autometrics is initialized in a node service without a git repository by @benjibuiltit in #149
- make getModulePath ignore reflect metadata module by @benjibuiltit in #150
- Prepare release 1.0.1 by @brettimus in #151
New Contributors
- @benjibuiltit made their first contribution in #149
Full Changelog: lib-v1.0.0...lib-v1.0.1
v1.0.0: Autometrics 1.0 compliance and first-class Deno support
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:
- Decorators now have support for skipping individual methods when decorating a class. Just decorate the method you wish to exclude with
@Autometrics({ skip: true })
. - We added support for the
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
. - We also added support for the
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. - When submitting metrics using OTLP, we now use dots in label names instead of underscores. For instance,
function.name
instead offunction_name
. When used with Prometheus, labels should still be exported using underscores. - Users should see a warning in their console if they've configured an invalid objective name.
Note that all labels such as service.name
and repository.url
/repository.provider
are also configurable in the init()
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
- BREAKING: Labels are submitted with dots instead of underscores when
exported through OTLP. This should not affect exports to Prometheus. - BREAKING: The
@Autometrics
decorator is now compliant with the
Stage 3 ECMAScript decorators proposal.
For the legacy TypeScript decorators, please use@AutometricsLegacy
instead. - BREAKING: Autometrics 1.0:
caller.function
andcaller.module
have
been changed to match the specification. - Deno has become a first-class supported platform.
Added
- Autometrics 1.0: Added support for the
service.name
label. - Autometrics 1.0: Added support for the
repository.url
and
repository.provider
labels. - Autometrics 1.0: Added support for excluding individual methods from the
class decorator, using@Autometrics({ skip: true })
. This also works with
the legacy decorator. - Autometrics 1.0: Users should see a warning in their console if they've
configured an invalid objective name.
Fixed
- Fixed
this
handling in the wrappers and decorators. - Fixed using the
autometrics
package with web bundlers such as Parcel and
WebPack. - Fixed an issue where caller information sometimes wasn't submitted.
First test release for v0.8.0
lib-v0.8.0-alpha.1 Don't worry about modifying lock files while building examples before…
Autometrics TypeScript 0.7 - breaking changes
Breaking changes: Exporter packages
v0.7
is a big change to how the Autometrics library works in JavaScript. The core library interface of wrappers and decorators remains the same and will collect the metrics as previously, however it will not export them. For that purpose exporters are now separate to the library itself allowing the user more control as to how they want to set up the metrics collection: as a pull endpoint for Prometheus, push gateway, OpenTelemetry collector or something else.
See the changelog for a full list of updates and the updated quickstart on how to work with the new TypeScript packages: https://docs.autometrics.dev/typescript/quickstart
Changelog
- Eagerly push metrics when pushInterval is 0 by @brettimus in #99
- Initial Gravel Gateway Support by @brettimus in #110
- Exporter packages by @arendjr in #115
- Drop on-demand-metric-reader package by @arendjr in #117
- Update package.json to beta versions and add a script for publishing beta versions by @brettimus in #118
- 0.7.0 beta testing fixes by @brettimus in #120
- Use delta temporality for React example by @arendjr in #121
- Upgrade Rome to Biome by @arendjr in #122
- Fix default prometheus exporter port by @brettimus in #123
- Clear timer on handover by @arendjr in #124
- Update Quickstart and recipes by @arendjr in #116
- Update package versions and dependencies to 0.7.0 by @brettimus in #125
- Fix: support Bun runtime in the core library by @keturiosakys in #127
- Warn on a potentially incorrect HTTP OTLP endpoint by @keturiosakys in #126
- Publish 0.7.* of core and exporters by @keturiosakys in #128
Full Changelog: lib-v0.6...lib-v0.7.0
Test: Make the Prometheus exporter work in Deno
v0.6.0-deno.5 Fix Prometheus exporter
Test: Another Deno tryout
v0.6.0-deno.4 Move the vendor stuff into the package
v0.7.0-beta2
This is a beta release that includes several features to support usage in serverless functions alongside an aggregation gateway like Gravel.
typescript-plugin-v0.5.4
What's Changed
- Fix TS Plugin: show hover in wrapped functions by @keturiosakys in #104
Full Changelog: typescript-plugin-v0.5.3...typescript-plugin-v0.5
`autometrics-ts` v0.6
typescript-plugin-v0.5.3
What's Changed
Full Changelog: parcel-transformer-v0.1.0...typescript-plugin-v0.5.3