提交 1b0d80c5 编写于 作者: wu-sheng's avatar wu-sheng

Add a lot of documents. @peng-yongsheng @hanahmily . Also @hanahmily , the k8...

Add a lot of documents. @peng-yongsheng @hanahmily . Also @hanahmily , the k8 cluster management document and deploy document need you to add.
上级 de7994ff
......@@ -48,7 +48,7 @@ You can go to 5.x branch. At there, you have everything you need.
# Downloads
Please head to the [releases page](ttp://skywalking.apache.org/downloads/) to download a release of Apache SkyWalking.
Please head to the [releases page](http://skywalking.apache.org/downloads/) to download a release of Apache SkyWalking.
# Code of conduct
......
# Welcome
**SkyWalking 6 documents and codes are still on building, Status: WIP. Of course, we welcome everyone to join us.**
Here are SkyWalking 6 official documents.
From here you can learn all about **SkyWalking**’s architecture, how to deploy and use SkyWalking, even develop based on SkyWalking.
......@@ -24,12 +25,15 @@ Also, if you have some related to us, welcome to submit a pull request to add.
if you see some problem.
Or better yet, submit your own contributions through pull request to help make them better.
For documents in other languages, contributed by our community.
- [中文 :cn:](others/cn/README.md)
___
### Users from 5.x
SkyWalking 5.x is still supported by the community. For the user plans to upgrade from 5.x to 6.x, you should know there are some definitions of concepts changed.
The most important two changed concepts are
1. Applciation(in 5.x) is changed to **Service**(in 6.x), also Application Instance is changed to **Service Instance**.
1. Application(in 5.x) is changed to **Service**(in 6.x), also Application Instance is changed to **Service Instance**.
1. Service(in 5.x) is changed to **Endpoint**(in 6.x).
......@@ -13,5 +13,5 @@ Setup based on which kind of probes are you going to use. If you don't understan
## Setup backend
Follow [backend setup document](backend/backend-language-agent-setup.md) to understand and config the backend for different
Follow [backend and UI setup document](backend/backend-ui-setup.md) to understand and config the backend for different
scenarios, and open advanced features.
\ No newline at end of file
# Cluster Management
Backend provides several ways to do cluster management. Choose the one you need/want.
- [Zookeeper coordinator](#zookeeper-coordinator). Use Zookeeper to let backend detects and communicates
with each other.
- [Kubernetes](#kubernetes). When backend cluster are deployed inside kubernetes, you could choose this
by using k8s native APIs to manage cluster.
## Zookeeper coordinator
Zookeeper is a very common and wide used cluster coordinator. Set the **cluster** module's implementor
to **zookeeper** in the yml to active.
```yaml
cluster:
zookeeper:
hostPort: localhost:2181
# Retry Policy
baseSleepTimeMs: 1000 # initial amount of time to wait between retries
maxRetries: 3 # max number of times to retry
```
- `hostPort` is the list of zookeeper servers. Format is `IP1:PORT1,IP2:PORT2,...,IPn:PORTn`
- `hostPort`, `baseSleepTimeMs` and `maxRetries` are settings of Zookeeper curator client.
## Kubernetes
Require backend cluster are deployed inside kubernetes, guides are in [Deploy in kubernetes](backend-k8s.md).
Set implementor to `kubernetes`.
```yaml
cluster:
kubernetes:
watchTimeoutSeconds: 60
namespace: default
labelSelector: app=collector,release=skywalking
uidEnvName: SKYWALKING_COLLECTOR_UID
```
TODO @hanahmily
settings descriptions.
\ No newline at end of file
# IP and port setting
Backend is using IP and port binding, in order to support the OS having multiple IPs.
The binding/listening IP and port are specified by core module
```yaml
core:
default:
restHost: 0.0.0.0
restPort: 12800
restContextPath: /
gRPCHost: 0.0.0.0
gRPCPort: 11800
```
There are two IP/port pair for gRPC and HTTP rest services.
- Most agents and probes use gRPC service for better performance and code readability.
- Few agent use rest service, because gRPC may be not supported in that language.
- UI uses rest service, but data in GraphQL format, always.
## Notice
### IP binding
In case some users are not familiar with IP binding, you should know, after you did that,
the client could only use this IP to access the service. Such as binding `172.09.13.28`, even you are
in this machine, must use this IP rather than `127.0.0.1` or `localhost` to access the service.
### Module provider specified IP and port
The IP and port in core are only default provided by core. But some module provider may provide other
IP and port settings, this is common. Such as many receiver modules provide this.
# Deploy backend in kubernetes
\ No newline at end of file
# Backend setup
First and most important thing is, SkyWalking backend startup behaviours are driven by `config/application.yml`.
Understood the setting file will help you to read this document.
## application.yml
The core concept behind this setting file is, SkyWalking collector is based on pure modulization design.
End user can switch or assemble the collector features by their own requirements.
So, in `application.yml`, there are three levels.
1. **Level 1**, module name. Meaning this module is active in running mode.
1. **Level 2**, provider name. Set the provider of the module.
1. **Level 3**. settings of the provider.
Example:
```yaml
core:
default:
restHost: 0.0.0.0
restPort: 12800
restContextPath: /
gRPCHost: 0.0.0.0
gRPCPort: 11800
```
1. **core** is the module.
1. **default** is the default implementor of core module.
1. `restHost`, `restPort`, ... `gRPCHost` are all setting items of the implementor.
At the same time, modules includes required and optional, the required modules provide the skeleton of backend,
even modulization supported pluggable, remove those modules are meanless. We highly recommend you don't try to
switch those modules, unless you are well known SkyWalking project and its codes.
List the required modules here
1. **core**
1. **cluster**
1. **storage**
1. **query**
After understand the setting file structure, you could choose your interesting feature document.
We recommend you to read the feature documents in our following list.
1. [IP and port setting](backend-ip-port.md). Introduce how IP and port set and be used.
1. [Cluster management](backend-cluster.md). Guide you to set backend server in cluster mode.
1. [Deploy in kubernetes](backend-k8s.md). Guide you to build and use SkyWalking image, and deploy in k8s.
# Backend and UI
SkyWalking backend distribution package includes following parts
1. **bin/cmd scripts**, in `/bin` folder. Include startup linux shell and Windows cmd scripts for Backend
server and UI startup.
1. **Backend config**, in `/config` folder. Include setting files of backend, which are `application.yml`,
`log4j.xml` and `alarm-settings.yml`. Most open settings are in these files.
1. **Libraries of backend**, in `/oap-libs` folder. All jar files of backend are in it.
1. **Webapp env**, in `webapp` folder. UI frontend jar file is in here and its `webapp.yml` setting file.
## Quick start
Requirement: **JDK8**
Before you do quick start, you should know, quick start is to run skywalking backend and UI for preview
or demonstration. In here, performance and long-term running are not our goals.
Want to deploy to product/test env? Go to [Backend and UI deployment documents](#deploy-backend-and-ui)
You can use `bin/startup.sh`(or cmd) to startup backend and UI in default settings, which include the following
things you need to know.
- Storage, use H2 by default, in order to make sure, don't need further deployment.
- Backend listens `0.0.0.0/11800` for gRPC APIs and `0.0.0.0/12800` for http rest APIs.
In Java, .NetCore, Node.js, Istio agents/probe, set the gRPC service address to `ip/host:11800`.
(ip/host is where the backend at)
- UI listens `8080` port and request `127.0.0.1/12800` to do GraphQL query.
## Deploy Backend and UI
After the quick start, you should want to deploy the backend and UI in the distributed env.
Before that, you should know how agent/probe, backend, UI communicate with each other.
<img src="https://skywalkingtest.github.io/page-resources/6.0.0/communication-net.png"/>
- All native agents and probes, either language based or mesh probe, are using gRPC service(`core/default/gRPC*` in `application.yml`) to report
data to backend. Also, jetty service supported in JSON format.
- UI uses GraphQL(HTTP) query to access backend also in Jetty service(`core/default/rest*` in `application.yml`).
Now, let's go the backend and UI setting documents.
- [Backend setting document](backend-setup.md)
- [UI setting document](ui-setup.md)
\ No newline at end of file
# SkyWalking 6 中文文档
TODO
\ No newline at end of file
......@@ -60,3 +60,5 @@ istio-telemetry:
query:
graphql:
path: /graphql
alarm:
default:
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册