Network Error Logging reports browsers sent
Failed requests to the organization's sites, from Network Error Logging reports.
A site that sends the Report-To and NEL headers gets a report from a
Chromium browser for every request that failed, including pages that never
loaded and so never ran the tracker. The answer counts them over the
window, per bucket, per error type, per HTTP status code and per host and
path.
Beside each count stands affected_visitors, the distinct visitors behind
it, and per error type the percentiles of the time until the failure. A
visitor is a non-zero stitch, so only sites with store_stitch count
them, and meta.stitchless_site_ids names the sites that do not.
Every count is weighted by 1 / sampling_fraction, the share of failures
the site's NEL header asks browsers to report. meta.sampling describes
that failure sampling and not the application's rate: is_sampled is true
when a report of the window was sampled below 1.0, and estimated_metrics
then names the weighted fields. A status code of 0 means the request got no
HTTP response.
Filters: the site scope, stitch, the report's own report_id,
error_type, nel_class, status_code_range, host, path and
page_url, and the edge-derived
dimensions (country, device_type, browser, os, bot_class,
is_bot, is_datacenter, bot_name, bot_type, datacenter,
ua_anomaly). exclude takes error_type, nel_class, host,
path, page_url and the eight edge labels. Any other filter is a 422 naming it, since an
empty answer would read as "no errors". An entry of paths is a host
and a path value that together match exactly it. Without an
error_type filter every type counts, abandoned included: a visitor who left while a
request loaded, which every site has. exclude: {"error_type": ["abandoned"]}
leaves it out of every count and the path list. nel_class has
no default either.
Authentifizierung
bearerAuth API token generated from the fastmon dashboard (Account → API Token) or at organization level (fmo_…, one that outlives its creator). Send as Authorization: Bearer fm_... or paste the full token (including its prefix) into the Authorize dialog.
In: header
Pfad-Parameter
uuidRequest-Body
application/json
Request for the Network Error Logging reports of the organization's sites.
Response-Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/organizations/497f6eca-6276-4993-bfeb-53cbbbba6f08/analytics/nel" \ -H "Content-Type: application/json" \ -d '{ "time_range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" } }'{ "meta": { "execution_time_ms": 0, "total": 0, "limit": 0, "offset": 0, "has_more": true, "next_cursor": "string", "sampling": { "sampling_rate": 0, "is_sampled": true, "estimated_metrics": [ "string" ] }, "stitchless_site_ids": [ "69469e5a-8ce7-4bbc-8031-8525fff71fc6" ] }, "request": { "time_range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" }, "comparison_time_range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" }, "granularity": "minute", "identity": "stitch", "window_seconds": 0, "filters": {} }, "error_count": 0, "affected_visitors": 0, "errors_by_error_type": { "property1": 0, "property2": 0 }, "elapsed_by_error_type": { "property1": { "p50_ms": 0, "p75_ms": 0, "p95_ms": 0 }, "property2": { "p50_ms": 0, "p75_ms": 0, "p95_ms": 0 } }, "errors_by_status_code": { "property1": 0, "property2": 0 }, "series": [ { "timestamp": "2019-08-24T14:15:22Z", "error_count": 0, "errors_by_error_type": { "property1": 0, "property2": 0 }, "errors_by_status_code": { "property1": 0, "property2": 0 }, "affected_visitors": 0 } ], "paths": [ { "host": "string", "path": "string", "error_count": 0, "errors_by_status_code": { "property1": 0, "property2": 0 }, "affected_visitors": 0 } ]}