Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Robust Observability for Mobile Apps & SDKs using Sentry Nsikak, Thompson Android Engineer, League https://github.com/EverlongProject/ sundae-android/pull/7071#discussi on_r1232528316

Slide 3

Slide 3 text

😖 😠

Slide 4

Slide 4 text

Observability is a feature

Slide 5

Slide 5 text

What is Observability?

Slide 6

Slide 6 text

Observability is a feature for improving user experience & driving growth. Observability is the ability to see what is happening in production on user device. or

Slide 7

Slide 7 text

Why is it important

Slide 8

Slide 8 text

Debugging and issue resolution Performance optimization Understanding user behavior Operational efficiency

Slide 9

Slide 9 text

How can I implement observability?

Slide 10

Slide 10 text

sentry.io

Slide 11

Slide 11 text

Error Monitoring Performance Tracing Session Profiling

Slide 12

Slide 12 text

Networking Local Storage Sentry In-house Mobile App Networking Local Storage Sentry SDK Ext. SDK user Networking Local Storage Sentry Sentry

Slide 13

Slide 13 text

Setup for App level SentryAndroid.init(this) { options -> options.dsn = “YOUR_DSN” } Module or SDK specific level private val options = SentryOptions().apply { dsn = “YOUR_DSN”} Val hub = Hub(options)

Slide 14

Slide 14 text

Networking Local Storage Sentry In-house Mobile App Networking Local Storage Hub SDK Ext. SDK user Networking Local Storage Hub Sentry

Slide 15

Slide 15 text

Logging

Slide 16

Slide 16 text

Logging ● Fatal Errors. E.g ANRs ● Non fatal Errors ● Catched Exceptions ● Screenshot try { throw new Exception("This is a test."); } catch (Exception e) { Sentry.captureException(e); }

Slide 17

Slide 17 text

Logging - Fatal Errors. E.g ANRs

Slide 18

Slide 18 text

Performance Tracing

Slide 19

Slide 19 text

Performance Tracing ● Cold & Warm App Startup time ● Transaction Duration ● Slow & Frozen Frames Rendering ● UI load time

Slide 20

Slide 20 text

Performance Tracing - Custom ● Network Request response duration - HTTP, GraphQL ● Database transactions - e.g insert, read , update

Slide 21

Slide 21 text

Performance Tracing - Custom ITransaction transaction = Sentry.startTransaction("processOrderBatch()", "task"); try { processOrderBatch(); } catch (Exception e) { transaction.setThrowable(e); transaction.setStatus(SpanStatus.INTERNAL_ERROR); } finally { transaction.finish(); }

Slide 22

Slide 22 text

Performance Tracing - Transaction Duration

Slide 23

Slide 23 text

Metrics

Slide 24

Slide 24 text

Metrics - Sentry Dashboard Observability metrics are selected key performance indicators (KPIs) such as: ● Error rates ● Crash session rate ● Unique User crash ● Overall Startup time

Slide 25

Slide 25 text

Metrics - Sentry Dashboard

Slide 26

Slide 26 text

Alerts

Slide 27

Slide 27 text

Alerts Alerts provide real-time visibility into problems with your code and the impact on your users.

Slide 28

Slide 28 text

Features App SDK Custom Tracing Automatic Tracing - app startup time Crash Reporting - ANR Logging exceptions or message

Slide 29

Slide 29 text

Resources https://docs.sentry.io/

Slide 30

Slide 30 text

THANK YOU! Connect with me on Twitter: @hinsikak Log everything