-
Notifications
You must be signed in to change notification settings - Fork 14
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
Website Monitoring feedback 202302 and 202303 #34
Comments
Agree with @BigLep, we should add 1 paragraph that defines what we mean by "The time it took to fully load the page.". I know @guseggert was looking into doing way more than measuring how long HTML took to transfer, and more than DOMContentLoaded – he was waiting for + small nits:
|
Great, thanks for your the feedback!
We run website measurements every six hours. Each of these measurements we consider a measurement run. In each run, we start six Kubo nodes around the world in different AWS regions. As soon as their API is reachable, we wait for 10s to let the node settle, and then request these websites one by one. We request each website three times. Then we wait 10 minutes and request the set of websites again. We thought that this may simulate a warm(er) Kubo node that has a "better" routing table. The graphs in the weekly report don't yet distinguish between cold and warm nodes. Actually, we're not only starting six Kubo nodes but twelve because we want to test the most recent stable Kubo version (v0.18.0) and the most popular according to our network crawls (v0.17.0 - up until last week, now it's also v0.18.0). Another detail: in each run, we are also requesting every website via plain HTTP without going through the local Kubo node. This means we could compare both protocols. We can easily change all of the above parameters (4x a day, 6 regions, settle times, 3 retries, 2 Kubo versions, etc.). We are running the Kubo nodes on AWS's
Yes, between each retry we run
That's right 👍
Not sure which screenshot you're referring to :/
Totally agree! Just to clarify what the
@lidel
Yup, I also wanted to have that but couldn't come up with a nice visualization that nicely captures all dimensions (latency, datetime, region, website, data points). What you're suggesting is actually a nice trade-off I think. Suggestion: take
Updated list of websites: https://github.com/protocol/probelab-infra/pull/17 |
@dennis-tra : again, this is awesome, and thanks for the great reply. A few followups... Questions around the definition of a run
Yeah, you're right that there are some differences with companion vs. hitting the local Kubo HTTP gateway, but I think your approach is good/clean/simple. Companion with time learns which domains are available via non-HTTP, and so future domain accesses is able to re-route the URL to the configured IPFS HTTP gateway. (I believe there's more nuance here, but I think what you're capturing here is good/fine.)
Events we're measuring around the page lifecycleDoh, I added the screenshot to my original post - thanks. load vs DOMContentLoaded - I've got a few things to say around this but am not necessarily laying out the points in the best way.
Week-over-week reportingI like the idea of what you're suggesting but would add a bit: Sites
Regions:
Modes: (I added this, and maybe we do one graph for HTTP and one for non-http).
Metric
The reason I think we want to plot HTTP vs non-http is:
MetaWe have lots of good/important notes about this topic at this point. Where is the durable place it's going to live? While I do think we need some explanatory text in the report, I'm also fine for it to link to a more thorough document for more info. You don't need to block on my review, but please include me when this is available for review. Again, good stuff, and thanks! |
I think Dennis has described what event we're looking at, just wanted to add here that I gave up on this because it was too complicated and seemed unlikely to be maintainable by us (and since it has to infer images above-the-fold it will probably require some maintenance to keep up with browser changes). |
(sorry didn't mean to close) |
I have expanded the scope of this issue to be feedback on the various website-monitoring reports that have come in during 202302 and 202303. I'll consider this done when we have a first draft that I would feel comfortable sharing with other leaders and not needing to be there to answer/explain it. After that we can develop a separate process for how we report ongoing observations, questions, and suggestions. |
Fresh observations from looking at week 9 Time First Byte
DOMContentLoaded
HTTP vs. Kubo
In practice, here is what I'm suggesting: Feel free to disagree and I'm up for discussing other options. |
Also, what are the thoughts capturing all the meta-details? Per before, we have lots of good/important notes about this topic. I want to make sure we have a durable place for it. This could be in the report itself or listed somewhere else. I think we also need a way where we can capture notes/investigations that were done. I don't think slack threads will scale since it won't make it easy to see prior answers/investigations. Ideally there is a self-surface way for anyone to see what investigations have done for a given week, or what our callouts/observations are for that week. I think that likely means having an accompanying github issue, page, or Notion doc for each weekly report that we link to from the report. Some content will carry forward between reports and that's ok. We also want to make it self-service for someone to know where they ask questions. (I think it's ideally with a comment in the linked doc.). I'm happy to discuss this more. |
Hi @BigLep, sorry for the late reply. I have been working on improving our measurement setup. I spent some time last week putting our website measurement infrastructure on a new foundation and I'm much more confident about the data we are gathering now. I plan to document the setup in this repository (note that we have created a ProbeLab GitHub organization, so this and other private repositories will eventually be migrated to that org). I have also explained my reasoning for the new setup here. Because of this new setup, we don't have enough data to report in this week's report. Some notes regarding the metrics we want to report: Further up in this issue, we focussed on the https://developer.mozilla.org/en-US/docs/Learn/Performance/Perceived_performance To quote the website:
I think the relevant metrics on this list for us are
Besides the above metrics, we should still measure In the above graph you can also see the two timestamps We could instead define The revised measurement setup currently gathers the following data:
We could also include:
I believe we won't be able to report all the above metrics, so if I had the choice between only two, I would choose Just want to note that the ask for week-over-week graphs was not unheard! I'm also working on this and will come back here when I have news. I'll try to address all your remarks from the last comment. Also, I don't have a better place to discuss these things right now. Instead of GH we could use Notion or |
Explained the new website measurement methodology here: https://github.com/dennis-tra/tiros |
Thanks @dennis-tra for the update. InfraGood call on getting good underpinning. Metrics we're reportingAgreed on TTFB since that does measure HTTP vs. non-HTTP and is not dependent on the site's initial HTML payload. It is comparable across sites. Per before, "I don't think with these reports that we want to get into the business of helping site creators realize that their sites could be better optimized or are slow compared to other properties." I'm a bit worried we're heading into these waters by talking about Discussion place for weekly reportsI like the idea of having a discuss post per week (e.g., https://discuss.ipfs.tech/t/ipfs-measurement-report-calendar-week-10-2023/16114/2 ). A couple of things:
|
We (ProbeLab) also discussed this previously and also assume that a subsequent request will likely be served directly via Bitswap. Since we're tracking if it's the first, second, third, etc., request in the Kubo node's lifetime, we could produce a graph that only considers the first requests. The sample size would be very small, though. Alternatively, we could actively disconnect from the content provider after each request. However, I don't think Kubo gives us information from which peer it fetched the data. If that were the case, we could certainly do that. Then we'd always measure the worst-case performance where we'd need to reach out to the DHT (although we could still, by chance, be connected to another providing peer). On another note, we're complementing these website measurements with DHT performance measurements, where we directly measure the publication and lookup latencies.
I also think so, and that's exactly why I argued against the Speed index metric. However, that's also the case for the TTI metric. From the docs:
And a "Long Task":
Especially the list of common examples sounds very website specific to me. I could imagine a SPA spending too much time on the main thread rendering the page. This wouldn't have something to do with Kubo's performance IMO. I think measuring the TTI definitely won't hurt, so I'll try to track it regardless of whether we will eventually report it 👍
Totally! We could also rename "Testing & Experiments" to something like "Measurements" (just to limit the number of categories). Who owns the forum? I believe I don't have the necessary permissions to create new categories.
seems like I can't edit the post anymore :/ will do for the next 👍 |
Thanks @dennis-tra: Kubo nodes having established connections to peers in successive runs
ForumFor now I created a measurements subcategory: https://discuss.ipfs.tech/c/testing-and-experiments/measurements/39 I moved and renamed https://discuss.ipfs.tech/t/ipfs-measurement-report-2023-week-10-2023-03-12/16114 I also gave you moderation access. |
Apologies that I haven't come around to addressing your feedback from here yet. Just want to signal that it's not forgotten 👍
Totally, with our planned probelab website we want to give detailed description about the graphs and their measurement methodology. |
I am not reading the intentions behind tracking these metrics, is it SEO? or just understanding of how these pages perform in real-world? Thoughts:
PS: Can someone create a thread summary for |
Thanks for the feedback @whizzzkid! SEO is not a goal here.
We totally agree that we should not be fiddling around with dev's problems - that's not the goal here. However, we do want to measure performance from the interactions with IPFS. We want to find a metric that would tell us how quickly the website loads from a user's perspective when loading it over IPFS. We are capturing the TTFB, which is an indication, but not the whole story. I didn't look at "web-vitals" yet, but will do. |
I have expanded the scope of this issue to be feedback on the various website-monitoring reports that have come in during 202302 and 202303. I'll consider this done when we have a first draft that I would feel comfortable sharing with other leaders and not needing to be there to answer/explain it. After that we can develop a separate process for how we report ongoing observations, questions, and suggestions.
This concerns https://github.com/protocol/network-measurements/blob/master/reports/2023/calendar-week-7/ipfs/README.md#website-monitoring
First off, thanks for adding this! Good stuff.
A few things that I think would be helpful to document:
Or maybe it would be worth just syncing to whatever set of sites are being pinned to the collab cluster
The text was updated successfully, but these errors were encountered: