sentry-javascript/packages/effect at master · getsentry/sentry-javascript

Official Sentry SDK for Effect.ts (Alpha)

npm version npm dm npm dt

NOTICE: This package is in alpha state and may be subject to breaking changes.

Getting Started

This SDK does not have docs yet. Stay tuned.

Usage

import * as Sentry from '@sentry/effect/server';
import { NodeRuntime } from '@effect/platform-node';
import { Layer, Logger } from 'effect';
import { HttpLive } from './Http.js';

const SentryLive = Layer.mergeAll(
  Sentry.effectLayer({
    dsn: '__DSN__',
    tracesSampleRate: 1.0,
    enableLogs: true,
  }),
  Layer.setTracer(Sentry.SentryEffectTracer),
  Logger.replace(Logger.defaultLogger, Sentry.SentryEffectLogger),
  Sentry.SentryEffectMetricsLayer,
);

const MainLive = HttpLive.pipe(Layer.provide(SentryLive));
MainLive.pipe(Layer.launch, NodeRuntime.runMain);

The effectLayer function initializes Sentry. To enable Effect instrumentation, compose with:

  • Layer.setTracer(Sentry.SentryEffectTracer) - Effect spans traced as Sentry spans
  • Logger.replace(Logger.defaultLogger, Sentry.SentryEffectLogger) - Effect logs forwarded to Sentry
  • Sentry.SentryEffectMetricsLayer - Effect metrics sent to Sentry

Links