SDK Data Limits
SDK Data Limits
To keep payloads efficient and protect both your app and our backend, the Embrace SDKs apply limits to the amount of data they collect and send. This page lists the effective limits — the values that actually apply to the data you see in the dashboard.
A few things to keep in mind:
- Where a limit differs between Android and iOS, both values are shown.
- These values are enforced by our backend and are the maximums it will store. Several can be tuned lower for your app through our remote configuration system; reach out to support@embrace.io with questions about a specific limit.
- Values that exceed a length limit are truncated, not rejected: the first N characters are kept and the rest is discarded (for example, a 300-character property value is stored as its first 256 characters).
- When a per-session count limit is reached, the data captured later in the session is dropped and the earliest data is kept — the SDK captures up to the limit and then stops capturing that type for the rest of the session. The one exception is traces on iOS: when the span limit is reached, the SDK keeps the most recent spans and drops the oldest.
Session properties
- You can attach up to 100 session properties to a session on both Android and iOS.
- Session property keys can be up to 128 characters long.
- Session property values are stored up to 256 characters; anything longer is truncated.
Logs
- You can send up to 100 info logs, 200 warning logs, and 500 error logs per session.
- A log message can be up to 4,000 characters long; longer messages are truncated.
- Each log can carry up to 100 attributes on Android and up to 10 attributes on iOS.
- Log attribute keys can be up to 128 characters long.
- Log attribute values are stored up to 256 characters; anything longer is truncated.
Breadcrumbs
- You can record up to 100 breadcrumbs per session on both Android and iOS.
- A breadcrumb message can be up to 256 characters long; longer messages are truncated by our backend on both platforms.
- On iOS, up to 80 tap events are automatically captured per session.
Traces and spans
- Custom spans per session: up to 500 on Android and up to 1,000 on iOS.
- Automatic (Embrace-generated) spans per session: up to 5,000 on Android and up to 1,500 on iOS.
- A span name can be up to 128 characters long for custom spans on both platforms.
- Each span can carry up to 100 custom attributes on Android; on iOS this follows the OpenTelemetry default of roughly 128.
- Span attribute keys can be up to 128 characters and values up to 1,024 characters on Android.
- Each span can have up to 10 span events, with up to 10 attributes per event, on both platforms.
Network requests
- Android captures up to 1,000 network requests per domain per session, adjustable through our remote configuration system.
- On iOS, network requests are captured as spans, so the span limits above apply.
WebViews
- Android captures up to 100 WebView events per session, adjustable through our remote configuration system.
- iOS does not apply a WebView-specific limit; WebView events count toward the general span-event limit.
Web SDK
The Embrace Web SDK is a separate SDK from the mobile SDKs above and enforces its own limits, all counted per session:
- Session properties: up to 100, with keys up to 128 characters and values up to 256 characters.
- Logs: up to 100 info, 200 warning, and 500 error logs; each log message up to 128 characters; up to 50 attributes per log, with keys up to 128 characters and values up to 256 characters.
- Exceptions: up to 500, with each exception message up to 1,024 characters.
- Breadcrumbs: up to 100, with each message up to 256 characters.
- Spans: up to 1,000 per session.
- Network requests: up to 10,000 per session.