未验证 提交 64d886f1 编写于 作者: wu-sheng's avatar wu-sheng 提交者: GitHub

Add document of contributions and some guides (#1672)

* Change oal doc.

* Remove typo

* Remove document WIP tag.

* Fix few words.

* no message

* Adjust contribution guides.
上级 babc6d29
......@@ -2,7 +2,7 @@ Changes by Version
==================
Release Notes.
5.0.0-RC
5.0.0-RC2
------------------
#### Agent Changes
......
......@@ -38,7 +38,7 @@ for different scenarios.
# Document
- [6.x Documents](docs/README.md). In these documents, you will understand
- [6.x Documents](docs/README.md).
```
5.x is still supported by SkyWalking community, and the agent-backend protocol is compatible with 6.x.
......@@ -71,7 +71,7 @@ Please report unacceptable behavior to dev@skywalking.apache.org .
Follow this [document](docs/en/guides/How-to-build.md).
# Contact Us
* Submit an issue
* Submit an [issue](https://github.com/apache/incubator-skywalking/issues)
* Mail list: dev@skywalking.apache.org
* [Gitter](https://gitter.im/openskywalking/Lobby)
* QQ Group: 392443393
......
# 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.
**Here are SkyWalking 6 official documents. Welcome to join us**
From here you can learn all about **SkyWalking**’s architecture, how to deploy and use SkyWalking, even develop based on SkyWalking.
From here you can learn all about **SkyWalking**’s architecture, how to deploy and use SkyWalking, also develop based on SkyWalking.
- [Concepts and Designs](en/concepts-and-designs/README.md). Concepts and designs explain the most important core ideas about
SkyWalking. You can learn from here if you want to understand what is going on under our cool features and visualization.
- [Setup](en/setup/README.md). Setup contains guides for installing SkyWalking in different scenarios. As a platform, it provides
several ways to provide observability, including monitoring and alarm of course.
- [Guides](en/guides/README.md). Guides are for PPMC, committer or new contributor. At here, you can know how to develop, release
and what is ongoing of the community.
- [Contribution Guides](en/guides/README.md). Guides are for PPMC, committer or new contributor. At here, you can know how to contribute from beginning.
- [Protocols](en/protocols/README.md). Protocols show the communication ways between agents/probes and backend. Anyone, interested
in uplink telemetry data, definitely should read this.
- [FAQs](en/FAQ/README.md). Include a manifest, including already known setup problems, secondary developments experiments. When
......
# Roadmap
The SkyWalking Roadmap includes three lists of features.
1. The core features, means the SkyWalking PPMC and Committer team plan to implement in the near future.(6 months max)
1. The community features, means the SkyWalking Team agrees the features are required, and welcome to accept the contributions.
1. Long term features, means high value features, but can't be implemented recently.
All the features of three lists are open for discussion.
## Core features
Core features are separated into 3 groups: agent, collector and UI.
### Agent
- Support OpenTracing-Java 0.31.0 or 1.0
- Apache HttpClientComponent 3.x plugin.
- Apache Tomcat6 plugin.
- RabbitMQ plugin. All released version in the near 2 years should be supported at least.
- MongoDB Java Driver 3.0 -> 3.2.x plugin.
- Continue DB/Cache access span merged automatically.
### Collector
- Support config data downstream to agent. Need adjust TDP(Trace Data Protocol)
- Support server metrics of other languages, such as C#. Need adjust TDP(Trace Data Protocol)
- Alarm notification.
- Baseline calculation, to make the alarm more accuracy.
- Performance optimization (Stream metric aggregate and query for UI)
- Automated testing (Stream metric aggregate and query for UI)
- Remote module add kafka provider
- Cluster module add redis provider
### UI
- Merged into Collector as a module.
- Support i18n.
- More interactive UI for the DIG data from any domain.
- Plugin system for the 3rd extention of the UI.
- Support dashboard on large screen.
## Community features
Community features are reported from SkyWalking community or the core team hopes community contributors provide the implementations.
- Golang SDK as OpenCensus Reporter.
- Support Sharding-JDBC as Collector storage implementor.
- Support connect ES under auth, in Collector.
## Long term features
- More language supported: PHP, Nodejs Server, Python. OpenCensus reporter implementor or Auto-instrument agent.
- Configure delivery/downstream from collector to agent.
- [Java]Server profile
- [Java]Specific service profile
## Project release plan
1. May. 2018, 5.0.0-beta
1. Jun. 2018, 5.0.0-beta2
1. Jul. 2018, 5.0.0-RC
1. Jul. 2018, 5.0.0(GA)
......@@ -20,171 +20,8 @@ METRIC_NAME = from(SCOPE.(* | [FIELD][,FIELD ...]))
Primary **SCOPE**s are `All`, `Service`, `ServiceInstance`, `Endpoint`, `ServiceRelation`, `ServiceInstanceRelation`, `EndpointRelation`.
Also there are some secondary scopes, which belongs to one primary scope.
## Field
By using Aggregation Function, the requests will group by time and **Group Key(s)** in each scope.
- SCOPE `All`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| endpoint | Represent the endpoint path of each request. | | string |
| latency | Represent how much time of each request. | | int(in ms) |
| status | Represent whether success or fail of the request. | | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. e.g. 200, 404, 302| | int |
### SCOPE `Service`
Calculate the metric data from each request of the service.
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service | yes | int |
| name | Represent the name of the service | | string |
| serviceInstanceName | Represent the name of the service instance id referred | | string |
| endpointName | Represent the name of the endpoint, such a full path of HTTP URI | | string |
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request. | | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call | | int|
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
### SCOPE `ServiceInstance`
Calculate the metric data from each request of the service instance.
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| endpointName | Represent the name of the endpoint, such a full path of HTTP URI. | | string|
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request. | | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
#### Secondary scopes of `ServiceInstance`
Calculate the metric data if the service instance is a JVM and collected by javaagent.
1. SCOPE `ServiceInstanceJVMCPU`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| usePercent | Represent how much percent of cpu time cost| | double|
2. SCOPE `ServiceInstanceJVMMemory`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| isHeap | Represent this value the memory metric values are heap or not | | bool |
| init | See JVM document | | long |
| max | See JVM document | | long |
| used | See JVM document | | long |
| committed | See JVM document | | long |
3. SCOPE `ServiceInstanceJVMMemoryPool`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| poolType | Include CODE_CACHE_USAGE, NEWGEN_USAGE, OLDGEN_USAGE, SURVIVOR_USAGE, PERMGEN_USAGE, METASPACE_USAGE based on different version of JVM. | | enum |
| init | See JVM document | | long |
| max | See JVM document | | long |
| used | See JVM document | | long |
| committed | See JVM document | | long |
4. SCOPE `ServiceInstanceJVMGC`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| phrase | Include NEW and OLD | | Enum |
| time | GC time cost | | long |
| count | Count of GC op | | long |
### SCOPE `Endpoint`
Calculate the metric data from each request of the endpoint in the service.
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the endpoint, usually a number. | yes | int |
| name | Represent the name of the endpoint, such a full path of HTTP URI. | | string |
| serviceName | Represent the name of the service. | | string |
| serviceInstanceName | Represent the name of the service instance id referred. | | string |
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request.| | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
### SCOPE `ServiceRelation`
Calculate the metric data from each request between one service and the other service
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| sourceServiceId | Represent the id of the source service. | yes | int |
| sourceServiceName | Represent the name of the source service. | | string |
| sourceServiceInstanceName | Represent the name of the source service instance. | | string |
| destServiceId | Represent the id of the destination service. | yes | string |
| destServiceName | Represent the name of the destination service. | | string |
| destServiceInstanceName | Represent the name of the destination service instance.| | string|
| endpoint | Represent the endpoint used in this call. | | string
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request.| | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
| detectPoint | Represent where is the relation detected. Values: client, server, proxy. | yes | enum|
### SCOPE `ServiceInstanceRelation`
Calculate the metric data from each request between one service instance and the other service instance
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| sourceServiceInstanceId | Represent the id of the source service instance. | yes | int|
| sourceServiceName | Represent the name of the source service. | | string |
| sourceServiceInstanceName | Represent the name of the source service instance. | | string |
| destServiceName | Represent the name of the destination service. | | |
| destServiceInstanceId | Represent the id of the destination service instance. | yes | int|
| destServiceInstanceName | Represent the name of the destination service instance. | | string |
| endpoint | Represent the endpoint used in this call. | | string
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request.| | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
| detectPoint | Represent where is the relation detected. Values: client, server, proxy. | yes | enum|
### SCOPE `EndpointRelation`
Calculate the metric data of the dependency between one endpoint and the other endpoint.
This relation is hard to detect, also depends on tracing lib to propagate the prev endpoint.
So `EndpointRelation` scope aggregation effects only in service under tracing by SkyWalking native agents,
including auto instrument agents(like Java, .NET), OpenCensus SkyWalking exporter implementation or others propagate tracing context in SkyWalking spec.
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| endpointId | Represent the id of the endpoint as parent in the dependency. | yes | int |
| endpoint | Represent the endpoint as parent in the dependency.| | string|
| childEndpointId | Represent the id of the endpoint being used by the parent endpoint in row(1) | yes | int|
| childEndpoint| Represent the endpoint being used by the parent endpoint in row(2) | | string |
| rpcLatency | Represent the latency of the RPC from some codes in the endpoint to the childEndpoint. Exclude the latency caused by the endpoint(1) itself.
| status | Represent whether success or fail of the request.| | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
| detectPoint | Represent where is the relation detected. Values: client, server, proxy. | yes | enum|
Read [Scope Definitions](scope-definitions.md), you can find all existing Scopes and Fields.
## Filter
Use filter to build the conditions for the value of fields, by using field name and expression.
......@@ -197,14 +34,30 @@ The OPs support `=`, `!=`, `>`, `<`, `in (v1, v2, ...`, `like "%..."`, with type
The default functions are provided by SkyWalking OAP core, and could implement more.
Provided functions
- `avg()`. The average value. The field type must be number.
- `p99()`. The 99% of the given values should be greater or equal. The field type must be number.
- `p90()`. The 90% of the given values should be greater or equal. The field type must be number.
- `p75()`. The 75% of the given values should be greater or equal. The field type must be number.
- `p50()`. The 75% of the given values should be greater or equal. The field type must be number.
- `percent()`. The percentage of selected by filter in the whole given data. No type requirement.
- `histogram(start, step)`. Group the given value by the given step, begin with the start value.
- `sum()`. The sum number of selected by filter. No type requirement.
- `longAvg`. The avg of all input per scope entity. The input field must be a long.
> instance_jvm_memory_max = from(ServiceInstanceJVMMemory.max).longAvg();
In this case, input are request of each ServiceInstanceJVMMemory scope, avg is based on field `max`.
- `doubleAvg`. The avg of all input per scope entity. The input field must be a double.
> instance_jvm_cpu = from(ServiceInstanceJVMCPU.usePercent).doubleAvg();
In this case, input are request of each ServiceInstanceJVMCPU scope, avg is based on field `usePercent`.
- `percent`. The number or ratio expressed as a fraction of 100, for the condition matched input.
> endpoint_percent = from(Endpoint.*).percent(status == true);
In this case, all input are requests of each endpoint, condition is `endpoint.status == true`.
- `sum`. The sum calls per scope entity.
> Service_Calls_Sum = from(Service.*).sum();
In this case, calls of each service.
- `p99`, `p95`, `p90`, `p75`, `p50`. Read [p99 in WIKI](https://en.wikipedia.org/wiki/Percentile)
> All_p99 = from(All.latency).p99(10);
In this case, p99 value of all incoming requests.
- `thermodynamic`. Read [Headmap in WIKI](https://en.wikipedia.org/wiki/Heat_map))
> All_heatmap = from(All.latency).thermodynamic(100, 20);
In this case, thermodynamic headmap of all incoming requests.
## Metric name
The metric name for storage implementor, alarm and query modules. The type inference supported by core.
......
# Scopes and Fields
By using Aggregation Function, the requests will group by time and **Group Key(s)** in each scope.
### SCOPE `All`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| endpoint | Represent the endpoint path of each request. | | string |
| latency | Represent how much time of each request. | | int(in ms) |
| status | Represent whether success or fail of the request. | | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. e.g. 200, 404, 302| | int |
### SCOPE `Service`
Calculate the metric data from each request of the service.
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service | yes | int |
| name | Represent the name of the service | | string |
| serviceInstanceName | Represent the name of the service instance id referred | | string |
| endpointName | Represent the name of the endpoint, such a full path of HTTP URI | | string |
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request. | | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call | | int|
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
### SCOPE `ServiceInstance`
Calculate the metric data from each request of the service instance.
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| endpointName | Represent the name of the endpoint, such a full path of HTTP URI. | | string|
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request. | | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
#### Secondary scopes of `ServiceInstance`
Calculate the metric data if the service instance is a JVM and collected by javaagent.
1. SCOPE `ServiceInstanceJVMCPU`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| usePercent | Represent how much percent of cpu time cost| | double|
2. SCOPE `ServiceInstanceJVMMemory`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| isHeap | Represent this value the memory metric values are heap or not | | bool |
| init | See JVM document | | long |
| max | See JVM document | | long |
| used | See JVM document | | long |
| committed | See JVM document | | long |
3. SCOPE `ServiceInstanceJVMMemoryPool`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| poolType | Include CODE_CACHE_USAGE, NEWGEN_USAGE, OLDGEN_USAGE, SURVIVOR_USAGE, PERMGEN_USAGE, METASPACE_USAGE based on different version of JVM. | | enum |
| init | See JVM document | | long |
| max | See JVM document | | long |
| used | See JVM document | | long |
| committed | See JVM document | | long |
4. SCOPE `ServiceInstanceJVMGC`
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the service instance, usually a number. | yes | int |
| name | Represent the name of the service instance. Such as `ip:port@Service Name`. **Notice**: current native agent uses `processId@Service name` as instance name, which is useless when you want to setup a filter in aggregation. | | string|
| serviceName | Represent the name of the service. | | string |
| phrase | Include NEW and OLD | | Enum |
| time | GC time cost | | long |
| count | Count of GC op | | long |
### SCOPE `Endpoint`
Calculate the metric data from each request of the endpoint in the service.
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| id | Represent the unique id of the endpoint, usually a number. | yes | int |
| name | Represent the name of the endpoint, such a full path of HTTP URI. | | string |
| serviceName | Represent the name of the service. | | string |
| serviceInstanceName | Represent the name of the service instance id referred. | | string |
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request.| | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
### SCOPE `ServiceRelation`
Calculate the metric data from each request between one service and the other service
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| sourceServiceId | Represent the id of the source service. | yes | int |
| sourceServiceName | Represent the name of the source service. | | string |
| sourceServiceInstanceName | Represent the name of the source service instance. | | string |
| destServiceId | Represent the id of the destination service. | yes | string |
| destServiceName | Represent the name of the destination service. | | string |
| destServiceInstanceName | Represent the name of the destination service instance.| | string|
| endpoint | Represent the endpoint used in this call. | | string
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request.| | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
| detectPoint | Represent where is the relation detected. Values: client, server, proxy. | yes | enum|
### SCOPE `ServiceInstanceRelation`
Calculate the metric data from each request between one service instance and the other service instance
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| sourceServiceInstanceId | Represent the id of the source service instance. | yes | int|
| sourceServiceName | Represent the name of the source service. | | string |
| sourceServiceInstanceName | Represent the name of the source service instance. | | string |
| destServiceName | Represent the name of the destination service. | | |
| destServiceInstanceId | Represent the id of the destination service instance. | yes | int|
| destServiceInstanceName | Represent the name of the destination service instance. | | string |
| endpoint | Represent the endpoint used in this call. | | string
| latency | Represent how much time of each request. | | int |
| status | Represent whether success or fail of the request.| | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
| detectPoint | Represent where is the relation detected. Values: client, server, proxy. | yes | enum|
### SCOPE `EndpointRelation`
Calculate the metric data of the dependency between one endpoint and the other endpoint.
This relation is hard to detect, also depends on tracing lib to propagate the prev endpoint.
So `EndpointRelation` scope aggregation effects only in service under tracing by SkyWalking native agents,
including auto instrument agents(like Java, .NET), OpenCensus SkyWalking exporter implementation or others propagate tracing context in SkyWalking spec.
| Name | Remarks | Group Key | Type |
|---|---|---|---|
| endpointId | Represent the id of the endpoint as parent in the dependency. | yes | int |
| endpoint | Represent the endpoint as parent in the dependency.| | string|
| childEndpointId | Represent the id of the endpoint being used by the parent endpoint in row(1) | yes | int|
| childEndpoint| Represent the endpoint being used by the parent endpoint in row(2) | | string |
| rpcLatency | Represent the latency of the RPC from some codes in the endpoint to the childEndpoint. Exclude the latency caused by the endpoint(1) itself.
| status | Represent whether success or fail of the request.| | bool(true for success) |
| responseCode | Represent the response code of HTTP response, if this request is the HTTP call. | | int |
| type | Represent the type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
| detectPoint | Represent where is the relation detected. Values: client, server, proxy. | yes | enum|
# Guides
Guides help everyone developer, including PPMC member, committer and contributor, to understand the project structure.
Also learn to build the project, even to release the official Apache version(If you have been accepted as the formal committer).
There are many ways that you can help the SkyWalking community.
- [Compiling Guide](How-to-build.md). Teaches developer how to build the project in local.
- [Apache Release Guide](How-to-release.md). Apache license allows everyone to redistribute if you keep our licenses and NOTICE
in your redistribution. This document introduces to the committer team about doing official Apache version release, to avoid
breaking any Apache rule.
- Go through our documents, point out or fixed unclear things. Translate the documents to other languages.
- Download our [releases](http://skywalking.apache.org/downloads/), try to monitor your applications, and feedback to us about
what you think.
- Read our source codes, Ask questions for details.
- Find some bugs, [submit issue](https://github.com/apache/incubator-skywalking/issues), and try to fix it.
- Find [help wanted issues](https://github.com/apache/incubator-skywalking/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22),
which are good for you to start.
## Project Extensions
## Contact Us
All the following channels are open to the community, you could choose the way you like.
* Submit an [issue](https://github.com/apache/incubator-skywalking/issues)
* Mail list: dev@skywalking.apache.org
* [Gitter](https://gitter.im/openskywalking/Lobby)
* QQ Group: 392443393
## For code developer
As a develop, first step, read [Compiling Guide](How-to-build.md). It teaches developer how to build the project in local.
### Project Extensions
SkyWalking project supports many ways to extends existing features. If you are interesting in these ways,
read the following guides.
......@@ -17,12 +29,17 @@ and private plugin developer should read this.
- If you want to build a new probe or plugin in any language, please read [Component library definition and extension](Component-library-settings.md) document.
- [Storage extension development guide](storage-extention.md). Help potential contributors to build a new
storage implementor besides the official.
-
## UI developer
### UI developer
Our UI is constituted by static pages and web container.
- **Static pages** is built based on [Ant Design Pro](https://pro.ant.design/), which source codes are
hosted in our [UI repository](https://github.com/apache/incubator-skywalking-ui).
- **Web container** source codes are in `apm-webapp` module. This is a just an easy zuul proxy to host
static resources and send GraphQL query requests to backend.
## For release
[Apache Release Guide](How-to-release.md) introduces to the committer team about doing official Apache version release, to avoid
breaking any Apache rule. Apache license allows everyone to redistribute if you keep our licenses and NOTICE
in your redistribution.
\ No newline at end of file
......@@ -5,7 +5,24 @@ receivers are using gRPC or HTTPRestful to provide service, actually, whether li
could be receiver. Such as a receiver could base on pull data from remote, like Kakfa MQ.
We have following receivers, and `default` implementors are provided in our Apache distribution.zzz
1. **receiver-trace**. gRPC and HTTPRestful services to accept SkyWalking format traces.
1. **receiver-register**. gRPC and HTTPRestful services to provide service, service instance and endpoint register.
1. **service-mesh**. gRPC services accept data from inbound mesh probes.
1. **istio-telemetry**. Istio telemetry is from Istio official bypass adaptor, this receiver match its gRPC services.
1. **receiver-jvm**. gRPC services accept JVM metric data.
The sample settings of these receivers should be already in default `application.yml`, and also list here
```yaml
receiver-trace:
default:
bufferPath: ../buffer/ # Path to trace buffer files, suggest to use absolute path
bufferOffsetMaxFileSize: 100 # Unit is MB
bufferDataMaxFileSize: 500 # Unit is MB
bufferFileCleanWhenRestart: false # Clean buffer file when backend restart.
receiver-jvm:
default:
service-mesh:
default:
istio-telemetry:
default:
```
\ No newline at end of file
......@@ -2,6 +2,9 @@
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.
## Startup script
Startup scripts are `/bin/oapService.sh`(.bat)
## 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.
......
......@@ -6,7 +6,7 @@ use is by changing the `application.yml`
- [**ElasticSearch 6**](#elasticsearch-6)
## H2
Active ElasticSearch 6 as storage, set storage provider to **H2**.
Active ElasticSearch 6 as storage, set storage provider to **H2**. Default in distribution package.
Setting fragment example
```yaml
......
......@@ -34,7 +34,7 @@ Before that, you should know how agent/probe, backend, UI communicate with each
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.
Now, let's continue with the backend and UI setting documents.
- [Backend setup document](backend-setup.md)
- [UI setup document](ui-setup.md)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册