-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extending the HTTPArchive Data #112
Comments
@pmeenan @tunetheweb any thoughts on the DNS question? As for JS calls, we've tried to capture that info for specific functions of interest with the observers.js script, but it was breaking some pages' functionality. I never got the time to thoroughly debug it. My hunch is that we'll need to rewrite it to use |
What dns resolution information are you looking for? We have the basic timings from Chrome itself but we also collect dns information for the origin of the main page (CNAME's, authoratative DNS server list and PTR records). They are stored in the page-levej JSON as We have full access to the netlog so we can capture anything the Chrome does that is DNS-related but it's important to remember that it is being measured in a lab environment so we only have visibility into the DNS path that we are using. |
@rviscomi Unfortunately, I don't have a specific example; I found that API in the documentation. Ideally, we should have this information at the request level. Please review this subset, where we have DNS-related information for each request. We can also limit the scope to the origin level, since the results for |
@pmeenan in the netlog I see a dns overview in {
"aliases": [
"consent.cookiebot.com",
"consent.cookiebot.com-v2.edgekey.net",
"e110990.dsca.akamaiedge.net"
],
"canonical_names": [
"e110990.dsca.akamaiedge.net"
],
"endpoint_metadatas": [],
"expiration": "13358745242163846",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "88.221.221.75",
"endpoint_port": 0
},
{
"endpoint_address": "88.221.221.147",
"endpoint_port": 0
}
],
"text_records": []
}
|
@pmeenan I imagine the process to look like this:
cname_by_alias.set('consent.cookiebot.com', 'e110990.dsca.akamaiedge.net')
request.cname = cname_by_alias.get(request.origin) You think it's feasible? Or I could help with the implementation, just don't know where to start. |
Sorry about that - got distracted by some other stuff for a bit. I just added all of the info from HOST_RESOLVER_DNS_TASK to I can add the cache hit case as well if it is needed, but it makes sense to only include the DNS info when a DNS request went out on the wire (at least from how WebPageTest does things). If you're curious, the change was really small: HTTPArchive/wptagent@8332636 It should be live on the HTTP Archive instance now. Sample: "_dns_info": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"www.cloudflare.com"
],
"canonical_names": [
"www.cloudflare.com"
],
"endpoint_metadatas": [
{
"endpoint_metadata_value": {
"ech_config_list": "",
"supported_protocol_alpns": [
"h3",
"h2",
"http/1.1"
],
"target_name": "www.cloudflare.com"
},
"endpoint_metadata_weight": 1
}
],
"expiration": "13362070409287164",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.16.124.96",
"endpoint_port": 0
},
{
"endpoint_address": "104.16.123.96",
"endpoint_port": 0
}
],
"text_records": []
}
}, |
I wasn't sure about DNS cache, thanks for clarifying and extending the object. @pmeenan Would you be able to add this info to $WPT_REQUESTS? |
Right now it would be in the requests data directly in bigquery. If you need to process it to create a custom metric on the client I can put it into $WPT_REQUESTS as well but $WPT_REQUESTS doesn't have good detail for which request triggered a DNS lookup so I'd probably have to add it to every request that matches the host (so there would be duplicate DNS data for every request to the same host). The other option would be to expose it in $WPT_DNS and provide a host-name-indexed dictionary of the info records. |
I decided to go with Should be live on the HA instance now. Trying with a custom metric for cloudflare.com:
{
"https://www.cloudflare.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"www.cloudflare.com"
],
"canonical_names": [
"www.cloudflare.com"
],
"endpoint_metadatas": [
{
"endpoint_metadata_value": {
"ech_config_list": "",
"supported_protocol_alpns": [
"h3",
"h2",
"http/1.1"
],
"target_name": "www.cloudflare.com"
},
"endpoint_metadata_weight": 1
}
],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.16.124.96",
"endpoint_port": 0
},
{
"endpoint_address": "104.16.123.96",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://cf-assets.www.cloudflare.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"cf-assets.www.cloudflare.com"
],
"canonical_names": [
"cf-assets.www.cloudflare.com"
],
"endpoint_metadatas": [
{
"endpoint_metadata_value": {
"ech_config_list": "",
"supported_protocol_alpns": [
"h3",
"h2",
"http/1.1"
],
"target_name": "cf-assets.www.cloudflare.com"
},
"endpoint_metadata_weight": 1
}
],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.16.123.96",
"endpoint_port": 0
},
{
"endpoint_address": "104.16.124.96",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://static.cloudflareinsights.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"static.cloudflareinsights.com"
],
"canonical_names": [
"static.cloudflareinsights.com"
],
"endpoint_metadatas": [
{
"endpoint_metadata_value": {
"ech_config_list": "",
"supported_protocol_alpns": [
"h2",
"http/1.1"
],
"target_name": "static.cloudflareinsights.com"
},
"endpoint_metadata_weight": 1
}
],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.16.79.73",
"endpoint_port": 0
},
{
"endpoint_address": "104.16.80.73",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://performance.radar.cloudflare.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"performance.radar.cloudflare.com"
],
"canonical_names": [
"performance.radar.cloudflare.com"
],
"endpoint_metadatas": [
{
"endpoint_metadata_value": {
"ech_config_list": "",
"supported_protocol_alpns": [
"h3",
"h2",
"http/1.1"
],
"target_name": "performance.radar.cloudflare.com"
},
"endpoint_metadata_weight": 1
}
],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.18.30.78",
"endpoint_port": 0
},
{
"endpoint_address": "104.18.31.78",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://fastly.cedexis-test.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"fastly.cedexis-test.com",
"prod.cedexis-ssl.map.fastly.net"
],
"canonical_names": [
"prod.cedexis-ssl.map.fastly.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "151.101.2.6",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.66.6",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.130.6",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.194.6",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://www.google.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"www.google.com"
],
"canonical_names": [
"www.google.com"
],
"endpoint_metadatas": [
{
"endpoint_metadata_value": {
"ech_config_list": "",
"supported_protocol_alpns": [
"h2",
"h3",
"http/1.1"
],
"target_name": "www.google.com"
},
"endpoint_metadata_weight": 1
}
],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "172.253.62.147",
"endpoint_port": 0
},
{
"endpoint_address": "172.253.62.99",
"endpoint_port": 0
},
{
"endpoint_address": "172.253.62.106",
"endpoint_port": 0
},
{
"endpoint_address": "172.253.62.104",
"endpoint_port": 0
},
{
"endpoint_address": "172.253.62.105",
"endpoint_port": 0
},
{
"endpoint_address": "172.253.62.103",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://ptcfc.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"ptcfc.com"
],
"canonical_names": [
"ptcfc.com"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.16.80.67",
"endpoint_port": 0
},
{
"endpoint_address": "104.16.81.67",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://cedexis-test.akamaized.net": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"a1851.dscw121.akamai.net",
"cedexis-test.akamaized.net"
],
"canonical_names": [
"a1851.dscw121.akamai.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309776",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "23.200.3.235",
"endpoint_port": 0
},
{
"endpoint_address": "23.200.3.238",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://benchmark.1e100cdn.net": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"benchmark.1e100cdn.net"
],
"canonical_names": [
"benchmark.1e100cdn.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "35.190.26.57",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://p29.cedexis-test.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"d1inq1x5xtur5k.cloudfront.net",
"p29.cedexis-test.com"
],
"canonical_names": [
"d1inq1x5xtur5k.cloudfront.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "18.165.98.99",
"endpoint_port": 0
},
{
"endpoint_address": "18.165.98.12",
"endpoint_port": 0
},
{
"endpoint_address": "18.165.98.15",
"endpoint_port": 0
},
{
"endpoint_address": "18.165.98.126",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://essl-cdxs.edgekey.net": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"e31668.a.akamaiedge.net",
"essl-cdxs.edgekey.net"
],
"canonical_names": [
"e31668.a.akamaiedge.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.70.120.186",
"endpoint_port": 0
},
{
"endpoint_address": "104.70.120.211",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://testingcf.jsdelivr.net": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"testingcf.jsdelivr.net",
"testingcf.jsdelivr.net.cdn.cloudflare.net"
],
"canonical_names": [
"testingcf.jsdelivr.net.cdn.cloudflare.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309776",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.18.186.31",
"endpoint_port": 0
},
{
"endpoint_address": "104.18.187.31",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://fastly.jsdelivr.net": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"fastly.jsdelivr.net",
"jsdelivr.map.fastly.net"
],
"canonical_names": [
"jsdelivr.map.fastly.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "151.101.1.229",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.65.229",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.129.229",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.193.229",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://p16999.cedexis-test.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"cedexis-ssl.wpc.apr-b30d.edgecastdns.net",
"cs482.wpc.edgecastcdn.net",
"p16999.cedexis-test.com"
],
"canonical_names": [
"cs482.wpc.edgecastcdn.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "192.229.210.104",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://stackpath-map3.cedexis-test.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"cds.x7t9n8c4.hwcdn.net",
"stackpath-map3.cedexis-test.com"
],
"canonical_names": [
"cds.x7t9n8c4.hwcdn.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309776",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "69.16.175.42",
"endpoint_port": 0
},
{
"endpoint_address": "69.16.175.10",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://p17003.cedexis-test.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"cedexis-1.s.llnwi.net",
"cedexis-1.vo.llnwd.net",
"p17003.cedexis-test.com"
],
"canonical_names": [
"cedexis-1.s.llnwi.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "69.28.134.67",
"endpoint_port": 0
},
{
"endpoint_address": "69.28.134.65",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://serverless-benchmarks-js.compute-pipe.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"serverless-benchmarks-js.compute-pipe.com"
],
"canonical_names": [
"serverless-benchmarks-js.compute-pipe.com"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.18.1.248",
"endpoint_port": 0
},
{
"endpoint_address": "104.18.0.248",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://uniquely-peaceful-hagfish.edgecompute.app": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"ecp.map.fastly.net",
"uniquely-peaceful-hagfish.edgecompute.app"
],
"canonical_names": [
"ecp.map.fastly.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309776",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "151.101.1.51",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.65.51",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.129.51",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.193.51",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://serverless-benchmarks-rust.compute-pipe.com": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"serverless-benchmarks-rust.compute-pipe.com"
],
"canonical_names": [
"serverless-benchmarks-rust.compute-pipe.com"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "104.18.0.248",
"endpoint_port": 0
},
{
"endpoint_address": "104.18.1.248",
"endpoint_port": 0
}
],
"text_records": []
}
},
"https://exactly-huge-arachnid.edgecompute.app": {
"secure": false,
"transactions_needed": [
{
"dns_query_type": "A"
},
{
"dns_query_type": "HTTPS"
}
],
"results": {
"aliases": [
"ecp.map.fastly.net",
"exactly-huge-arachnid.edgecompute.app"
],
"canonical_names": [
"ecp.map.fastly.net"
],
"endpoint_metadatas": [],
"expiration": "13362084114309777",
"host_ports": [],
"hostname_results": [],
"ip_endpoints": [
{
"endpoint_address": "151.101.1.51",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.65.51",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.129.51",
"endpoint_port": 0
},
{
"endpoint_address": "151.101.193.51",
"endpoint_port": 0
}
],
"text_records": []
}
}
} |
@pmeenan In BigQuery is it |
|
I'm curious about the possibility of enhancing our current dataset by incorporating additional data points.
timelineStack
) for JS call stacks, I think it's pretty heavy, but still wonder if we could include it in our data?These types of data are often crucial for web measurement studies. Do you think it's feasible to enrich our data with these?
The text was updated successfully, but these errors were encountered: