Slide 1

Slide 1 text

MACIEJWALKOWIAK TROUBLESHOOTING SPRING BOOT APPS WITH SENTRY MACIEJ WALKOWIAK

Slide 2

Slide 2 text

@maciejwalkowiak MAKING SOFTWARE IN 2021 LIKE A PRO •Agile •Unit & Integration Tests •Frequent Releases •Cloud •Deployment Automation

Slide 3

Slide 3 text

@maciejwalkowiak DEVELOPER LIFE IN 2007 •Agile Waterfall •Unit & Integration Tests Manual Testing •Frequent Releases Release every few months •Cloud Server Room behind the wall •Deployment Automation Sending ZIP file to release manager

Slide 4

Slide 4 text

@maciejwalkowiak If something can go wrong, It will go wrong

Slide 5

Slide 5 text

MACIEJWALKOWIAK

Slide 6

Slide 6 text

MACIEJWALKOWIAK return paymentService.executePayment(userId, payment);

Slide 7

Slide 7 text

MACIEJWALKOWIAK try { return paymentService.executePayment(userId, payment); } catch (Exception e) { LOGGER.error("Executing payment failed for user: {}, payment: {}", e); throw new RuntimeException(e); }

Slide 8

Slide 8 text

MACIEJWALKOWIAK try { LOGGER.info("Executing payment for user: {}", userId); PaymentResult result = paymentService.executePayment(userId, payment); LOGGER.info("Payment result: {}", result); return result; } catch (Exception e) { LOGGER.error("Executing payment failed for user: {}, payment: {}", e); throw new RuntimeException(e); }

Slide 9

Slide 9 text

@maciejwalkowiak THINGS HAVE CHANGED •(Misunderstood) Agile •Cloud & Microservices •Mobile (traffic!) •(Proper) security

Slide 10

Slide 10 text

MACIEJWALKOWIAK

Slide 11

Slide 11 text

@maciejwalkowiak hey I just met you and this is crazy but can this error log be a bug report maybe?

Slide 12

Slide 12 text

MACIEJWALKOWIAK

Slide 13

Slide 13 text

MACIEJWALKOWIAK MACIEJ WALKOWIAK - independent consultant - Spring Cloud AWS Lead - working with

Slide 14

Slide 14 text

@maciejwalkowiak DEMO TIME!

Slide 15

Slide 15 text

@maciejwalkowiak SENTRY & SPRING BOOT INTEGRATIONS •Spring MVC •Spring WebFlux (error reporting) •Retrieving user information from Spring Security •RestTemplate •WebClient •Logback •declarative tracing with @SentrySpan & @SentryTransaction

Slide 16

Slide 16 text

@maciejwalkowiak OTHER INTEGRATIONS •OpenFeign •Apollo GraphQL •Java Util Logging •Log4j2 •Servlets

Slide 17

Slide 17 text

MACIEJWALKOWIAK https://sentry.io

Slide 18

Slide 18 text

MACIEJWALKOWIAK https://github.com/getsentry

Slide 19

Slide 19 text

MACIEJWALKOWIAK https://docs.sentry.io

Slide 20

Slide 20 text

MACIEJWALKOWIAK https://github.com/getsentry/sentry-java

Slide 21

Slide 21 text

@maciejwalkowiak THANK YOU! HAPPY BUGFIXING!