Skip to content
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

docs: Add docs for Time to Interactive #471

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

ps863
Copy link
Member

@ps863 ps863 commented Nov 30, 2023

This change adds docs on Time to interactive (TTI).


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@ps863 ps863 marked this pull request as ready for review November 30, 2023 09:28
#### What is Time to interactive (TTI)?

Time to interactive (TTI) is a measure of how long a page takes till it is interactive. AWS RUM Web Client provides a plugin you can use to record this measurement.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Time to interactive (TTI) is a measure of how long a page takes till it is interactive. AWS RUM Web Client provides a plugin you can use to record this measurement.
Time to interactive (TTI) is a measure of how long a page takes until it is interactive. AWS RUM Web Client provides a plugin you can use to record this measurement.

The web client TTI plugin implements the [*Boomerang TTI algorithm*](https://akamai.github.io/boomerang/oss/BOOMR.plugins.Continuity.html#toc11__anchor), with some modifications.

_Steps to TTI calculation:_
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
_Steps to TTI calculation:_
_Steps to calculate TTI:_

3) TTI is recorded as visually ready timestamp + time from visually ready to the start of the quiet window.

Note: TTI can be measured using the plugin only when running in a browser that supports [*Long Tasks*](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceLongTaskTiming).
Copy link
Contributor

Choose a reason for hiding this comment

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

suggestion: move browser support to its own section

eventPluginsToLoad: [new TTIPlugin(true)],
```
Note: You must enable enable custom events to ingest TTI events in your application monitor settings. See
Copy link
Contributor

@williazz williazz Nov 30, 2023

Choose a reason for hiding this comment

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

Question: Why are custom events required? My understanding was that TTI is not a custom event.

Recording TTI events may incur Cloudwatch RUM extra charges.

Could you explain what might cause extra charges? e.g. Recording TTI events will incur the cost of roughly one RUM (or custom?) event per user session

Copy link
Member Author

Choose a reason for hiding this comment

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

synced offline

Copy link
Contributor

@williazz williazz left a comment

Choose a reason for hiding this comment

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

Just left two small questions

#### How is TTI measured by the AWS RUM web client?

The web client TTI plugin implements the [*Boomerang TTI algorithm*](https://akamai.github.io/boomerang/oss/BOOMR.plugins.Continuity.html#toc11__anchor), with some modifications.
Copy link
Contributor

@williazz williazz Dec 1, 2023

Choose a reason for hiding this comment

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

with some modifications

suggestion: explicitly state that we have omitted page busy metrics from the boomerang algorithm for performance concerns

@williazz
Copy link
Contributor

williazz commented Dec 1, 2023

Suggestion: CDN example?

```

## Time to Interactive (TTI)
Copy link
Member

Choose a reason for hiding this comment

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

suggestion: Mention TTI in eventPluginsToLoad, otherwise this section is dangling, while every other section is referenced from the Configuration Options section. For example:

- The set of custom plugins to load. See [usage examples](examples.md#record-custom-events-using-a-plugin).
+ The set of custom plugins to load, including [time to interactive (TTI)](examples.md#record-time-to-interactive). See [usage examples](examples.md#record-custom-events-using-a-plugin).


## Time to Interactive (TTI)

Copy link
Member

Choose a reason for hiding this comment

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

issue: This section isn't structurally consistent with the other sections. Specifically, sections in this doc follow the following format:

  1. (Optional) A short description of the configuration option, or plugin.
  2. A table which lists configuration options.
  3. A usage example.

Time to interactive (TTI) is a measure of how long a page takes until it is interactive. AWS RUM Web Client provides a plugin you can use to record this measurement.

#### How is TTI measured by the AWS RUM web client?
Copy link
Member

Choose a reason for hiding this comment

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

suggestion: Omit this section's information. Because this file focuses on documenting how to configure the web client, if we want to document how TTI is defined, I think we should do it elsewhere.

@cirigiddaNithish91
Copy link

i am getting plugin type error when i am trying to upgrade the version
Screenshot 2023-12-06 at 12 56 20

@ps863
Copy link
Member Author

ps863 commented Dec 6, 2023

i am getting plugin type error when i am trying to upgrade the version Screenshot 2023-12-06 at 12 56 20

Will follow up in the Github issue you created

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.

None yet

5 participants