Skip to content

Conversation

mormubis
Copy link
Contributor

@mormubis mormubis commented Sep 5, 2025

Motivation

Video Quality Monitoring initiative plans to reuse view events to send stream information. This PR adds those foundational changes. Additionally, there will be an additional PR in the playground where the VQM plugin will be published.

Changes

This PR adds the raw types for stream that gets transformed in the assembly step to a view event.

Test instructions

This PR is difficult to manually test. Changes are planned for a follow-up PR in the playground where the new VQM plugin uses stream events.

Checklist

  • Tested locally
  • Tested on staging
  • Added unit tests for this change.
  • Added e2e/integration tests for this change.

Copy link

datadog-official bot commented Sep 5, 2025

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage
Patch Coverage: 100.00%
Total Coverage: 92.51% (+0.01%)

View detailed report

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 48f23b9 | Docs | Was this helpful? Give us feedback!

Copy link

cit-pr-commenter bot commented Sep 5, 2025

Bundles Sizes Evolution

📦 Bundle Name Base Size Local Size 𝚫 𝚫% Status
Rum N/A 161.51 KiB 161.51 KiB N/A%
Rum Recorder N/A 19.53 KiB 19.53 KiB N/A%
Rum Profiler N/A 5.32 KiB 5.32 KiB N/A%
Logs N/A 55.77 KiB 55.77 KiB N/A%
Flagging N/A 931 B 931 B N/A%
Rum Slim N/A 119.12 KiB 119.12 KiB N/A%
Worker N/A 23.60 KiB 23.60 KiB N/A%
🚀 CPU Performance
Action Name Base Average Cpu Time (ms) Local Average Cpu Time (ms) 𝚫
addglobalcontext N/A N/A N/A
addaction N/A N/A N/A
addtiming N/A N/A N/A
adderror N/A N/A N/A
startstopsessionreplayrecording N/A N/A N/A
startview N/A N/A N/A
logmessage N/A N/A N/A
🧠 Memory Performance
Action Name Base Consumption Memory (bytes) Local Consumption Memory (bytes) 𝚫 (bytes)
addglobalcontext N/A 26.29 KiB N/A
addaction N/A 47.42 KiB N/A
addtiming N/A 24.54 KiB N/A
adderror N/A 52.03 KiB N/A
startstopsessionreplayrecording N/A 23.52 KiB N/A
startview N/A 432.24 KiB N/A
logmessage N/A 42.92 KiB N/A

🔗 RealWorld

@mormubis mormubis changed the title adlrb/stream ✨ Video Quality Monitoring changes Sep 5, 2025
@mormubis mormubis changed the title ✨ Video Quality Monitoring changes ✨ Video Quality Monitoring Sep 5, 2025
@mormubis mormubis changed the title ✨ Video Quality Monitoring ✨ Video Quality Monitoring adaptation Sep 5, 2025
@mormubis mormubis requested a review from eloytoro September 5, 2025 15:45
@BeltranBulbarellaDD BeltranBulbarellaDD marked this pull request as ready for review September 8, 2025 11:44
@BeltranBulbarellaDD BeltranBulbarellaDD requested a review from a team as a code owner September 8, 2025 11:44
Comment on lines 828 to 885
export type RumViewEvent = CommonProperties &
ViewContainerSchema & {
ViewContainerSchema &
StreamSchema & {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Is Stream supposed to be its own event or part of the RUM View? I'm confused

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea is it to be part of the RUM View


const subscription = lifeCycle.subscribe(LifeCycleEventType.RUM_EVENT_COLLECTED, (event): void => {
if (event.type === 'view' || event.type === 'vital' || !isChildEvent(event)) {
if (event.type === 'view' || event.type === 'vital' || !isChildEvent(event) || ['stream'].includes(event.type)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: let's keep things uniform, either use event.type === 'stream' or use a list of event types that are never counted containing view, vital and stream

lifeCycle.notify(LifeCycleEventType.RUM_EVENT_COLLECTED, serverRumEvent)

if (rawRumEvent.type === 'stream') {
const streamEvent = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thought: this doesn't look like production ready code..

Copy link
Contributor

@BeltranBulbarellaDD BeltranBulbarellaDD Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My knowledge is that the idea is to make it work, and have it tested next week with customers and if no one want's it, to be dropped. That's why I think maybe the integration is not production ready.

But I will move this to a helper function, use the types and unit test it to make it prod ready.

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