Methodology · config v1 · source: file
How the pressure is computed
The Global Internet Pressure Index is a composite observability index between 0 and 100 describing how stressed, unstable, congested, degraded or abnormal the public Internet currently is. It is not scientific truth and it is not an uptime percentage: it is a baseline-relative synthesis of independent telemetry, and every number on this site decomposes into the signals that produced it.
Our own measurements first
- Direct measurements from the InternetPressure Observability Network — our probes (HTTP, TCP, TLS, ICMP, DNS, traceroute) toward a registry of representative targets.
- Open public Internet telemetry — BGP messages from RIPE RIS Live and RouteViews collectors.
- Public raw feeds and polled public infrastructure information.
- External APIs and vendor status pages only as optional corroboration (weight 0.05) — the instrument must remain useful if every commercial API disappears.
Configuration-driven, never hard-coded
| Component | Weight | |
|---|---|---|
| Routing | 0.25 | |
| Latency | 0.20 | |
| DNS | 0.15 | |
| Availability | 0.15 | |
| HTTP/TLS | 0.10 | |
| Path | 0.10 | |
| Corroboration | 0.05 | |
| Σ | 1.00 |
Routing — BGP announcements and withdrawals per second, churn, origin-ASN changes, visibility loss, path instability and collector disagreement. Latency — ICMP RTT, TCP connect, TLS handshake, HTTP time-to-first-byte, inter-region latency, packet loss and jitter, always relative to baseline (20 → 100 ms matters; 100 ms alone does not). DNS — lookup latency, SERVFAIL and timeouts, NXDOMAIN anomalies, resolver disagreement across local, Google, Cloudflare and Quad9 resolvers. Availability — representative endpoints failing from at least two probe regions (single-probe failures are the probe's problem, not the Internet's). HTTP/TLS — 5xx, certificate and handshake failures, resets and timeouts. Path — traceroute fingerprints, hop-count deviation and latency shift on changed paths. Corroboration — incidents publicly declared by major providers.
Signal recipe per component (from the live configuration)
Latency
- HTTP time-to-first-byte vs baseline ttfb_z0.35
- TCP connect latency vs baseline tcp_z0.25
- ICMP round-trip time vs baseline rtt_z0.25
- Packet loss loss0.15
DNS
- DNS SERVFAIL / timeout rate dns_fail_rate0.45
- DNS lookup latency vs baseline dns_latency_z0.30
- Resolver disagreement resolver_disagreement0.25
Availability
- Targets failing from ≥2 probe regions target_down_corroborated0.70
- Failure rate vs baseline fail_rate_z0.30
HTTP/TLS
- HTTP 5xx rate http_5xx_rate0.35
- TLS handshake failures tls_fail_rate0.35
- Connection resets / timeouts reset_timeout_rate0.30
Path
- Route fingerprint changes vs baseline churn route_change_rate0.60
- Hop count deviation hop_count_z0.20
- Latency shift on changed paths path_latency_shift0.20
Routing
- BGP withdrawals/s vs baseline bgp_withdrawals_z0.40
- BGP announcements/s vs baseline bgp_announcements_z0.25
- Origin ASN changes vs baseline bgp_origin_changes_z0.20
- Collector disagreement bgp_collector_disagreement0.15
Corroboration
- Public incidents declared by major providers vendor_incidents1.00
Robust z against a rolling, seasonal baseline
For every signal and scope we keep a trailing baseline of 7 days, restricted to the same hour of day ±1 h once at least 3 days of history exist (normal daily patterns are not pressure). The most recent 600 s are excluded so an incident cannot baseline itself. Anomaly strength is the robust z-score
z = (x − median) / MAD, clipped to [-3, 8]
A (probe, target) pair is abnormal above z = 3. Signals with fewer than 12 samples are “weak coverage” and their weight is damped: no strong conclusions from thin data. Each component sums its weighted signal stresses and saturates into a 0–100 score with score = 100 × (1 − e^(−1.2 × stress)), then the index is the weighted sum of component scores. The engine runs every 10 s over a 120 s window (60 s for BGP rates).
Seven levels, one colour each
| Level | Up to | Meaning |
|---|---|---|
| Calm | 10 | Exceptionally calm |
| Normal | 25 | Normal |
| Elevated | 40 | Elevated |
| Stressed | 55 | Stressed |
| High | 70 | Highly stressed |
| Severe | 85 | Severe disruption |
| Extreme | 100 | Extreme Internet event |
- Calm≤10
- Normal≤25
- Elevated≤40
- Stressed≤55
- High≤70
- Severe≤85
- Extreme≤100
- not observed
Not all networks weigh the same
Each target and ASN carries a Network Importance Score (1–5) reflecting centrality, prefixes, downstream dependency and known services; aggregates weight importance 5 about five times more than importance 1. Event pressure is anomaly strength × affected scope × network importance × confidence. Confidence combines probe count, geographic diversity, signal agreement, BGP corroboration, magnitude, duration and external corroboration. Alongside the index we publish velocity (points per hour), acceleration (per hour²) and volatility so that “high but recovering” is distinguishable from “moderate but worsening”.
Storm systems for the Internet
A Pressure Front is declared when at least 3 source-region → destination-region pairs rise together above z = 2.5 with intensity ≥ 35; it is drawn on the map as a great-circle arc with a direction. Incidents open when a component or regional score exceeds 45 for 2 consecutive cycles (detected → developing), become active after 6, recover below 30 and resolve after 600 s continuously below. Correlation is rule-based first — BGP spike + latency + path change + failures raise confidence together — and hypotheses are always phrased as “possible”, “probable” or “high-confidence”.
Our own failure is never an Internet event
If fewer than 2 probes are fresh (a probe is fresh if it reported within 180 s), if the BGP feed is older than 120 s, or if our stores are unhealthy, the engine freezes the index at its last value and flags internal_status = degraded. The interface then shows a visible “Instrument degraded” state with the freeze time instead of interpreting a frozen number. A probe whose targets fail at ≥ 0.8 at once is excluded — its own uplink is down, not the Internet.
Nothing on this site is animated without a measurement behind it: if one update arrives every 10 s, the numbers move every 10 s. We never randomise values or synthesise events, and pages for countries, ASNs, services and incidents exist only where we hold real data.
Ordinary lightweight client traffic
No scanning, no authentication bypass, no private infrastructure, no exploitation, no excessive traffic, no rate-limit evasion and no personal data. Probes fetch a handful of public endpoints on an adaptive schedule that resembles a normal user, and reveal only an approximate position, provider and ASN. Questions: see the API page or write to contact@spboucher.ai.