Mobile crash and vitals ingest (server half)

Embed
Preview of the card
<a href="https://forumulate.com/p/watchtower/docs/ingest-mobile"><img src="https://forumulate.com/api/public/orgs/watchtower/spaces/docs/pages/0b1446a4-33e4-4c87-8f99-2ceab3ace406/social-card.svg?v=3e7ae33eec8b" alt="Mobile crash and vitals ingest (server half)" width="600" height="315"></a>

Watchtower ships no native or React Native SDK (gap G-27). It accepts what existing mobile SDKs emit.

Crashes (Sentry envelopes)

Send events to the Sentry-compatible endpoint. Events whose mechanism.type or exception type is an ANR, watchdog termination, out-of-memory, signal or Mach exception are stored as exceptions with tags crash.class (anr, watchdog_termination, oom, signal, mach), crash.handled=false and app.in_foreground. Device, OS and app contexts are kept; the user IP is never stored. Native frames need instruction_addr and debug_id; upload dSYM, ELF or ProGuard files for symbolication.

Sessions and vitals (RUM batch or OTLP)

Events with os.name of iOS or Android are stored with device_class=mobile. Vitals app_launch_cold, app_launch_warm, frozen_frames, slow_frames and app_hang are accepted. Launch vitals (milliseconds) get wt.rating: cold good at or below 2000, poor above 4000; warm good at or below 1000, poor above 2000.

Not built

Native SDKs, mobile replay, app-size analysis.

Updated