Commit f80b0312 authored by 吴晟's avatar 吴晟
Browse files

Add many new chapters of v6 document. Make the document more clear.

parent 1b0d80c5
Loading
Loading
Loading
Loading
+0 −43
Original line number Diff line number Diff line
# Observability Analysis Platform Cluster Management
OAP(Observability Analysis Platform) backend is a distributed system, services need to find each 
other. i.e. a web service needs to find query service, level 1 aggregate service need to find 
level 2 aggregate service. Cluster management is just a client-side implementation. It must work 
together with a distributed coordination service, (i.e. Zookeeper, Consul, Kubernetes.) unless 
running in standalone mode.

## Architecture overview
<img src="https://skywalkingtest.github.io/page-resources/6.0.0-alpha/cluster_management.png"/>

### Cluster Management Plugins
By default, OAP backend provides two implementations for cluster management, which are standalone 
and zookeeper. When the scale of services, which are under monitoring, is small, you can choose 
the standalone mode. Otherwise, you must choose the cluster mode by zookeeper plugin, or you can 
implement a new service discovery plugin for your own scene.

### Cluster Management Interface
There are two interfaces defined beforehand in the OAP server core, which are Module register and 
module query, all the cluster management plugins must implement those two interfaces.

* Module Register: When any modules need to provide services for others, the module must do register 
through this interface.
* Module Query: When any module needs to find other services, it can use this interface to retrieve 
the service instance list in the certain order.

### Process Flow Between Client and Cluster Management
The client has two ways to connect the backend, one, use the direct link by a set of backend instance 
endpoint list, or you can use naming service, which considers your given list is just the seed nodes 
of the whole cluster. The following graph is showing you how naming service works. You need to check 
the probe documents to know which way(s) is(are) supported.
```
         Client lib                         Collector1             Collector2              Collector3
 (Set collector.servers=Collector2)              (Collector 1,2,3 constitute the cluster)
             |
             +-----------> naming service ---------------------------->|
                                                                       |
             |<------- receive gRPC IP:Port(s) of Collector 1,2,3---<--|
             |
             |Select a random gRPC service
             |For example collector 3
             |
             |------------------------->Uplink gRPC service----------------------------------->|
```
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ SpanLayer is the catalog of span. Here are 5 values:
1. MQ

Component IDs are defined and reserved by SkyWalking project.
For component name/ID extension, please follow [component library setting document](../../backend/Component-library-settings.md).
For component name/ID extension, please follow [component library setting document](../setup/backend/Component-library-settings.md).

## Develop a plugin
### Abstract
+3 −2
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ breaking any Apache rule.
SkyWalking project supports many ways to extends existing features. If you are interesting in these ways,
read the following guides.

- [Java agent plugin development guide](../setup/service-agent/java-agent/Plugin-Development-Guide.md).
- [Java agent plugin development guide](Java-Plugin-Development-Guide.md).
This guide helps you to develop SkyWalking agent plugin to support more frameworks. Both open source plugin
and private plugin developer should read this. 
- [Storage extension development guide](storage-extention.md)
+3 −0
Original line number Diff line number Diff line
# Extend storage
SkyWalking has already provided H2 and ElasticSearch as storage solutions. In this document, you could 
learn how to implement a new storage easily. 
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ v2.0
[gRPC service define](https://github.com/apache/incubator-skywalking-data-collect-protocol/blob/v2.0/TraceSegmentService.proto)

- UniqueId represents segmentId and globalTraceId. It have 3 parts(Longs), 1) applicationInstanceId, 2) ThreadId, 3) Timestamp + 10000 + seq(seq is in [0, 100000) )
- Span data please refs to [Plugin Development Guide](../setup/service-agent/java-agent/Plugin-Development-Guide.md)
- Span data please refs to [Plugin Development Guide](../guides/Java-Plugin-Development-Guide.md)
- Id and name both exist, please use id if possible.
  - operationNameId/operationName 
  - networkAddress/networkAddressId
Loading