From 868bc4468dc8a69dc6f95c106eb5ebafad1ef056 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Thu, 15 Oct 2020 12:29:44 +0200 Subject: [PATCH] fix: SDK name for serverless --- packages/serverless/src/awslambda.ts | 36 +++++++++++------- .../serverless/src/gcpfunction/general.ts | 37 +++++++++++-------- 2 files changed, 44 insertions(+), 29 deletions(-) diff --git a/packages/serverless/src/awslambda.ts b/packages/serverless/src/awslambda.ts index c531ef1f41e3..34b505cdae2f 100644 --- a/packages/serverless/src/awslambda.ts +++ b/packages/serverless/src/awslambda.ts @@ -1,4 +1,5 @@ import { + addGlobalEventProcessor, captureException, captureMessage, flush, @@ -57,6 +58,27 @@ export function init(options: Sentry.NodeOptions = {}): void { return Sentry.init(options); } +/** + * Add SDK info + */ +addGlobalEventProcessor(event => { + event.sdk = { + ...event.sdk, + name: 'sentry.javascript.serverless', + integrations: [...((event.sdk && event.sdk.integrations) || []), 'AWSLambda'], + packages: [ + ...((event.sdk && event.sdk.packages) || []), + { + name: 'npm:@sentry/serverless', + version: SDK_VERSION, + }, + ], + version: SDK_VERSION, + }; + + return event; +}); + /** * Add event processor that will override SDK details to point to the serverless SDK instead of Node, * as well as set correct mechanism type, which should be set to `handled: false`. @@ -65,20 +87,6 @@ export function init(options: Sentry.NodeOptions = {}): void { */ function addServerlessEventProcessor(scope: Scope): void { scope.addEventProcessor(event => { - event.sdk = { - ...event.sdk, - name: 'sentry.javascript.serverless', - integrations: [...((event.sdk && event.sdk.integrations) || []), 'AWSLambda'], - packages: [ - ...((event.sdk && event.sdk.packages) || []), - { - name: 'npm:@sentry/serverless', - version: SDK_VERSION, - }, - ], - version: SDK_VERSION, - }; - addExceptionMechanism(event, { handled: false, }); diff --git a/packages/serverless/src/gcpfunction/general.ts b/packages/serverless/src/gcpfunction/general.ts index 8d61f89d9c8b..a480576a49cc 100644 --- a/packages/serverless/src/gcpfunction/general.ts +++ b/packages/serverless/src/gcpfunction/general.ts @@ -1,7 +1,7 @@ // '@google-cloud/functions-framework/build/src/functions' import is expected to be type-only so it's erased in the final .js file. // When TypeScript compiler is upgraded, use `import type` syntax to explicitly assert that we don't want to load a module here. import { Context } from '@google-cloud/functions-framework/build/src/functions'; -import { captureException, Scope, SDK_VERSION, withScope } from '@sentry/node'; +import { addGlobalEventProcessor, captureException, Scope, SDK_VERSION, withScope } from '@sentry/node'; import { Context as SentryContext } from '@sentry/types'; import { addExceptionMechanism } from '@sentry/utils'; import * as domain from 'domain'; @@ -30,6 +30,27 @@ export function captureEventError(e: unknown, context: Context): void { }); } +/** + * Add SDK info + */ +addGlobalEventProcessor(event => { + event.sdk = { + ...event.sdk, + name: 'sentry.javascript.serverless', + integrations: [...((event.sdk && event.sdk.integrations) || []), 'GCPFunction'], + packages: [ + ...((event.sdk && event.sdk.packages) || []), + { + name: 'npm:@sentry/serverless', + version: SDK_VERSION, + }, + ], + version: SDK_VERSION, + }; + + return event; +}); + /** * Add event processor that will override SDK details to point to the serverless SDK instead of Node, * as well as set correct mechanism type, which should be set to `handled: false`. @@ -38,20 +59,6 @@ export function captureEventError(e: unknown, context: Context): void { */ export function addServerlessEventProcessor(scope: Scope): void { scope.addEventProcessor(event => { - event.sdk = { - ...event.sdk, - name: 'sentry.javascript.serverless', - integrations: [...((event.sdk && event.sdk.integrations) || []), 'GCPFunction'], - packages: [ - ...((event.sdk && event.sdk.packages) || []), - { - name: 'npm:@sentry/serverless', - version: SDK_VERSION, - }, - ], - version: SDK_VERSION, - }; - addExceptionMechanism(event, { handled: false, });