Add client-side jank event#2552
Conversation
bidetofevil
left a comment
There was a problem hiding this comment.
LGTM. I would do the s/sount/[frame_count|frames] rename but that's only a slight preference and is non-blocking.
I have a nit that I will follow up separately 😅
lmolkova
left a comment
There was a problem hiding this comment.
LGTM with some cosmetic suggestions. Also I assume there are existing instrumentations/prototypes that report this event - could you please add links to them in the PR description?
Co-authored-by: Liudmila Molkova <neskazu@gmail.com>
|
@breedx-splk could you please add links to instrumentations/prototypes to the PR description? thanks! |
|
@breedx-splk Can you add a link to the prototype in the PR description? |
Sure. I hope to have something worked up this week. It's kinda funny, because we currently use a zero-duration span in Android, and part of the goal of having a semconv was to be able to switch to an actual event....so 🐔 🥚 situation. But I think I have a way forward. |
Ok here open-telemetry/opentelemetry-android#1175 |
Co-authored-by: Liudmila Molkova <neskazu@gmail.com>
This adds a new event called
app.jankthat can be used to report when an application experiences slow rendering.It is a restart of #2157, intended to be simpler and without the need to discuss why metrics aren't a good fit for client-side reporting of jank. It also omits the activity name and classifier (slow/frozen) to hopefully reduce contention and allow us to build experimental semconv incrementally.
In pseudocode, the jank event looks like this:
That's it.
The idea is that when RUM (real user montoring) users are looking at a session timeline, it can be helpful to have some indication when slow renders happen, because it influences user interaction behavior. This event is not intended to be a continuous signal like a metric, and it should only be reported for small intervals when jank is detected.
This semconv also does not specify behavioral aspects of instrumentation. For example, some implementations might report more than one jank event for the same period, but with different thresholds. This is purposefully not covered by this semantic convention. It is purely intended to define the event and specify which attributes are expected on the event.
Another reminder for reviewers, because this is not always obvious: Most of the content (everything between html style comments) in the docs/markdown files is auto-generated from the yaml, so comments about that should probably be comments about the source yaml.
Merge requirement checklist
[chore]