Polish the browser doc for client-js 1.0 (#13031)

This commit is contained in:
吴晟 Wu Sheng 2025-02-13 14:18:57 +08:00 committed by GitHub
parent 0cd43544e5
commit 8d9aa67451
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 174 additions and 184 deletions

View File

@ -17,6 +17,9 @@
},
{
"pattern": "^http://people.apache.org/committer-index.html"
},
{
"pattern": "^http://www.gnu.org/software/libc/documentation.html"
}
],
"timeout": "10s",

View File

@ -1,174 +0,0 @@
# HTTP API Protocol
HTTP API Protocol defines the API data format, including API request and response data format.
They use the HTTP1.1 wrapper of the official [SkyWalking Browser Protocol](browser-protocol.md). Read it for more details.
## 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:
```json
{
"service": "web",
"serviceVersion": "v0.0.1",
"pagePath": "/index.html",
"fmpTime": 10,
"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 Log 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/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

View File

@ -4,16 +4,176 @@ Browser protocol describes the data format between [skywalking-client-js](https:
## Overview
Browser protocol is defined and provided in [gRPC format](https://github.com/apache/skywalking-data-collect-protocol/blob/master/browser/BrowserPerf.proto),
and also implemented in [HTTP 1.1](browser-http-api-protocol.md)
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.
### Send performance data and error logs
### Performance Data Report
You can send performance data and error logs using the following services:
Detailed information about data format can be found in [BrowserPerf.proto](https://github.com/apache/skywalking-data-collect-protocol/blob/master/browser/BrowserPerf.proto).
1. `BrowserPerfService#collectPerfData` for performance data format.
1. `BrowserPerfService#collectErrorLogs` for error log format.
#### POST http://localhost:12800/browser/perfData
For error log format, note that:
Send a performance data object in JSON format.
1. `BrowserErrorLog#uniqueId` should be unique in all distributed environments.
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.

View File

@ -110,6 +110,7 @@
* Add Circuit Breaking mechanism doc.
* Add `Get Node List in the Cluster` API doc.
* Remove `meter.md` doc, because `mal.md` has covered all the content.
* Merge `browser-http-api-protocol.md` doc into `browser-protocol.md`.
All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/224?closed=1)

View File

@ -306,9 +306,9 @@ catalog:
catalog:
- name: "Meter APIs"
path: "/en/api/meter"
- name: "Browser performance APIs"
- name: "Browser Performance APIs"
path: "/en/api/browser-protocol"
- name: "JVM metrics APIs"
- name: "JVM Metrics APIs"
path: "/en/api/jvm-protocol"
- name: "Logging"
path: "/en/api/log-data-protocol"