-
Notifications
You must be signed in to change notification settings - Fork 3
feat: Android observability plugin session replay support #268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…lay GraphQL API Service
5d0717c to
4c15d96
Compare
tanderson-ld
commented
Oct 17, 2025
...-android/lib/src/main/kotlin/com/launchdarkly/observability/client/InstrumentationManager.kt
Outdated
Show resolved
Hide resolved
agrognetti
requested changes
Oct 21, 2025
...-android/lib/src/main/kotlin/com/launchdarkly/observability/client/InstrumentationManager.kt
Outdated
Show resolved
Hide resolved
...rvability-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/CaptureSource.kt
Outdated
Show resolved
Hide resolved
...droid/lib/src/main/kotlin/com/launchdarkly/observability/client/RoutingLogRecordProcessor.kt
Outdated
Show resolved
Hide resolved
...-android/lib/src/main/kotlin/com/launchdarkly/observability/client/NoopLogRecordPrcoessor.kt
Outdated
Show resolved
Hide resolved
...y/observability-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/Capture.kt
Show resolved
Hide resolved
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplaySessionProtocol.kt
Outdated
Show resolved
Hide resolved
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplaySessionProtocol.kt
Outdated
Show resolved
Hide resolved
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplaySessionProtocol.kt
Outdated
Show resolved
Hide resolved
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplaySessionProtocol.kt
Outdated
Show resolved
Hide resolved
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplaySessionProtocol.kt
Outdated
Show resolved
Hide resolved
agrognetti
requested changes
Oct 21, 2025
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplayInstrumentation.kt
Outdated
Show resolved
Hide resolved
...android/lib/src/main/kotlin/com/launchdarkly/observability/replay/SessionReplayApiService.kt
Show resolved
Hide resolved
...android/lib/src/main/kotlin/com/launchdarkly/observability/replay/SessionReplayApiService.kt
Outdated
Show resolved
Hide resolved
...android/lib/src/main/kotlin/com/launchdarkly/observability/replay/SessionReplayApiService.kt
Show resolved
Hide resolved
Vadman97
reviewed
Oct 21, 2025
...rvability-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/CaptureSource.kt
Show resolved
Hide resolved
agrognetti
requested changes
Oct 21, 2025
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplayInstrumentation.kt
Show resolved
Hide resolved
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplayInstrumentation.kt
Outdated
Show resolved
Hide resolved
...y-android/lib/src/main/kotlin/com/launchdarkly/observability/replay/ReplaySessionProtocol.kt
Outdated
Show resolved
Hide resolved
...d/lib/src/main/kotlin/com/launchdarkly/observability/replay/RRwebGraphQLReplayLogExporter.kt
Outdated
Show resolved
Hide resolved
...d/lib/src/main/kotlin/com/launchdarkly/observability/replay/RRwebGraphQLReplayLogExporter.kt
Outdated
Show resolved
Hide resolved
...d/lib/src/main/kotlin/com/launchdarkly/observability/replay/RRwebGraphQLReplayLogExporter.kt
Outdated
Show resolved
Hide resolved
...d/lib/src/main/kotlin/com/launchdarkly/observability/replay/RRwebGraphQLReplayLogExporter.kt
Outdated
Show resolved
Hide resolved
...d/lib/src/main/kotlin/com/launchdarkly/observability/replay/RRwebGraphQLReplayLogExporter.kt
Outdated
Show resolved
Hide resolved
...d/lib/src/main/kotlin/com/launchdarkly/observability/replay/RRwebGraphQLReplayLogExporter.kt
Show resolved
Hide resolved
...d/lib/src/main/kotlin/com/launchdarkly/observability/replay/RRwebGraphQLReplayLogExporter.kt
Outdated
Show resolved
Hide resolved
293e55d to
6cbc102
Compare
...-android/lib/src/main/kotlin/com/launchdarkly/observability/client/NoopLogRecordProcessor.kt
Show resolved
Hide resolved
agrognetti
approved these changes
Oct 24, 2025
...d/lib/src/main/kotlin/com/launchdarkly/observability/replay/RRwebGraphQLReplayLogExporter.kt
Show resolved
Hide resolved
Vadman97
approved these changes
Oct 24, 2025
Merged
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
ReplayInstrumentation,CaptureSource,RRwebGraphQLReplayLogExporter,SessionReplayApiService, protocol models (ReplaySessionProtocol.kt), and GraphQL ops (InitializeReplaySession.graphql,IdentifyReplaySession.graphql,PushPayload.graphql).instrumentations: List<LDExtendedInstrumentation>; exposeDEFAULT_SERVICE_NAME,DEFAULT_OTLP_ENDPOINT,DEFAULT_BACKEND_URL.createLoggerProcessorusingRoutingLogRecordProcessor; integrateTelemetryInspectorexporters (lazy); minor refactors to exporters/processors.RoutingLogRecordProcessorandNoopLogRecordProcessorfor scope-based log routing.JsonElement; updateSamplingApiServiceaccordingly.ReplayInstrumentationinBaseApplicationplugin options.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.