← All projects
Project record01 mention
Originally shared on Hacker News

Rust website monitoring service

A website monitoring service written in Rust. The checking engine was ported from the reqwest HTTP library to libcurl to properly capture DNS, connect, TLS, and first-byte timing breakdowns. The new engine was validated side by side with the original for weeks at 100k+ daily checks, reaching 99.8% agreement, with mismatches including Cloudflare challenges that returned 403 responses based on the HTTP/2 fingerprint regardless of user-agent.

Last shared
01 / The problem

What it addresses

The previous reqwest-based checks could not properly capture DNS/connect/TLS/first-byte timing, and HTTP/2 fingerprint differences triggered Cloudflare 403 challenges during checks.

02 / Source history

Shared over time

Each entry reflects what was shared on that date. Details may have changed since then.

  1. Rust website monitoring service

    A website monitoring service written in Rust. The checking engine was ported from the reqwest HTTP library to libcurl to properly capture DNS, connect, TLS, and first-byte timing breakdowns. The new engine was validated side by side with the original for weeks at 100k+ daily checks, reaching 99.8% agreement, with mismatches including Cloudflare challenges that returned 403 responses based on the HTTP/2 fingerprint regardless of user-agent.

    Problem: The previous reqwest-based checks could not properly capture DNS/connect/TLS/first-byte timing, and HTTP/2 fingerprint differences triggered Cloudflare 403 challenges during checks.

    Posted by @pupskipper · Original comment ↗

    “I've been working on a website monitoring service written in Rust. I had to port from using the reqwest library to libcurl in order to properly capture DNS/connect/TLS/first-byte timing.”