Epure
Spring BootSpring Boot

Error tracking for Spring Boot with io.sentry:sentry-spring-boot-starter

Use this page when a Spring Boot app should read sentry.dsn from application.properties. Use /integrations/java for the JVM SDK (Quarkus, Micronaut, servlets). Android is out of scope. Artifact io.sentry:sentry-spring-boot-starter (docs: sentry-spring-boot). The captured fixture is io.sentry:sentry 7.8.0, not a live Spring smoke.

Host up → install SDK → paste DSN (project id from Settings → SDK connection) → confirm a 202.

Start here

From zero, or from Sentry.

Same finish line: io.sentry:sentry-spring-boot-starter pointing at your Epure DSN, first issue in the list.

Fresh install

Never used Sentry? Start here.

  • 1. Compose up on your host
  • 2. Install io.sentry:sentry-spring-boot-starter
  • 3. Init with the Epure DSN and verify

Already on Sentry

Keep the SDK. Change the DSN.

  • 1. Create an Epure project and copy the DSN
  • 2. Replace only the dsn string in init
  • 3. Set traces/replay/profile rates to 0
The fit

Epure is the error tracker for Spring Boot.

Install io.sentry:sentry-spring-boot-starter once. Point the DSN at Epure. No Sentry Cloud account required. Only the open SDK client.

  • Official SDK, no proprietary agent

    Install io.sentry:sentry-spring-boot-starter (or keep it if you already have Sentry). Point dsn at Epure.

  • Self-host without a broker fleet

    Postgres holds issues and events. No Kafka or Redis in the OSS compose. Self-host is a $0 software license; you still run the host. Cloud Pro is $24 and Plus is $79.

  • Issues you can finish

    Grouping, releases, alerts, and soft-sampling on spikes. Triage without a seat tax.

What Spring Boot reports

Controller exceptions after the starter is on the classpath.

The starter reads application.properties. Grouping uses raw frames. The Java page stays manual Sentry.init for other JVM services.

  • Spring Boot

    sentry-spring-boot-starter

    Maven and Gradle coordinate io.sentry:sentry-spring-boot-starter. Docs name it sentry-spring-boot.

  • application.properties

    application.properties

    sentry.dsn reads SENTRY_DSN. sentry.traces-sample-rate=0 so transaction volume stays off.

  • Controller exceptions

    Controller exceptions

    An unhandled throw from a controller posts an envelope once the starter is active.

  • io.sentry:sentry 7.8.0

    io.sentry:sentry 7.8.0

    The in-repo fixture is that core artifact. It is not a live Spring smoke.

  • Raw-frame stacks

    Raw-frame stacks

    No ProGuard or NDK server. Frames group as the SDK sends them. Android stays out of scope.

Install path

Host. SDK. First issue.

New to Sentry or already on it. Same three moves. Official SDK in, DSN pointed at Epure, one test throw.

  • Run Epure

    docker compose up locally (optional `.env` for ports). Register, name a project, copy the DSN from setup or Settings → SDK connection. Self-host is the path that ships today.

  • Install io.sentry:sentry-spring-boot-starter

    Add the official Sentry SDK from your package manager. Epure speaks the Sentry wire, so there is no @epure/* client.

  • Init and verify

    Call Sentry.init with the Epure DSN. Throw once (or captureException). Confirm 202 and an issue in the list.

Wire path

Add the starter. Set sentry.dsn.

Leave the version unpinned here. The fixture line is io.sentry:sentry 7.8.0, not a Spring live smoke.

  • Install io.sentry:sentry-spring-boot-starter

    Official Sentry client from the package registry. No @epure/* SDK.

  • Point dsn at Epure

    Paste the project DSN from Settings. Fresh install and Sentry migrants use the same field.

  • Disable discarded lines

    Set traces, replay, and profile sample rates to 0. Epure stores exceptions only.

1<!-- docs name: sentry-spring-boot -->2<dependency>3  <groupId>io.sentry</groupId>4  <artifactId>sentry-spring-boot-starter</artifactId>5</dependency>
Why Epure

Install sentry-spring-boot. Point the DSN. Verify.

Keep the official SDK. Change only the host.

  • Official SDK, no proprietary agent

    Install io.sentry:sentry-spring-boot-starter (or keep it if you already have Sentry). Point dsn at Epure.

  • Self-host without a broker fleet

    Postgres holds issues and events. No Kafka or Redis in the OSS compose. Self-host is a $0 software license; you still run the host. Cloud Pro is $24 and Plus is $79.

  • Issues you can finish

    Grouping, releases, alerts, and soft-sampling on spikes. Triage without a seat tax.

  • Honest scope

    Exceptions and stacks. We skip replay, profiling, and transaction APM, and never claim 100% compatibility.

  • Raw-frame grouping

    Grouping uses file, function, and line as the SDK sends them. No ProGuard, dSYM, or NDK.

  • You own the data path

    Self-host keeps stack traces on your Postgres. Cloud soft-samples instead of surprise invoices.

FAQ

Before you paste the Spring Boot DSN.

Do I need an existing Sentry Cloud account?
No. Install io.sentry:sentry-spring-boot-starter from the package registry, create an Epure project, paste the DSN, and capture. You need their open SDK client, never their SaaS. Quickstart.
I already use io.sentry:sentry-spring-boot-starter. Do I rewrite?
No. Leave the SDK. Change only the dsn to your Epure host. Set traces/replay/profile sample rates to 0 so you don’t ship volume Epure discards. Self-host install if you still need compose.
What about transactions, replay, and profiling?
Epure is exception tracking. Transactions are discarded. Replay and profiling items are ignored. Disable those sample rates in init.
How long until I see the first Spring Boot issue?
With Docker warm and a DSN in env, most people land a 202 and an issue the same sitting. Persistence is async, so under normal load an issue appears in well under a second.
Which wire path does Spring Boot use?
Java envelope POST /api/{project_id}/envelope/. The captured fixture is io.sentry:sentry 7.8.0, not a live Spring smoke. Android is out of scope. /integrations/java stays the JVM SDK page.
How do I verify the first Spring Boot issue?
Throw from a controller after sentry.dsn is set. Expect HTTP 202, then an issue row. Verify. A rejected DSN: Invalid DSN. A 202 with an empty list: Events not showing. Epure stores exceptions. No session replay, distributed tracing, profiling, or logs.

Point Spring Boot at Epure tonight.

Compose up. Add sentry-spring-boot-starter. Set sentry.dsn.

Apache 2.0 · official Sentry SDK · swap DSN