Gatepost documentation

Everything you need to add real-user performance monitoring to a mobile app: platform guides, the ingest API reference and what happens to the data.

Supported platforms

PlatformMinimum versionSDKCurrent release
iOS, iPadOSiOS 14, Xcode 15, Swift 5.9Gatepost for iOS2.9.1
AndroidAndroid 7.0 (API 24), AGP 8.0, Kotlin 1.9 or Java 11Gatepost for Android2.9.0
React NativeReact Native 0.73, new architecture supported@gatepost/react-native1.6.2
FlutterFlutter 3.16, Dart 3.2gatepost_flutter1.4.0

Release notes for every version are in the changelog. Each SDK line receives fixes for eighteen months after the next major release.

Concepts

Project and project key

A project is one app on one platform. Every project has a project key, a 16-character hexadecimal identifier that the SDK sends with each upload. Keys are write-only: they authorise sending telemetry and nothing else, which is why it is safe to ship them inside an app binary. Keys can be rotated from the console at any time; the previous key keeps working for 24 hours so in-flight releases are not cut off.

Collector

A collector is a regional ingest endpoint. Each project is assigned a collector host in its home region when it is created; the host is shown in the console under project settings. Collectors accept batched telemetry over HTTPS, validate the key, answer 202 Accepted and forward the batch to the project's storage region. They keep no customer data themselves. See the ingest API reference for the full contract.

Session

A session starts when the app comes to the foreground and ends after 30 seconds in the background, or when the process exits. Every event carries the session ID, so app start, screens, requests and a crash from the same run can be read as one story.

Screen

A screen is a unit of the user interface that has a name: a UIViewController, an Activity or Fragment, a Compose destination, a React Navigation route, a Flutter route. Rendering metrics and slow frames are attributed to the screen that was visible when they happened.

Trace and span

A trace measures one operation with a start and an end, optionally with attributes and nested child spans. Gatepost creates traces automatically for app start and HTTP requests, and you can create your own for anything users wait for.

Release

A release is identified by the app version and build number read from the bundle or manifest. Every metric in the console can be filtered or compared by release, which is how regressions are caught on a partial rollout.

Where to get help