@serverless/sdk
Advanced tools
Comparing version 0.3.1 to 0.4.0
@@ -5,2 +5,19 @@ # Changelog | ||
## [0.4.0](https://github.com/serverless/console/compare/@serverless/sdk@0.3.1...@serverless/sdk@0.4.0) (2023-01-19) | ||
### ⚠ BREAKING CHANGES | ||
- Root (global) tags are no longer stored on the root span. Instead they're stored on SDK directly and are expected to be considered as trace-wide tags | ||
### Bug Fixes | ||
- Ensure not to crash on invalid `serverless.setTag` input ([c5f28ff](https://github.com/serverless/console/commit/c5f28ff552fc023c24819e24ec90a88ff00d4d73)) | ||
- Fix `expressApp` instrumentation endpoint ([11314b4](https://github.com/serverless/console/commit/11314b434b4d62f6e7dde25a9ca8a09e6f584fde)) | ||
- Warn instead of throw when SDK is used without initialization ([fe64a4f](https://github.com/serverless/console/commit/fe64a4f53529285e89a64f7d50ec9528a3c4ce57)) | ||
### Maintenance Improvements | ||
- Enable customization of event data via private options ([a5e8f36](https://github.com/serverless/console/commit/a5e8f365ad8e4e700ffb31e47a1f9bd7bba2af2c)) | ||
- Store global tags on SDK directly (not on root span) ([9a72787](https://github.com/serverless/console/commit/9a727875ac4f694552d987a346473a09191104ce)) | ||
### [0.3.1](https://github.com/serverless/console/compare/@serverless/sdk@0.3.0...@serverless/sdk@0.3.1) (2023-01-13) | ||
@@ -7,0 +24,0 @@ |
@@ -47,5 +47,5 @@ # Serverless SDK | ||
Set custom (user defined) tag on root span | ||
Set custom (user defined) trace tag | ||
- `name` _(string)_ - Tag name, can contain alphanumeric (both lower and upper case), `-`, `_` and `.` characters | ||
- `value` (any) - Tag value. Can be _string_, _boolean_, _number_, _Date_ or _Array_ containing any values of prior listed types |
15
index.js
@@ -16,2 +16,3 @@ 'use strict'; | ||
const lazy = require('d/lazy'); | ||
const Tags = require('./lib/tags'); | ||
const TraceSpan = require('./lib/trace-span'); | ||
@@ -36,3 +37,3 @@ const createErrorCapturedEvent = require('./lib/create-error-captured-event'); | ||
lazy({ | ||
expressApp: d('cew', () => require('./instrumentation/express-app')), | ||
expressApp: d('cew', () => require('./instrumentation/express-app'), { flat: true }), | ||
}) | ||
@@ -47,6 +48,7 @@ ); | ||
serverlessSdk.setTag = (name, value) => { | ||
if (!serverlessSdk.traceSpans.root) { | ||
throw new Error('Cannot set tag with no root trace span being initialized'); | ||
try { | ||
serverlessSdk._customTags.set(name, value); | ||
} catch (error) { | ||
console.error(error); | ||
} | ||
serverlessSdk.traceSpans.root.customTags.set(name, value); | ||
}; | ||
@@ -112,1 +114,6 @@ | ||
serverlessSdk._eventEmitter = require('./lib/emitter'); | ||
Object.defineProperties( | ||
serverlessSdk, | ||
lazy({ _customTags: d('cew', () => new Tags(), { flat: true }) }) | ||
); |
@@ -15,3 +15,3 @@ 'use strict'; | ||
module.exports = (error, options = {}) => { | ||
const timestamp = process.hrtime.bigint(); | ||
const timestamp = options._timestamp || process.hrtime.bigint(); | ||
if (!isObject(options)) options = {}; | ||
@@ -26,3 +26,3 @@ | ||
const tags = { type: 2 }; | ||
const tags = { type: options._type === 'unhandled' ? 1 : 2 }; | ||
if (isError(error)) { | ||
@@ -29,0 +29,0 @@ tags.name = error.name; |
{ | ||
"name": "@serverless/sdk", | ||
"repository": "serverless/console", | ||
"version": "0.3.1", | ||
"version": "0.4.0", | ||
"author": "Serverless, Inc.", | ||
@@ -6,0 +6,0 @@ "dependencies": { |
58485
1135