seeing >800ms times to console.cloud.google.com with <35ms icmp pings #190

Open
opened 2026-10-25 02:39:29 +01:00 by sneak · 2 comments
Owner
No description provided.
clawbot was assigned by sneak 2026-10-25 02:39:35 +01:00
Collaborator

Recorded as a bug from your own instance. netwatch's manager takes it when work restarts on 25 October.

Definition of done

  • The cause is found and stated in one plain sentence here: why netwatch shows over 800 ms for console.cloud.google.com while ICMP ping to it is under 35 ms.
  • Each figure netwatch shows measures what its label says. A figure that includes DNS lookup, connection setup, TLS, redirects or the response body says so in its label, or the measurement is changed to match the label.
  • From a network where ICMP ping to console.cloud.google.com is under 35 ms, netwatch's latency figure for it is in the same range as a direct measurement of the same thing, such as curl's connect or first-byte time.
  • A test covers the corrected measurement.

Model: opus-5-5

Recorded as a bug from your own instance. netwatch's manager takes it when work restarts on 25 October. ## Definition of done - [ ] The cause is found and stated in one plain sentence here: why netwatch shows over 800 ms for `console.cloud.google.com` while ICMP ping to it is under 35 ms. - [ ] Each figure netwatch shows measures what its label says. A figure that includes DNS lookup, connection setup, TLS, redirects or the response body says so in its label, or the measurement is changed to match the label. - [ ] From a network where ICMP ping to `console.cloud.google.com` is under 35 ms, netwatch's latency figure for it is in the same range as a direct measurement of the same thing, such as `curl`'s connect or first-byte time. - [ ] A test covers the corrected measurement. Model: opus-5-5
Collaborator

Plan. Each figure is the time a no-cors GET from the browser takes until the response headers arrive (measureLatency in web/src/main.js). It includes DNS lookup, connection setup, TLS, server time and every redirect the browser follows. https://console.cloud.google.com answers with a redirect to accounts.google.com, which redirects again to its sign-in page, so the figure includes two redirects and the sign-in page being built; curl from this host gets the first answer in about 120 ms.

One worker, one PR into next, after #191 lands, since both change measureLatency:

  1. Measure the real page in the containerised headless Chrome that script/frontend-viewport-test uses, and compare each figure with curl's connect and first-byte times to the same URL.
  2. Make the figure measure what its label says: probe a URL on each host that answers without a redirect, or change the measurement, or name in the label what the figure includes. The figure for console.cloud.google.com ends up in the range of curl's first-byte time.
  3. Add a test for the corrected measurement to test/unit/main.test.js, keep README.md true, and state the cause here in one plain sentence.

Model: opus-5-5

Plan. Each figure is the time a `no-cors` GET from the browser takes until the response headers arrive (`measureLatency` in `web/src/main.js`). It includes DNS lookup, connection setup, TLS, server time and every redirect the browser follows. `https://console.cloud.google.com` answers with a redirect to `accounts.google.com`, which redirects again to its sign-in page, so the figure includes two redirects and the sign-in page being built; `curl` from this host gets the first answer in about 120 ms. One worker, one PR into `next`, after https://git.eeqj.de/sneak/netwatch/issues/191 lands, since both change `measureLatency`: 1. Measure the real page in the containerised headless Chrome that `script/frontend-viewport-test` uses, and compare each figure with `curl`'s connect and first-byte times to the same URL. 2. Make the figure measure what its label says: probe a URL on each host that answers without a redirect, or change the measurement, or name in the label what the figure includes. The figure for `console.cloud.google.com` ends up in the range of `curl`'s first-byte time. 3. Add a test for the corrected measurement to `test/unit/main.test.js`, keep `README.md` true, and state the cause here in one plain sentence. Model: opus-5-5
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/netwatch#190