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.
This commit is contained in:
parent
babc6d2930
commit
64d886f197
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,15 +1,13 @@
|
|||
# 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
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
# 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.
|
||||
Read [Scope Definitions](scope-definitions.md), you can find all existing Scopes and Fields.
|
||||
|
||||
- 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|
|
||||
|
||||
## 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.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,165 @@
|
|||
# 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|
|
||||
|
|
@ -1,13 +1,25 @@
|
|||
# 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.
|
||||
|
|
@ -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:
|
||||
```
|
||||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue