Traced local_db (bgp_routes/rpki_roas) 2026-07-17: two systemd import timers on Erik have run "successfully" daily since creation (2026-04-28) while doing zero real work -- bgp-importer's Route Views source URL is invalid (parses 0 routes every run, the 36 rows are a one-time manual seed), rpki-importer's feed URLs are both dead and it silently falls back to 5 hardcoded fake ROAs re-upserted daily. The watchdog meant to catch this has itself failed every run since creation (Postgres auth error), so nothing ever alerted. No user-facing endpoint reads from local_db -- only this health check and the unused /api/bgp route do. Gating overall `status` on bgp_routes/rpki_roas row counts meant /api/health reported "degraded" permanently for a dependency nothing actually needs, which could mask a real future degradation behind the noise. Still reports the raw local_db stats (including its own `healthy` sub-field) for diagnostic visibility; only removed it from the top-level status gate. Verified live on Erik: status now reports "ok" when RPKI/ASPA freshness is fine, instead of permanently "degraded".
855 lines
20 KiB
JSON
855 lines
20 KiB
JSON
{
|
|
"root": {
|
|
"status": 500,
|
|
"body": {
|
|
"__non_json__": true,
|
|
"status": 500,
|
|
"bodyLength": 20
|
|
}
|
|
},
|
|
"search": {
|
|
"status": 200,
|
|
"body": {
|
|
"q": "cloudflare",
|
|
"results": [
|
|
{
|
|
"asn": "13335",
|
|
"label": "CLOUDFLARENET - Cloudflare, Inc.",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "14789",
|
|
"label": "CLOUDFLARENET - Cloudflare, Inc.",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "132892",
|
|
"label": "CLOUDFLARE - Cloudflare, Inc.",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "133877",
|
|
"label": "CLOUDFLARE - Cloudflare, Inc.",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "202623",
|
|
"label": "CLOUDFLARENET-CORE Cloudflare Inc",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "203898",
|
|
"label": "CLOUDFLARENET-UK Cloudflare Inc",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "209242",
|
|
"label": "CLOUDFLARESPECTRUM Cloudflare London, LLC",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "394536",
|
|
"label": "CLOUDFLARENET-SFO - Cloudflare, Inc.",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "395747",
|
|
"label": "CLOUDFLARENET-SFO05 - Cloudflare, Inc.",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "400095",
|
|
"label": "CLOUDFLARENET - Cloudflare, Inc.",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "402542",
|
|
"label": "CLOUDFLARENET - Cloudflare,",
|
|
"description": "",
|
|
"source": "RIPE Stat"
|
|
},
|
|
{
|
|
"asn": "4436",
|
|
"label": "GTT Communications (AS4436)",
|
|
"description": "NSP",
|
|
"source": "PeeringDB"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"visitors": {
|
|
"status": 200,
|
|
"body": {
|
|
"visitors": 1
|
|
}
|
|
},
|
|
"health": {
|
|
"status": 200,
|
|
"body": {
|
|
"status": "ok",
|
|
"service": "PeerCortex",
|
|
"version": "0.6.9",
|
|
"bgproutes_configured": false,
|
|
"caches": {
|
|
"aspa_map": {},
|
|
"pdb_net": {
|
|
"entries": 0,
|
|
"hit_rate_pct": 0
|
|
},
|
|
"pdb_netixlan": {
|
|
"entries": 0
|
|
},
|
|
"pdb_netfac": {
|
|
"entries": 0
|
|
},
|
|
"ripe_stat": {
|
|
"entries": 0
|
|
},
|
|
"response_cache": {
|
|
"entries": 0
|
|
}
|
|
},
|
|
"local_db": null,
|
|
"aspa_adoption": {}
|
|
}
|
|
},
|
|
"aspa-verify": {
|
|
"status": 200,
|
|
"body": {
|
|
"meta": {
|
|
"query": "AS13335",
|
|
"paths_analyzed": 0,
|
|
"total_paths_seen": 0
|
|
},
|
|
"asn": 13335,
|
|
"readiness_score": {
|
|
"total": 0,
|
|
"breakdown": {
|
|
"roa_coverage": {
|
|
"score": 0,
|
|
"max": 25,
|
|
"value": 0
|
|
},
|
|
"aspa_object": {
|
|
"score": 0,
|
|
"max": 25,
|
|
"value": false
|
|
},
|
|
"provider_completeness": {
|
|
"score": 0,
|
|
"max": 25,
|
|
"value": 0
|
|
},
|
|
"path_validation": {
|
|
"score": 0,
|
|
"max": 25,
|
|
"value": 0
|
|
}
|
|
}
|
|
},
|
|
"aspa_object_exists": false,
|
|
"aspa_feed_healthy": true,
|
|
"detected_providers": [],
|
|
"provider_audit": {
|
|
"declared_count": 0,
|
|
"detected_count": 0,
|
|
"completeness_pct": 0,
|
|
"missing_from_aspa": [],
|
|
"extra_in_aspa": []
|
|
},
|
|
"path_verification": {
|
|
"total": 0,
|
|
"valid": 0,
|
|
"invalid": 0,
|
|
"unknown": 0,
|
|
"as_set_flagged": 0,
|
|
"valley_detected": 0,
|
|
"valid_pct": 0,
|
|
"not_invalid_pct": 0,
|
|
"results": []
|
|
},
|
|
"rpki_coverage": 0
|
|
}
|
|
},
|
|
"aspa-legacy": {
|
|
"status": 200,
|
|
"body": {
|
|
"meta": {
|
|
"query": "AS13335"
|
|
},
|
|
"asn": 13335,
|
|
"detected_providers": [],
|
|
"provider_count": 0,
|
|
"aspa_object_exists": false,
|
|
"aspa_feed_healthy": true,
|
|
"aspa_declared_providers": [],
|
|
"aspa_declared_count": 0,
|
|
"recommended_aspa": "aut-num: AS13335\n# Recommended ASPA object:\n# customer: AS13335\n# provider-set: \n# AFI: ipv4, ipv6\n#\n# Detected providers from BGP path analysis:\n",
|
|
"path_analysis": {
|
|
"total_paths_seen": 0,
|
|
"sample_paths": []
|
|
}
|
|
}
|
|
},
|
|
"bgp": {
|
|
"status": 200,
|
|
"body": {
|
|
"meta": {
|
|
"source": "local_bgp_db"
|
|
},
|
|
"bgp_status": {
|
|
"asn": "13335",
|
|
"announced": false,
|
|
"announced_count": 0,
|
|
"message": "No prefixes found for this ASN in local BGP table",
|
|
"source": "local_bgp"
|
|
},
|
|
"threat_intel": null
|
|
}
|
|
},
|
|
"validate": {
|
|
"status": 200,
|
|
"body": {
|
|
"meta": {
|
|
"query": "AS13335",
|
|
"total_prefixes": 0,
|
|
"prefixes_sampled": 0
|
|
},
|
|
"asn": 13335,
|
|
"name": "Unknown",
|
|
"validations": {
|
|
"irr": {
|
|
"status": "info",
|
|
"message": "timed out"
|
|
},
|
|
"rpki_completeness": {
|
|
"status": "fail",
|
|
"coverage_pct": 0,
|
|
"total_checked": 0,
|
|
"db_unavailable_count": 0,
|
|
"with_roa": 0,
|
|
"over_specific": [],
|
|
"details": []
|
|
},
|
|
"abuse_contact": {
|
|
"status": "pass",
|
|
"contacts": [
|
|
"abuse@cloudflare.com"
|
|
],
|
|
"has_valid_email": true
|
|
},
|
|
"blocklist": {
|
|
"status": "pass",
|
|
"checked": 0,
|
|
"unavailable": 0,
|
|
"listed_prefixes": []
|
|
},
|
|
"manrs": {
|
|
"status": "info",
|
|
"participant": "unknown",
|
|
"message": "MANRS data not yet loaded",
|
|
"note": "https://www.manrs.org/netops/participants/"
|
|
},
|
|
"rdns": {
|
|
"status": "fail",
|
|
"coverage_pct": 0,
|
|
"checked": 0,
|
|
"unavailable": 0,
|
|
"results": [],
|
|
"failed_prefixes": []
|
|
},
|
|
"communities": {
|
|
"status": "pass",
|
|
"total_updates": 0,
|
|
"unique_communities": 0,
|
|
"top_communities": [],
|
|
"well_known_detected": []
|
|
},
|
|
"geolocation": {
|
|
"status": "warning",
|
|
"geo_countries": [],
|
|
"sample_prefix": null,
|
|
"located_resources": 0,
|
|
"pdb_facility_countries": [],
|
|
"country_mismatches": []
|
|
},
|
|
"rpsl": {
|
|
"status": "info",
|
|
"message": "timed out"
|
|
},
|
|
"ix_route_server": {
|
|
"status": "warning",
|
|
"total_ix_connections": 0,
|
|
"rs_peer_count": 0,
|
|
"rs_peer_pct": 0,
|
|
"note": "Only 0 IX connection(s) and no route server usage"
|
|
},
|
|
"resource_cert": {
|
|
"status": "fail",
|
|
"has_roas": false,
|
|
"checked": 0
|
|
},
|
|
"bogon": {
|
|
"status": "pass",
|
|
"bogon_prefixes": [],
|
|
"bogon_asns_in_paths": [],
|
|
"total_prefixes_checked": 0,
|
|
"prefixes_source_unavailable": false,
|
|
"neighbours_source_unavailable": true
|
|
}
|
|
},
|
|
"relationships": {
|
|
"counts": {
|
|
"upstreams": 0,
|
|
"downstreams": 0,
|
|
"peers": 0,
|
|
"uncertain": 0
|
|
},
|
|
"upstreams": [],
|
|
"downstreams": [],
|
|
"top_peers": [],
|
|
"source": "RIPE Stat asn-neighbours",
|
|
"note": "left=upstream providers, right=downstream customers, uncertain=peers. Sorted by power score."
|
|
}
|
|
}
|
|
},
|
|
"lookup": {
|
|
"status": 200,
|
|
"body": {
|
|
"meta": {
|
|
"service": "PeerCortex",
|
|
"version": "0.6.9",
|
|
"query": "AS13335",
|
|
"sources": [
|
|
"PeeringDB",
|
|
"RIPE Stat",
|
|
"bgp.he.net",
|
|
"Cloudflare RPKI",
|
|
"RIPE RPKI Validator",
|
|
"Route Views"
|
|
],
|
|
"rpki_prefixes_checked": 0,
|
|
"total_prefixes": 0,
|
|
"degraded_sources": [
|
|
"RIPE Stat Neighbours",
|
|
"RIPE Stat Overview",
|
|
"RIPE Stat Visibility",
|
|
"RIPE Stat PrefixSize"
|
|
]
|
|
},
|
|
"network": {
|
|
"asn": 13335,
|
|
"name": "Unknown",
|
|
"aka": "",
|
|
"org_name": "",
|
|
"website": "",
|
|
"type": "",
|
|
"policy": "",
|
|
"traffic": "",
|
|
"ratio": "",
|
|
"scope": "",
|
|
"notes": "",
|
|
"peeringdb_id": null,
|
|
"rir": "ARIN",
|
|
"country": "",
|
|
"city": "",
|
|
"latitude": null,
|
|
"longitude": null,
|
|
"looking_glass": "",
|
|
"route_server": "",
|
|
"info_prefixes4": 0,
|
|
"info_prefixes6": 0,
|
|
"status": "",
|
|
"peeringdb_created": "",
|
|
"peeringdb_updated": ""
|
|
},
|
|
"prefixes": {
|
|
"total": 0,
|
|
"ipv4": 0,
|
|
"ipv6": 0,
|
|
"list": [],
|
|
"cross_check": {
|
|
"ripe_stat": 0,
|
|
"bgp_he_net": null,
|
|
"agreement": null,
|
|
"note": "bgp.he.net data unavailable"
|
|
}
|
|
},
|
|
"rpki": {
|
|
"coverage_percent": 0,
|
|
"valid": 0,
|
|
"invalid": 0,
|
|
"not_found": 0,
|
|
"unavailable": 0,
|
|
"checked": 0,
|
|
"details": [],
|
|
"cross_check": {
|
|
"cloudflare_valid": 0,
|
|
"ripe_valid": 0,
|
|
"agreement_pct": null,
|
|
"disagreements": [],
|
|
"sample_size": 0,
|
|
"comparable_size": 0
|
|
}
|
|
},
|
|
"neighbours": {
|
|
"total": 0,
|
|
"upstream_count": 0,
|
|
"downstream_count": 0,
|
|
"peer_count": 0,
|
|
"upstreams": [],
|
|
"downstreams": [],
|
|
"peers": [],
|
|
"cross_check": {
|
|
"ripe_stat_total": 0,
|
|
"bgp_he_net_total": null
|
|
}
|
|
},
|
|
"ix_presence": {
|
|
"total_connections": 0,
|
|
"unique_ixps": 0,
|
|
"connections": []
|
|
},
|
|
"ix_locations": [],
|
|
"facilities": {
|
|
"total": 0,
|
|
"list": []
|
|
},
|
|
"routing": {
|
|
"ipv4_prefixes": 0,
|
|
"ipv6_prefixes": 0,
|
|
"ipv4_visibility_avg": 0,
|
|
"ipv6_visibility_avg": 0,
|
|
"total_ris_peers_v4": 0,
|
|
"total_ris_peers_v6": 0,
|
|
"prefix_sizes_v4": [],
|
|
"prefix_sizes_v6": []
|
|
},
|
|
"resilience_score": null,
|
|
"route_leak": {
|
|
"detected": false,
|
|
"patterns": [],
|
|
"tier1_upstream_count": 0,
|
|
"tier1_downstream_count": 0,
|
|
"_provenance": {
|
|
"source": "RIPE Stat asn-neighbours",
|
|
"validation": "heuristic",
|
|
"confidence": "medium",
|
|
"note": "Pattern-based detection only. Not real-time (15-min RIPE RIS snapshot). False positives possible for large networks with legitimate Tier-1 relationships."
|
|
}
|
|
},
|
|
"bgp_he_net": null,
|
|
"atlas": {
|
|
"connected": 0,
|
|
"disconnected": 0,
|
|
"anchors": 0,
|
|
"probes": []
|
|
},
|
|
"data_quality": {
|
|
"sources_queried": [
|
|
"PeeringDB",
|
|
"RIPE Stat",
|
|
"bgp.he.net",
|
|
"Cloudflare RPKI",
|
|
"RIPE RPKI Validator"
|
|
],
|
|
"cross_checks": {
|
|
"rpki": {
|
|
"sources": 1,
|
|
"agreement_pct": null,
|
|
"sample_size": 0,
|
|
"comparable_size": 0,
|
|
"disagreements": []
|
|
},
|
|
"prefixes": {
|
|
"sources": 1,
|
|
"agreement_pct": null,
|
|
"ripe_stat": 0,
|
|
"bgp_he_net": null,
|
|
"note": "bgp.he.net data unavailable"
|
|
},
|
|
"neighbours": {
|
|
"sources": 1,
|
|
"agreement_pct": null,
|
|
"ripe_stat_total": 0,
|
|
"bgp_he_net_total": null
|
|
}
|
|
},
|
|
"overall_confidence": "unknown",
|
|
"overall_agreement_pct": null
|
|
},
|
|
"contacts": [],
|
|
"registration": {
|
|
"created": "2010-07-14",
|
|
"last_modified": "2017-02-17",
|
|
"rir": "ARIN",
|
|
"handle": "AS13335",
|
|
"rdap_source": "whois.arin.net"
|
|
},
|
|
"_provenance": {
|
|
"prefixes": {
|
|
"source": "RIPE Stat announced-prefixes",
|
|
"validation": "cross-validated",
|
|
"confidence": "high",
|
|
"note": "Cross-checked with bgp.he.net prefix count daily"
|
|
},
|
|
"neighbours": {
|
|
"source": "RIPE Stat asn-neighbours",
|
|
"validation": "cross-validated",
|
|
"confidence": "high",
|
|
"note": "Cross-checked with bgp.he.net peer count daily"
|
|
},
|
|
"rpki": {
|
|
"source": "Cloudflare RPKI + RIPE Validator",
|
|
"validation": "cross-validated",
|
|
"confidence": "high",
|
|
"note": "Two independent RPKI sources compared"
|
|
},
|
|
"ix_presence": {
|
|
"source": "PeeringDB netixlan (local mirror)",
|
|
"validation": "cross-validated",
|
|
"confidence": "high",
|
|
"note": "PeeringDB mirror refreshed daily"
|
|
},
|
|
"facilities": {
|
|
"source": "PeeringDB netfac (local mirror)",
|
|
"validation": "single-source",
|
|
"confidence": "medium"
|
|
},
|
|
"bgp_he_net": {
|
|
"source": "bgp.he.net HTML scrape",
|
|
"validation": "single-source",
|
|
"confidence": "medium",
|
|
"note": "HTML scrape, no official API — may have parsing drift"
|
|
},
|
|
"atlas": {
|
|
"source": "RIPE Atlas API",
|
|
"validation": "single-source",
|
|
"confidence": "medium",
|
|
"note": "Probe availability varies by region"
|
|
},
|
|
"resilience_score": {
|
|
"source": "Computed from RIPE Stat + PeeringDB",
|
|
"validation": "computed",
|
|
"confidence": "high",
|
|
"note": "All inputs cross-validated daily"
|
|
},
|
|
"route_leak": {
|
|
"source": "RIPE Stat asn-neighbours heuristic",
|
|
"validation": "heuristic",
|
|
"confidence": "medium",
|
|
"note": "Pattern-based, not real-time — false positives possible"
|
|
},
|
|
"registration": {
|
|
"source": "RDAP (RIR registry)",
|
|
"validation": "single-source",
|
|
"confidence": "high"
|
|
},
|
|
"contacts": {
|
|
"source": "PeeringDB POC API",
|
|
"validation": "single-source",
|
|
"confidence": "medium",
|
|
"note": "Subject to PeeringDB rate limiting"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"relationships": {
|
|
"status": 200,
|
|
"body": {
|
|
"asn": 13335,
|
|
"counts": {
|
|
"upstreams": 0,
|
|
"downstreams": 0,
|
|
"peers_total": 0,
|
|
"uncertain": 0
|
|
},
|
|
"upstreams": [],
|
|
"downstreams": [],
|
|
"peers": [],
|
|
"methodology": "RIPE Stat asn-neighbours API. left=upstream providers (carry your traffic), right=downstream customers (you carry their traffic), uncertain=lateral peers. Sorted by power score (number of prefixes seen via this relationship).",
|
|
"source_url": "https://stat.ripe.net/data/asn-neighbours/data.json?resource=AS13335"
|
|
}
|
|
},
|
|
"compare": {
|
|
"status": 200,
|
|
"body": {
|
|
"meta": {},
|
|
"asn1": {
|
|
"asn": 13335,
|
|
"name": "Unknown",
|
|
"ix_count": 0,
|
|
"fac_count": 0,
|
|
"upstream_count": 0,
|
|
"rpki_coverage": 0
|
|
},
|
|
"asn2": {
|
|
"asn": 15169,
|
|
"name": "Unknown",
|
|
"ix_count": 0,
|
|
"fac_count": 0,
|
|
"upstream_count": 0,
|
|
"rpki_coverage": 0
|
|
},
|
|
"common_ixps": [],
|
|
"only_asn1_ixps": [],
|
|
"only_asn2_ixps": [],
|
|
"common_facilities": [],
|
|
"common_upstreams": [],
|
|
"rpki_comparison": {
|
|
"asn1_coverage": 0,
|
|
"asn2_coverage": 0,
|
|
"asn1_checked": 0,
|
|
"asn2_checked": 0,
|
|
"better": "equal"
|
|
}
|
|
}
|
|
},
|
|
"quick-ix": {
|
|
"status": 200,
|
|
"body": {
|
|
"asn": 13335
|
|
}
|
|
},
|
|
"peers-find": {
|
|
"status": 400,
|
|
"body": {
|
|
"error": "Missing ix parameter (IX name)"
|
|
}
|
|
},
|
|
"prefix-detail": {
|
|
"status": 200,
|
|
"body": {
|
|
"meta": {},
|
|
"prefix": "1.1.1.0/24",
|
|
"rpki": {
|
|
"status": "unknown",
|
|
"validating_roas": 0
|
|
},
|
|
"irr_status": "found",
|
|
"visibility": {
|
|
"ris_peers_seeing": 0,
|
|
"source": "ripe_stat"
|
|
}
|
|
}
|
|
},
|
|
"ix-detail": {
|
|
"status": 400,
|
|
"body": {
|
|
"error": "Missing ix_id parameter"
|
|
}
|
|
},
|
|
"topology": {
|
|
"status": 200,
|
|
"body": {
|
|
"nodes": [
|
|
{
|
|
"asn": 13335,
|
|
"name": "",
|
|
"type": "target",
|
|
"depth": 0
|
|
}
|
|
],
|
|
"edges": [],
|
|
"target_asn": 13335,
|
|
"depth": 2,
|
|
"meta": {
|
|
"query": "AS13335",
|
|
"depth": 2,
|
|
"node_count": 1,
|
|
"edge_count": 0
|
|
}
|
|
}
|
|
},
|
|
"whois": {
|
|
"status": 400,
|
|
"body": {
|
|
"error": "Missing resource parameter (ASN, prefix, or domain)"
|
|
}
|
|
},
|
|
"enrich": {
|
|
"status": 200,
|
|
"body": {
|
|
"asn": "13335",
|
|
"description": null,
|
|
"wiki_url": null
|
|
}
|
|
},
|
|
"changelog": {
|
|
"status": 500,
|
|
"body": {
|
|
"__non_json__": true,
|
|
"status": 500,
|
|
"bodyLength": 23
|
|
}
|
|
},
|
|
"webhooks-list": {
|
|
"status": 200,
|
|
"body": {
|
|
"webhooks": [],
|
|
"total": 0
|
|
}
|
|
},
|
|
"hijacks-list": {
|
|
"status": 200,
|
|
"body": {}
|
|
},
|
|
"hijack-alerts": {
|
|
"status": 200,
|
|
"body": {
|
|
"asn": "",
|
|
"monitoring": false,
|
|
"prefix_count": 0
|
|
}
|
|
},
|
|
"aspa-adoption-page": {
|
|
"status": 200,
|
|
"body": {
|
|
"__non_json__": true,
|
|
"status": 200
|
|
}
|
|
},
|
|
"aspa-adoption-stats": {
|
|
"status": 200,
|
|
"body": {
|
|
"period": "30d",
|
|
"current": {
|
|
"date": "2026-07-17"
|
|
},
|
|
"trend": [
|
|
{
|
|
"date": "2026-06-17"
|
|
},
|
|
{
|
|
"date": "2026-06-18"
|
|
},
|
|
{
|
|
"date": "2026-06-19"
|
|
},
|
|
{
|
|
"date": "2026-06-20"
|
|
},
|
|
{
|
|
"date": "2026-06-21"
|
|
},
|
|
{
|
|
"date": "2026-06-22"
|
|
},
|
|
{
|
|
"date": "2026-06-23"
|
|
},
|
|
{
|
|
"date": "2026-06-24"
|
|
},
|
|
{
|
|
"date": "2026-06-25"
|
|
},
|
|
{
|
|
"date": "2026-06-26"
|
|
},
|
|
{
|
|
"date": "2026-06-27"
|
|
},
|
|
{
|
|
"date": "2026-06-28"
|
|
},
|
|
{
|
|
"date": "2026-06-29"
|
|
},
|
|
{
|
|
"date": "2026-06-30"
|
|
},
|
|
{
|
|
"date": "2026-07-01"
|
|
},
|
|
{
|
|
"date": "2026-07-02"
|
|
},
|
|
{
|
|
"date": "2026-07-03"
|
|
},
|
|
{
|
|
"date": "2026-07-04"
|
|
},
|
|
{
|
|
"date": "2026-07-05"
|
|
},
|
|
{
|
|
"date": "2026-07-06"
|
|
},
|
|
{
|
|
"date": "2026-07-07"
|
|
},
|
|
{
|
|
"date": "2026-07-08"
|
|
},
|
|
{
|
|
"date": "2026-07-09"
|
|
},
|
|
{
|
|
"date": "2026-07-10"
|
|
},
|
|
{
|
|
"date": "2026-07-11"
|
|
},
|
|
{
|
|
"date": "2026-07-12"
|
|
},
|
|
{
|
|
"date": "2026-07-13"
|
|
},
|
|
{
|
|
"date": "2026-07-14"
|
|
},
|
|
{
|
|
"date": "2026-07-15"
|
|
},
|
|
{
|
|
"date": "2026-07-16"
|
|
},
|
|
{
|
|
"date": "2026-07-17"
|
|
}
|
|
],
|
|
"meta": {
|
|
"total_snapshots": 80,
|
|
"denominator": "atlas_visible_asns",
|
|
"source": "rpki_cloudflare_feed"
|
|
}
|
|
}
|
|
},
|
|
"ipv6-adoption-stats": {
|
|
"status": 200,
|
|
"body": {}
|
|
},
|
|
"atlas-coverage": {
|
|
"status": 200,
|
|
"body": {
|
|
"pages_fetched": 30
|
|
}
|
|
},
|
|
"submarine-cables": {
|
|
"status": 502,
|
|
"body": {
|
|
"error": "API server unavailable",
|
|
"detail": "connect ECONNREFUSED 127.0.0.1:39102"
|
|
}
|
|
},
|
|
"communities": {
|
|
"status": 502,
|
|
"body": {
|
|
"error": "API server unavailable",
|
|
"detail": "connect ECONNREFUSED 127.0.0.1:39102"
|
|
}
|
|
}
|
|
} |