Skip to main content
@repo/observability tracks errors with Sentry and aggregates logs with BetterStack. Separate configs for client and server.

Usage

Initialize on the client:
apps/app/instrumentation-client.ts
import { initClientObservability } from "@repo/observability/client";

initClientObservability();
Initialize on the server:
apps/app/instrumentation.ts
import { initServerObservability } from "@repo/observability/server";

initServerObservability();

Structured Logging

Send structured logs to BetterStack:
apps/api/routes/payments.ts
import { log } from "@repo/observability/server";

log.info("Checkout session created", {
  userId: session.userId,
  priceId: session.priceId,
});
Sentry captures unhandled errors automatically. Use captureError() from @repo/observability/error only for caught exceptions you want to track.

Environment Variables

See Environment Variables — Error tracking and Observability.

Learn More