README.md 3.9 KB
Newer Older
1 2
# Probe Protocol
It includes descriptions and definitions on how agents send collected metrics, logs, traces and events, as well as the format of each entity.
wu-sheng's avatar
wu-sheng 已提交
3

4
## Probe Protocols
W
Wing 已提交
5 6 7
They also related to the probe group. For more information, see [Concepts and Designs](../concepts-and-designs/overview.md).
These groups are **language-based native agent protocol**, **service mesh protocol** and **3rd-party instrument protocol**.

8 9 10 11 12
### Tracing
There are two types of protocols that help language agents work in distributed tracing.

- **Cross Process Propagation Headers Protocol** and **Cross Process Correlation Headers Protocol** come in in-wire data format. Agent/SDK usually uses HTTP/MQ/HTTP2 headers
to carry the data with the RPC request. The remote agent will receive this in the request handler, and bind the context with this specific request. 
W
Wing 已提交
13 14 15 16

[Cross Process Propagation Headers Protocol v3](Skywalking-Cross-Process-Propagation-Headers-Protocol-v3.md) has been the new protocol for in-wire context propagation since the version 8.0.0 release.

[Cross Process Correlation Headers Protocol v1](Skywalking-Cross-Process-Correlation-Headers-Protocol-v1.md) is a new in-wire context propagation protocol which is additional and optional. 
17 18 19
Please read SkyWalking language agents documentation to see whether it is supported.

- **Trace Data Protocol** is an out-of-wire data format. Agent/SDK uses this to send traces to SkyWalking OAP server.
20

W
Wing 已提交
21
[SkyWalking Trace Data Protocol v3](Trace-Data-Protocol-v3.md) defines the communication method and format between the agent and backend.
wu-sheng's avatar
wu-sheng 已提交
22

23 24
### Logging
- **Log Data Protocol** is an out-of-wire data format. Agent/SDK and collector use this to send logs into SkyWalking OAP server.
W
Wing 已提交
25
[SkyWalking Log Data Protocol](Log-Data-Protocol.md) defines the communication method and format between the agent and backend.
26

27 28 29 30 31 32 33 34 35
### Metrics

SkyWalking has native metrics format, and support widely used metric formats such as Prometheus, OpenCensus, and Zabbix.

The native metrics format definition could be found [here](https://github.com/apache/skywalking-data-collect-protocol/blob/master/language-agent/Meter.proto).
Typically, agent meter plugin(e.g. [Java Meter Plugin](https://skywalking.apache.org/docs/skywalking-java/latest/en/setup/service-agent/java-agent/java-plugin-development-guide/#meter-plugin)) and
Satellite [Prometheus fetcher](https://skywalking.apache.org/docs/skywalking-satellite/latest/en/setup/plugins/fetcher_prometheus-metrics-fetcher/)
would transfer metrics into native format and forward to SkyWalking OAP server.

36
About receiving 3rd party formats metrics, read [Meter receiver](../setup/backend/backend-meter.md) and [OpenTelemetry receiver](../setup/backend/opentelemetry-receiver.md) docs for more details.
37

38 39
### Browser probe protocol

W
Wing 已提交
40
The browser probe, such as  [skywalking-client-js](https://github.com/apache/skywalking-client-js), could use this protocol to send data to the backend. This service is provided by gRPC.
41

W
Wing 已提交
42
[SkyWalking Browser Protocol](Browser-Protocol.md) defines the communication method and format between `skywalking-client-js` and backend.
43

44 45
### Events Report Protocol

W
Wing 已提交
46
The protocol is used to report events to the backend. The [doc](../concepts-and-designs/event.md) introduces the definition of an event, and [the protocol repository](https://github.com/apache/skywalking-data-collect-protocol/blob/master/event) defines gRPC services and message formats of events.
47

D
Daming 已提交
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
Report `JSON` format events via HTTP API, the endpoint is `http://<oap-address>:12800/v3/events`.
JSON event record example:
```json
[
    {
        "uuid": "f498b3c0-8bca-438d-a5b0-3701826ae21c",
        "source": {
            "service": "SERVICE-A",
            "instance": "INSTANCE-1"
        },
        "name": "Reboot",
        "type": "Normal",
        "message": "App reboot.",
        "parameters": {},
        "startTime": 1628044330000,
        "endTime": 1628044331000
    }
]
```