Browser Protocol
Browser protocol describes the data format between skywalking-client-js and the backend.
Overview
Browser protocol is defined in gRPC format and exposed in HTTP 1.1 for the browser.
Performance Data Report
Detailed information about data format can be found in BrowserPerf.proto.
POST http://localhost:12800/browser/perfData
Send a performance data object in JSON format.
Input:
{
"service": "web",
"serviceVersion": "v0.0.1",
"pagePath": "/index.html",
"redirectTime": 10,
"dnsTime": 10,
"ttfbTime": 10,
"tcpTime": 10,
"transTime": 10,
"domAnalysisTime": 10,
"fptTime": 10,
"domReadyTime": 10,
"loadPageTime": 10,
"resTime": 10,
"sslTime": 10,
"ttlTime": 10,
"firstPackTime": 10,
}
OutPut:
HTTP Status: 204
POST http://localhost:12800/browser/perfData/webVitals
Send a performance data object in JSON format. Since client-js 1.0.0, the following attached metrics are reported.
Input:
{
"service": "web",
"serviceVersion": "v0.0.1",
"pagePath": "/index.html",
"fmpTime": 10, // Deprecated since skywalking-client-js 1.0. This is no longer recommended. Please use the `useWebVitals` instead.
/* NOTE, Safari does not support all core web vitals, and Firefox does not support `CLS`. */
"clsTime": 10,
"lcpTime": 10,
}
OutPut:
HTTP Status: 204
POST http://localhost:12800/browser/perfData/webInteractions
Send a performance data object in JSON format. Since client-js 1.0.0, the following attached metrics are reported.
Input:
[
{
"service": "web",
"serviceVersion": "v0.0.1",
"pagePath": "/index.html",
"inpTime": 10,
}
]
OutPut:
HTTP Status: 204
POST http://localhost:12800/browser/perfData/resources
Send a static resources data object in JSON format. Since client-js 1.0.0, the following attached metrics are reported.
Input:
[
{
"service": "web",
"serviceVersion": "v0.0.1",
"pagePath": "/index.html",
"name": "vue.js",
"duration": 600,
"size": 100000,
"protocol": "h2",
"type": "script",
}
]
OutPut:
HTTP Status: 204
Error Logs Report
POST http://localhost:12800/browser/errorLogs
Send an error log object list in JSON format.
Input:
[
{
"uniqueId": "55ec6178-3fb7-43ef-899c-a26944407b01",
"service": "web",
"serviceVersion": "v0.0.1",
"pagePath": "/index.html",
"category": "ajax",
"message": "error",
"line": 1,
"col": 1,
"stack": "error",
"errorUrl": "/index.html"
},
{
"uniqueId": "55ec6178-3fb7-43ef-899c-a26944407b02",
"service": "web",
"serviceVersion": "v0.0.1",
"pagePath": "/index.html",
"category": "ajax",
"message": "error",
"line": 1,
"col": 1,
"stack": "error",
"errorUrl": "/index.html"
}
]
OutPut:
HTTP Status: 204
POST http://localhost:12800/browser/errorLog
Send a single error log object in JSON format.
Input:
{
"uniqueId": "55ec6178-3fb7-43ef-899c-a26944407b01",
"service": "web",
"serviceVersion": "v0.0.1",
"pagePath": "/index.html",
"category": "ajax",
"message": "error",
"line": 1,
"col": 1,
"stack": "error",
"errorUrl": "/index.html"
}
OutPut:
HTTP Status: 204
Note, BrowserErrorLog#uniqueId
should be unique in the whole distributed environments.