Skip to content

Add RUM Profiler data model to rum-events-format#325

Merged
dd-mergequeue[bot] merged 22 commits into
masterfrom
beltran.bulbarella/PROF-11903-add-profiling_2
Jan 12, 2026
Merged

Add RUM Profiler data model to rum-events-format#325
dd-mergequeue[bot] merged 22 commits into
masterfrom
beltran.bulbarella/PROF-11903-add-profiling_2

Conversation

@BeltranBulbarellaDD

@BeltranBulbarellaDD BeltranBulbarellaDD commented Dec 2, 2025

Copy link
Copy Markdown
Contributor

This PR adds the Profiling data model, making it consistent with RUM and Session Replay Schema.

Structure:

profiling
│   _common-schema.json
└───browser/
│      profile-event-schema.json
│      profiler-trace-schema.json
└───mobile/
       profile-event-schema.json

browser/profile-event-schema.json: Browser-specific payload schema extending _common-schema.json with browser-specific fields (format, _dd.clock_drift) and the wall-time trace.

mobile/profile-event-schema.json: Mobile-specific profile event extending _common-schema.json with the vital property.

Samples where taken from the test:performance e2e test in Browser-SDK repo

In this Browser PR we can see how they will be used.

@BeltranBulbarellaDD
BeltranBulbarellaDD marked this pull request as ready for review December 4, 2025 08:54
@BeltranBulbarellaDD
BeltranBulbarellaDD requested review from a team as code owners December 4, 2025 08:54
@BeltranBulbarellaDD BeltranBulbarellaDD changed the title add profiling types Add RUM Profiler data model to rum-events-format Dec 4, 2025
Comment thread schemas/profiling/profile-event-attributes-schema.json Outdated
"title": "ProfileEventPayload",
"type": "object",
"description": "Schema of the Profile Event payload.",
"required": ["event", "wall-time.json"],

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

strictly speaking, Mobile SDKs don't have wall-time.json, but at the same time event is passed in the multipart-form format, next to the recording binary unlike in case of Browser SDK

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I see, should I remove this ProfileEventPayload as it's too platform-specific?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

In the browser, the event is also sent as multipart form data, alongside the profiler trace binary. The backend does not expect a ProfileEventPayload type. We should remove it.

Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/_common-schema.json
Comment thread schemas/profiling/long-task-entry-schema.json Outdated
Comment thread schemas/profiling/long-task-entry-schema.json Outdated
Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/profile-event-schema.json Outdated
@BeltranBulbarellaDD BeltranBulbarellaDD changed the title Add RUM Profiler data model to rum-events-format [WIP] Add RUM Profiler data model to rum-events-format Dec 4, 2025
@BeltranBulbarellaDD
BeltranBulbarellaDD marked this pull request as draft December 4, 2025 15:59
Comment thread samples/profiling/profiler-trace/rum-profiler-trace.json Outdated
Comment thread schemas/profiling-schema.json
Comment thread schemas/profiling/browser/profile-event-schema.json
Comment thread schemas/profiling/profile-event-schema.json Outdated
Comment thread schemas/profiling/profiler-trace-schema.json Outdated
@BeltranBulbarellaDD BeltranBulbarellaDD changed the title [WIP] Add RUM Profiler data model to rum-events-format Add RUM Profiler data model to rum-events-format Dec 9, 2025

@0xnm 0xnm left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good for Mobile 👍 I left few comments.

Comment thread schemas/profiling-mobile-schema.json Outdated
Comment thread schemas/profiling-mobile-schema.json Outdated
@BeltranBulbarellaDD
BeltranBulbarellaDD marked this pull request as ready for review December 10, 2025 19:21

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread lib/profiling/package.json
Comment thread schemas/profiling-browser-schema.json Outdated
Comment thread schemas/profiling/browser/profiler-trace-schema.json Outdated
Comment thread schemas/profiling/browser/profile-event-schema.json Outdated
@BeltranBulbarellaDD
BeltranBulbarellaDD marked this pull request as ready for review January 8, 2026 10:16
Comment thread schemas/profiling-browser-schema.json Outdated
Comment thread schemas/profiling-schema.json Outdated
Comment thread schemas/profiling-schema.json Outdated
Comment thread schemas/profiling/_common-schema.json Outdated
@aleksandr-gringauz

aleksandr-gringauz commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Discussed this build failure for android-sdk with @BeltranBulbarellaDD .

TL;DR. Kotlin Poet can't create a class with field name wall-time.json, because it contains a dot. In kotlin you can't have dots in field names even val "wall-time.json": Int.

In the current CI run our session replay module fetched new profiling schema files and started checking them. I'll fix it.

IIUC wall-time.json is needed here. So we probably should leave it as it is. If it comes to Android at some point, we will have to deal with it.

@BeltranBulbarellaDD

Copy link
Copy Markdown
Contributor Author

/merge

@dd-devflow-routing-codex

dd-devflow-routing-codex Bot commented Jan 12, 2026

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-01-12 13:00:19 UTC ℹ️ Start processing command /merge


2026-01-12 13:00:24 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in master is approximately 11m (p90).


2026-01-12 13:08:45 UTC ℹ️ MergeQueue: This merge request was merged

@dd-mergequeue
dd-mergequeue Bot merged commit bc42a89 into master Jan 12, 2026
13 checks passed
@dd-mergequeue
dd-mergequeue Bot deleted the beltran.bulbarella/PROF-11903-add-profiling_2 branch January 12, 2026 13:08

@rgaignault rgaignault left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice work 👏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants