---
title: "Effect"
description: "Learn how to set up Sentry in your Effect application with first-class integration for tracing, logging, and metrics."
url: https://docs.sentry.io/platforms/javascript/guides/effect/
---

# Effect | Sentry for Effect

This SDK is currently in **ALPHA**. Alpha features are still in progress, may have bugs, and might include breaking changes. Please reach out on [GitHub](https://github.com/getsentry/sentry-javascript/issues/new/choose) if you have any feedback or concerns.

This guide will show you how to integrate Sentry into your [Effect](https://effect.website/) project using the `@sentry/effect` SDK.

## [Prerequisites](https://docs.sentry.io/platforms/javascript/guides/effect.md#prerequisites)

You need:

* A Sentry [account](https://sentry.io/signup/) and [project](https://docs.sentry.io/product/projects.md)
* Your application up and running

## [Step 1: Install](https://docs.sentry.io/platforms/javascript/guides/effect.md#step-1-install)

Choose the features you want to configure, and this guide will show you how:

Error Monitoring\[ ]Tracing\[ ]Logs\[ ]Metrics

Want to learn more about these features?

* [**Issues**](https://docs.sentry.io/product/issues.md) (always enabled)
  <!-- -->
  :
  <!-- -->
  Sentry's core error monitoring product that automatically reports errors, uncaught exceptions, and unhandled rejections. If you have something that looks like an exception, Sentry can capture it.
* [**Tracing**](https://docs.sentry.io/product/tracing.md):
  <!-- -->
  Track software performance while seeing the impact of errors across multiple systems. For example, distributed tracing allows you to follow a request from the frontend to the backend and back.
* [**Logs**](https://docs.sentry.io/product/explore/logs.md):
  <!-- -->
  Centralize and analyze your application logs to correlate them with errors and performance issues. Search, filter, and visualize log data to understand what's happening in your applications.
* [**Metrics**](https://docs.sentry.io/product/explore/metrics.md):
  <!-- -->
  Track and analyze custom metrics, such as response times and database query durations, to understand trends and patterns in your application's performance and behavior over time.

### [Install the Sentry SDK](https://docs.sentry.io/platforms/javascript/guides/effect.md#install-the-sentry-sdk)

```bash
npm install @sentry/effect --save
```

## [Step 2: Configure](https://docs.sentry.io/platforms/javascript/guides/effect.md#step-2-configure)

The SDK provides an `effectLayer` that initializes Sentry. You can compose it with additional Effect layers to enable tracing, logging, and metrics.

### [Server Usage](https://docs.sentry.io/platforms/javascript/guides/effect.md#server-usage)

`main.ts`

```typescript
import * as Sentry from "@sentry/effect/server";
import { NodeRuntime } from "@effect/platform-node";
// ___PRODUCT_OPTION_START___ logs
import * as Logger from "effect/Logger";
// ___PRODUCT_OPTION_END___ logs
import * as Layer from "effect/Layer";
import { HttpLive } from "./Http.js";

const SentryLive = Layer.mergeAll(
  Sentry.effectLayer({
    dsn: "___PUBLIC_DSN___",
    // ___PRODUCT_OPTION_START___ performance

    // Set tracesSampleRate to 1.0 to capture 100%
    // of transactions for tracing.
    // We recommend adjusting this value in production.
    tracesSampleRate: 1.0,
    // ___PRODUCT_OPTION_END___ performance
    // ___PRODUCT_OPTION_START___ logs

    // Enable logs to be sent to Sentry
    enableLogs: true,
    // ___PRODUCT_OPTION_END___ logs
  }),
  // ___PRODUCT_OPTION_START___ performance

  // Enable Effect tracing
  Layer.setTracer(Sentry.SentryEffectTracer),
  // ___PRODUCT_OPTION_END___ performance
  // ___PRODUCT_OPTION_START___ logs

  // Forward Effect logs to Sentry
  Logger.replace(Logger.defaultLogger, Sentry.SentryEffectLogger),
  // ___PRODUCT_OPTION_END___ logs
  // ___PRODUCT_OPTION_START___ metrics

  // Forward Effect metrics to Sentry
  Sentry.SentryEffectMetricsLayer,
  // ___PRODUCT_OPTION_END___ metrics
);

const MainLive = HttpLive.pipe(Layer.provide(SentryLive));

MainLive.pipe(Layer.launch, NodeRuntime.runMain);
```

### [Client Usage](https://docs.sentry.io/platforms/javascript/guides/effect.md#client-usage)

`main.ts`

```typescript
import * as Sentry from "@sentry/effect/client";
// ___PRODUCT_OPTION_START___ logs
import { Logger } from "effect";
// ___PRODUCT_OPTION_END___ logs
import { Layer } from "effect";

const SentryLive = Layer.mergeAll(
  Sentry.effectLayer({
    dsn: "___PUBLIC_DSN___",
    // ___PRODUCT_OPTION_START___ performance

    // Set tracesSampleRate to 1.0 to capture 100%
    // of transactions for tracing.
    // We recommend adjusting this value in production.
    tracesSampleRate: 1.0,
    integrations: [Sentry.browserTracingIntegration()],
    // ___PRODUCT_OPTION_END___ performance
    // ___PRODUCT_OPTION_START___ logs

    // Enable logs to be sent to Sentry
    enableLogs: true,
    // ___PRODUCT_OPTION_END___ logs
  }),
  // ___PRODUCT_OPTION_START___ performance

  // Enable Effect tracing
  Layer.setTracer(Sentry.SentryEffectTracer),
  // ___PRODUCT_OPTION_END___ performance
  // ___PRODUCT_OPTION_START___ logs

  // Forward Effect logs to Sentry
  Logger.replace(Logger.defaultLogger, Sentry.SentryEffectLogger),
  // ___PRODUCT_OPTION_END___ logs
);

const MainLive = YourAppLayer.pipe(Layer.provide(SentryLive));
```

## [Features](https://docs.sentry.io/platforms/javascript/guides/effect.md#features)

The SDK provides composable layers for Effect integration:

* **Tracing** via `Sentry.SentryEffectTracer`: Effect spans are automatically traced as Sentry spans with distributed tracing support

- **Logging** via `Sentry.SentryEffectLogger`: Effect logs are forwarded to Sentry (requires `enableLogs: true`)

* **Metrics** via `Sentry.SentryEffectMetricsLayer`: Effect metrics (counters, gauges, histograms) are sent to Sentry

## [Step 3: Verify](https://docs.sentry.io/platforms/javascript/guides/effect.md#step-3-verify)

Add a test error to verify your setup:

```typescript
import { Effect } from "effect";
import * as Sentry from "@sentry/effect/server";

const program = Effect.gen(function* () {
  yield* Effect.fail(new Error("Sentry Test Error"));
});

// Run with your layer that includes Sentry.effectLayer
```

Head over to your project on [Sentry.io](https://sentry.io) to view the collected data.

Need help locating the captured errors in your Sentry project?

* Open the
  <!-- -->
  [**Issues**](https://sentry.io/orgredirect/organizations/:orgslug/issues/)
  <!-- -->
  page and select an error from the issues list to view the full details and context of this error. For more details, see this
  <!-- -->
  [interactive walkthrough](https://docs.sentry.io/product/sentry-basics/integrate-frontend/generate-first-error.md#ui-walkthrough).
* Open the
  <!-- -->
  [**Traces**](https://sentry.io/orgredirect/organizations/:orgslug/explore/traces/)
  <!-- -->
  page and select a trace to reveal more information about each span, its duration, and any errors. For an interactive UI walkthrough, click
  <!-- -->
  [here](https://docs.sentry.io/product/sentry-basics/distributed-tracing/generate-first-error.md#ui-walkthrough).
* Open the
  <!-- -->
  [**Logs**](https://sentry.io/orgredirect/organizations/:orgslug/explore/logs/)
  <!-- -->
  page and filter by service, environment, or search keywords to view log entries from your application. For an interactive UI walkthrough, click
  <!-- -->
  [here](https://docs.sentry.io/product/explore/logs.md#overview).
* Open the
  <!-- -->
  [**Metrics**](https://sentry.io/orgredirect/organizations/:orgslug/explore/metrics)
  <!-- -->
  page to view and analyze your custom metrics. For more details, see this
  <!-- -->
  [interactive walkthrough](https://docs.sentry.io/product/explore/metrics.md#overview).

## [Next Steps](https://docs.sentry.io/platforms/javascript/guides/effect.md#next-steps)

* Learn how to [manually capture errors](https://docs.sentry.io/platforms/javascript/guides/effect/usage.md)
* Continue to [customize your configuration](https://docs.sentry.io/platforms/javascript/guides/effect/configuration.md)
* Get familiar with [Sentry's product features](https://docs.sentry.io/product.md) like tracing, insights, and alerts

Are you having problems setting up the SDK?

* Find various topics in [Troubleshooting](https://docs.sentry.io/platforms/javascript/guides/effect/troubleshooting.md)
* [Get support](https://sentry.zendesk.com/hc/en-us/)

## Other JavaScript Frameworks

- [Angular](https://docs.sentry.io/platforms/javascript/guides/angular.md)
- [Astro](https://docs.sentry.io/platforms/javascript/guides/astro.md)
- [AWS Lambda](https://docs.sentry.io/platforms/javascript/guides/aws-lambda.md)
- [Azure Functions](https://docs.sentry.io/platforms/javascript/guides/azure-functions.md)
- [Bun](https://docs.sentry.io/platforms/javascript/guides/bun.md)
- [Capacitor](https://docs.sentry.io/platforms/javascript/guides/capacitor.md)
- [Cloud Functions for Firebase](https://docs.sentry.io/platforms/javascript/guides/firebase.md)
- [Cloudflare](https://docs.sentry.io/platforms/javascript/guides/cloudflare.md)
- [Connect](https://docs.sentry.io/platforms/javascript/guides/connect.md)
- [Cordova](https://docs.sentry.io/platforms/javascript/guides/cordova.md)
- [Deno](https://docs.sentry.io/platforms/javascript/guides/deno.md)
- [Electron](https://docs.sentry.io/platforms/javascript/guides/electron.md)
- [Elysia](https://docs.sentry.io/platforms/javascript/guides/elysia.md)
- [Ember](https://docs.sentry.io/platforms/javascript/guides/ember.md)
- [Express](https://docs.sentry.io/platforms/javascript/guides/express.md)
- [Fastify](https://docs.sentry.io/platforms/javascript/guides/fastify.md)
- [Gatsby](https://docs.sentry.io/platforms/javascript/guides/gatsby.md)
- [Google Cloud Functions](https://docs.sentry.io/platforms/javascript/guides/gcp-functions.md)
- [Hapi](https://docs.sentry.io/platforms/javascript/guides/hapi.md)
- [Hono](https://docs.sentry.io/platforms/javascript/guides/hono.md)
- [Koa](https://docs.sentry.io/platforms/javascript/guides/koa.md)
- [Nest.js](https://docs.sentry.io/platforms/javascript/guides/nestjs.md)
- [Next.js](https://docs.sentry.io/platforms/javascript/guides/nextjs.md)
- [Node.js](https://docs.sentry.io/platforms/javascript/guides/node.md)
- [Nuxt](https://docs.sentry.io/platforms/javascript/guides/nuxt.md)
- [React](https://docs.sentry.io/platforms/javascript/guides/react.md)
- [React Router Framework](https://docs.sentry.io/platforms/javascript/guides/react-router.md)
- [Remix](https://docs.sentry.io/platforms/javascript/guides/remix.md)
- [Solid](https://docs.sentry.io/platforms/javascript/guides/solid.md)
- [SolidStart](https://docs.sentry.io/platforms/javascript/guides/solidstart.md)
- [Svelte](https://docs.sentry.io/platforms/javascript/guides/svelte.md)
- [SvelteKit](https://docs.sentry.io/platforms/javascript/guides/sveltekit.md)
- [TanStack Start React](https://docs.sentry.io/platforms/javascript/guides/tanstackstart-react.md)
- [Vue](https://docs.sentry.io/platforms/javascript/guides/vue.md)
- [Wasm](https://docs.sentry.io/platforms/javascript/guides/wasm.md)

## Topics

- [Installation Methods](https://docs.sentry.io/platforms/javascript/guides/effect/install.md)
- [Capturing Errors](https://docs.sentry.io/platforms/javascript/guides/effect/usage.md)
- [Source Maps](https://docs.sentry.io/platforms/javascript/guides/effect/sourcemaps.md)
- [Logs](https://docs.sentry.io/platforms/javascript/guides/effect/logs.md)
- [Session Replay](https://docs.sentry.io/platforms/javascript/guides/effect/session-replay.md)
- [Tracing](https://docs.sentry.io/platforms/javascript/guides/effect/tracing.md)
- [AI Agent Monitoring](https://docs.sentry.io/platforms/javascript/guides/effect/ai-agent-monitoring-browser.md)
- [Metrics](https://docs.sentry.io/platforms/javascript/guides/effect/metrics.md)
- [Profiling](https://docs.sentry.io/platforms/javascript/guides/effect/profiling.md)
- [User Feedback](https://docs.sentry.io/platforms/javascript/guides/effect/user-feedback.md)
- [Sampling](https://docs.sentry.io/platforms/javascript/guides/effect/sampling.md)
- [Enriching Events](https://docs.sentry.io/platforms/javascript/guides/effect/enriching-events.md)
- [Extended Configuration](https://docs.sentry.io/platforms/javascript/guides/effect/configuration.md)
- [Feature Flags](https://docs.sentry.io/platforms/javascript/guides/effect/feature-flags.md)
- [Data Management](https://docs.sentry.io/platforms/javascript/guides/effect/data-management.md)
- [Security Policy Reporting](https://docs.sentry.io/platforms/javascript/guides/effect/security-policy-reporting.md)
- [Special Use Cases](https://docs.sentry.io/platforms/javascript/guides/effect/best-practices.md)
- [Migration Guide](https://docs.sentry.io/platforms/javascript/guides/effect/migration.md)
- [Troubleshooting](https://docs.sentry.io/platforms/javascript/guides/effect/troubleshooting.md)
