cloudflare / cloudflare/telescope

Get prescriptive about CPU and connection defaults

Open
#303 3 comments 3 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
305
Forks
36
PR merge metrics
No merged PRs in 30d

Description

Obviously it's going to be challenging to get near reproducible results without an isolated test VM environment for CPU throttling and dummynet for network emulation, but it seems like Telescope should try to be a close to emulating a global baseline as possible out of the box.

It's talking my own book perhaps, but perhaps we can use a configuration [similar to the one I recommend](https://infrequently.org/2025/11/performance-inequality-gap-2026/) without much difficulty?

For device emulation, the Galaxy A24 I suggest has the same screen properties as the device listed in the Playwright database as "Galaxy A55":

https://www.gsmarena.com/compare.php3?idPhone1=12176&idPhone2=12824

https://github.com/microsoft/playwright/blob/main/packages/playwright-core/src/server/deviceDescriptorsSource.json#L200

For networking, the "4g" throttle is currently closest to my recommendation of 9mbps/3mbps/100ms at 9/9/85:

https://github.com/cloudflare/telescope/blob/2cb9b5750f8ad451cb70f44ea1278cf36724c9f5/packages/telescope/src/connectivity.ts#L34

Perhaps we can add another version, call it "4g-global" or "2026-baseline" to capture that? Happy to send a change for that.

For CPU, I'm guessing that'll be a bit more involved. Given that we have control via CDP, it looks like we could borrow the throttling logic from DevTools and set targets that way:

https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/panels/mobile_throttling/CalibrationController.ts;l=14?q=calibrat&sq=&ss=chromium%2Fchromium%2Fsrc:third_party%2Fdevtools-frontend%2F

Regardless, it might be worth setting a blanked 4x slowdown to start and get better over time.

Thoughts?

Contributor guide

Open the contributing guide

Research direction

Start by reading packages/telescope/src/connectivity.ts and comparing its existing 4g throttle with the linked Playwright device descriptor and Chromium DevTools CalibrationController references. Done means the agreed global baseline is represented in Telescope, with the CPU-throttling scope and validation approach resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
playwright, typescript
Domain
performance, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.