180 lines
3.6 KiB
Markdown
180 lines
3.6 KiB
Markdown
# Browser Protocol
|
|
|
|
Browser protocol describes the data format between [skywalking-client-js](https://github.com/apache/skywalking-client-js) and the backend.
|
|
|
|
## Overview
|
|
|
|
Browser protocol is defined in [gRPC format](https://github.com/apache/skywalking-data-collect-protocol/blob/master/browser/BrowserPerf.proto) and
|
|
exposed in HTTP 1.1 for the browser.
|
|
|
|
### Performance Data Report
|
|
|
|
Detailed information about data format can be found in [BrowserPerf.proto](https://github.com/apache/skywalking-data-collect-protocol/blob/master/browser/BrowserPerf.proto).
|
|
|
|
#### POST http://localhost:12800/browser/perfData
|
|
|
|
Send a performance data object in JSON format.
|
|
|
|
Input:
|
|
|
|
```json
|
|
{
|
|
"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:
|
|
|
|
```json5
|
|
{
|
|
"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:
|
|
|
|
```json
|
|
[
|
|
{
|
|
"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:
|
|
|
|
```json
|
|
[
|
|
{
|
|
"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:
|
|
|
|
```json
|
|
[
|
|
{
|
|
"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:
|
|
|
|
```json
|
|
{
|
|
"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.
|