Repository navigation
refactor: add the framework-independent telemetry engine - #48
Merged
Merged
Conversation
fateeand
requested review from
TerranceKhumalo-absa,
korel-san and
lukasmatta
as code owners
November 11, 2026 13:21
Contributor
Coverage report
Show files with reduced coverage 🔻
Test suite run success564 tests passing in 13 suites. Report generated by 🧪jest coverage report action from 70e0bcc |
Contributor
Core coverage report
Test suite run success299 tests passing in 18 suites. Report generated by 🧪jest coverage report action from 70e0bcc |
This was referenced Nov 11, 2026
lukasmatta
approved these changes
Nov 13, 2026
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
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
Part 4 of 8 of the split of #34. This is new code, not a move: the framework-independent telemetry engine, and the Angular services rewired to delegate to it.
Changes
uwtCreateTelemetry(options)returns an engine withscenarios,bi,logging,setUserId,flushand an idempotentdispose(). A missing application, environment, version, destination or log store throws when the engine is created; everything after that fails open.document. Nothing toucheswindowordocumenton import, and there is no global engine state.onSettled(listener)replaces the Observable inside the core, so its main entry needs no RxJS. The Angularsettled$listens only while it has subscribers, so no record is copied when nobody reads it.dispose()stops watching the page, settles in-flight scenarios as abandoned, and flushes. Scenarios, BI events and logs started afterwards work as before./rxjsentry (traceScenario;rxjsis an optional peer), and the no-op sink and log API.How to review
This is the part to read closely:
src/lib/engine/, then the services underngx-ui-watchtower/src/lib/services/.Closes #40
Part 4 of 8 of the epic #35. Stack on GitHub, merged bottom first: