Skip to content

Conversation

@tanderson-ld
Copy link
Contributor

@tanderson-ld tanderson-ld commented Oct 14, 2025

Summary

Adds initial implementation of Android observability plugin session replay support. Still has many remaining TODOs, some of which will be given new stories for fleshing out specific handling/behaviors.

How did you test this change?

Unit tests on instrumentation manager. There is a later story in the epic to add e2e instrumented tests.

Are there any deployment considerations?

This is only for alpha consumption and no promises related to stability of code can be made at this time.


Note

Introduces session replay capture/export via RRWeb GraphQL, adds pluggable instrumentations with a routing log processor, updates GraphQL var handling and TelemetryInspector.

  • SDK/Core:
    • Session Replay: New replay pipeline with ReplayInstrumentation, CaptureSource, RRwebGraphQLReplayLogExporter, SessionReplayApiService, protocol models (ReplaySessionProtocol.kt), and GraphQL ops (InitializeReplaySession.graphql, IdentifyReplaySession.graphql, PushPayload.graphql).
    • Options: Add instrumentations: List<LDExtendedInstrumentation>; expose DEFAULT_SERVICE_NAME, DEFAULT_OTLP_ENDPOINT, DEFAULT_BACKEND_URL.
    • InstrumentationManager: Support external instrumentations; add createLoggerProcessor using RoutingLogRecordProcessor; integrate TelemetryInspector exporters (lazy); minor refactors to exporters/processors.
    • Logging: Add RoutingLogRecordProcessor and NoopLogRecordProcessor for scope-based log routing.
    • GraphQL: Change variables to JsonElement; update SamplingApiService accordingly.
    • Build: Add Compose UI deps for capture.
  • Example App:
    • Include ReplayInstrumentation in BaseApplication plugin options.
  • Tests:
    • New tests for logger processor routing and replay exporter; update GraphQL/Sampling tests for JsonPrimitive; adjust E2E disabling tests to not depend on null exporters.

Written by Cursor Bugbot for commit d52ac80. This will update automatically on new commits. Configure here.

@tanderson-ld tanderson-ld requested a review from a team as a code owner October 14, 2025 20:59
@Vadman97 Vadman97 self-requested a review October 15, 2025 14:18
cursor[bot]

This comment was marked as outdated.

@Vadman97 Vadman97 requested a review from agrognetti October 24, 2025 18:10
@tanderson-ld tanderson-ld merged commit 4ba5124 into main Oct 24, 2025
22 checks passed
@tanderson-ld tanderson-ld deleted the ta/O11Y-606/replay branch October 24, 2025 20:50
tanderson-ld pushed a commit that referenced this pull request Oct 24, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>launchdarkly-observability-android: 0.12.0</summary>

##
[0.12.0](launchdarkly-observability-android-0.11.0...launchdarkly-observability-android-0.12.0)
(2025-10-24)


### Features

* Android observability plugin session replay support
([#268](#268))
([4ba5124](4ba5124))
* O11Y-601 - Add Android launch time instrumentation
([#274](#274))
([38b4a84](38b4a84))
</details>

<details><summary>observability: 0.4.6</summary>

##
[0.4.6](observability-0.4.5...observability-0.4.6)
(2025-10-24)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * highlight.run bumped to 9.22.3
</details>

<details><summary>session-replay: 0.4.6</summary>

##
[0.4.6](session-replay-0.4.5...session-replay-0.4.6)
(2025-10-24)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * highlight.run bumped to 9.22.3
</details>

<details><summary>highlight.run: 9.22.3</summary>

##
[9.22.3](highlight.run-9.22.2...highlight.run-9.22.3)
(2025-10-24)


### Bug Fixes

* avoid noisy error log on starting new sessions
([#269](#269))
([e76004c](e76004c))
* make sessionCookie session a boolean type
([#272](#272))
([9fb304d](9fb304d))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Publish new Android, Web Observability, and Session Replay releases
plus highlight.run 9.22.3 with minor features and fixes, and bump
internal dependencies accordingly.
> 
> - **SDK releases**:
>   - **Android (`sdk/@launchdarkly/observability-android`) 0.12.0**:
>     - Add session replay support in the Android observability plugin.
>     - Add Android launch time instrumentation.
>   - **Web Observability (`sdk/@launchdarkly/observability`) 0.4.6**:
>     - Dependency: `highlight.run` -> `9.22.3`.
>   - **Session Replay (`sdk/@launchdarkly/session-replay`) 0.4.6**:
>     - Dependency: `highlight.run` -> `9.22.3`.
>   - **highlight.run (`sdk/highlight-run`) 9.22.3**:
> - Bug fixes: reduce noisy error log on new sessions; make
`sessionCookie.session` a boolean.
> - **Version manifests**:
> - Update `.release-please-manifest.json` and package versions to match
releases.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
1081a4c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants