-
Notifications
You must be signed in to change notification settings - Fork 21
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
Re-enable the observer custom metric #54
Comments
Related to HTTPArchive/data-pipeline#84 |
There is issue related to Here is a test with an observer on
Baseline for comparison. The baseline occassionally has more requests, but I think this depends on whether the top ad is shown, but it isn't shown on all tests. @rviscomi is it possible to test this at scale instead of relying on manual testing? |
Thanks for looking into this @kevinfarrugia! The only way to test this at scale is to enable the custom metric in the crawl, which I'm not totally comfortable doing yet, even with this change. Disabling the Here's a challenge for you: is there an idempotent way to observe |
OK, so I think the root cause of the issue is that we are not defining a setter for the observed properties. If you inject the
This can be fixed by adding a I have some concerns though:
Before: https://webpagetest.httparchive.org/result/221103_JD_5/ |
I am also unsure about the
What is it intended to measure? Currently I am getting a length stack trace but I cannot understand the valule:
Test run without above snippet: https://webpagetest.httparchive.org/result/221103_G6_8/1/details/ |
That sounds promising!
We could try measuring this with A/B tests in WPT with and without the custom metric enabled. Maybe TBT is a good proxy metric. I suspect it's fine, but if not we could minimize the number of observed properties and avoid the
That could be interesting but I can't think of a use for it right now. So let's stick with
That's a good question. We could re-import the problematic June 1, 2022 crawl into BigQuery and write a query to find failure cases. Then we can test a sample of those failed pages with the old and new custom metric code to verify that we're getting expected results. Alternatively, if we know that pages failed because they were attempting to override the getter/setter methods, we might be able to regex search the scripts in the latest dataset to find potentially problematic pages and run the old and new custom metric code against that sample.
The call stack tells us which part of the code accessed the observed property. So we can distinguish between 1P and 3P or inspect individual lines of code to better understand what it's trying to do. |
We had to disable the observer custom metric because it was interfering with the page rendering in some cases.
Investigate how that interference happened and come up with a workaround so that we can re-enable this feature.
The text was updated successfully, but these errors were encountered: