skywalking-java/docs/en/protocols/README.md

1.9 KiB

Protocols

There are two types of protocols list here.

  • Probe Protocol. Include the descriptions and definitions about how agent send collected metric data and traces, also the formats of each entities.

  • Query Protocol. The backend provide query capability to SkyWalking own UI and others. These queries are based on GraphQL.

Probe Protocols

They also related to the probe group, for understand that, look Concepts and Designs document. These groups are Language based native agent protocol, Service Mesh protocol and 3rd-party instrument protocol.

Language based native agent protocol

This protocol is combined from two parts:

Service Mesh probe protocol

The probe in sidecar or proxy could use this protocol to send data to backendEnd. This service provided by gRPC, requires the following key info:

  1. Service Name or ID at both sides.
  2. Service Instance Name or ID at both sides.
  3. Endpoint. URI in HTTP, service method full signature in gRPC.
  4. Latency. In milliseconds.
  5. Response code in HTTP
  6. Status. Success or fail.
  7. Protocol. HTTP, gRPC
  8. DetectPoint. In Service Mesh sidecar, client or server. In normal L7 proxy, value is proxy.

3rd-party instrument protocol

3rd-party instrument protocols are not defined by SkyWalking. They are just protocols/formats, which SkyWalking is compatible and could receive from their existed libraries. SkyWalking starts with supporting Zipkin v1, v2 data formats.

Backend is based on modulization principle, so very easy to extend a new receiver to support new protocol/format.