mirror of
https://github.com/hcengineering/platform.git
synced 2025-03-19 21:31:30 +00:00
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { AnalyticProvider } from '@hcengineering/analytics'
|
|
import * as Sentry from '@sentry/node'
|
|
|
|
export class SentryAnalyticProvider implements AnalyticProvider {
|
|
constructor (readonly SENTRY_DSN: string) {}
|
|
|
|
init (config: Record<string, any>): boolean {
|
|
Sentry.init({
|
|
dsn: this.SENTRY_DSN,
|
|
integrations: (integrations) => {
|
|
// integrations will be all default integrations
|
|
return [
|
|
...integrations.filter((integration) => integration.name !== 'Console'),
|
|
Sentry.onUncaughtExceptionIntegration(),
|
|
Sentry.onUnhandledRejectionIntegration()
|
|
]
|
|
},
|
|
|
|
// Set tracesSampleRate to 1.0 to capture 100%
|
|
// of transactions for performance monitoring.
|
|
// We recommend adjusting this value in production
|
|
tracesSampleRate: 1.0
|
|
})
|
|
return true
|
|
}
|
|
|
|
setUser (email: string): void {
|
|
Sentry.setUser({ email })
|
|
}
|
|
|
|
setTag (key: string, value: string): void {
|
|
Sentry.setTag(key, value)
|
|
}
|
|
|
|
setWorkspace (ws: string): void {
|
|
this.setTag('workspace', ws)
|
|
}
|
|
|
|
handleEvent (event: string): void {
|
|
// currently we don't need it, but maybe in future
|
|
// Sentry.captureMessage(event, 'log')
|
|
}
|
|
|
|
handleError (error: Error): void {
|
|
Sentry.captureException(error)
|
|
}
|
|
|
|
navigate (path: string): void {}
|
|
}
|