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

Prepare new doc for v6 (#1695)

* Replace v5 changes by a link to 5.x branch. New v6 changelog.

* Finish query doc and fix a missing field in alarm doc.

* Add link to official oal in alarm doc.

* Fix words.

* Fix some doc

* Update README.md

* Update README.md

* Update README.md

* Update README.md
上级 9d6c32c3
...@@ -2,203 +2,23 @@ Changes by Version ...@@ -2,203 +2,23 @@ Changes by Version
================== ==================
Release Notes. Release Notes.
5.0.0-RC2
------------------
#### Agent Changes
- Support ActiveMQ 5.x
- Support RuntimeContext used out of TracingContext.
- Support Oracle ojdbc8 Plugin.
- Support ElasticSearch client transport 5.2-5.6 Plugin
- Support using agent.config with given path through system properties.
- Add a new way to transmit the Request and Response, to avoid bugs in Hytrix scenarios.
- Fix HTTPComponent client v4 operation name is empty.
- Fix 2 possible NPEs in Spring plugin.
- Fix a possible span leak in SpringMVC plugin.
- Fix NPE in Spring callback plugin.
#### Collector Changes
- Add GZip support for Zipkin receiver.
- Add new component IDs for nodejs.
- Fix Zipkin span receiver may miss data in request.
- Optimize codes in heatmap calculation. Reduce unnecessary divide.
- Fix NPE in Alarm content generation.
- Fix the precision lost in `ServiceNameService#startTimeMillis`.
- Fix GC count is 0.
- Fix topology breaks when RPC client uses the async thread call.
#### UI Changes
- Fix UI port can't be set by startup script in Windows.
- Fix Topology self link error.
- Fix stack color mismatch label color in gc time chart.
#### Documents
- Add users list.
- Fix several document typo.
- Sync the Chinese documents.
- Add OpenAPM badge.
- Add icon/font documents to NOTICE files.
5.0.0-beta2 6.0.0-alpha
------------------ ------------------
#### UI -> Collector GraphQL query protocol SkyWalking 6 is totally new milestone for the project. At this point, we are not just a distributing
- Add order and status in trace query. tracing system with analysis and visualization capabilities. We are an **Observability Analysis Platform(OAL)**.
#### Agent Changes The core and most important features in v6 are
- Add SOFA plugin. 1. Support to collect telemetry data from different sources, such as multiple language agents and service mesh.
- Add witness class for Kafka plugin. 1. Extensible stream analysis core. Make SQL and cache analysis available in core level, although not
- Add RuntimeContext in Context. provided in this release.
- Fix RuntimeContext fail in Tomcat plugin. 1. Provide **Observability Analysis Language(OAL)** to make analysis metric customization available.
- Fix incompatible for `getPropertyDescriptors` in Spring core. 1. New GraphQL query protocol. Not binding with UI now.
- Fix spymemcached plugin bug. 1. UI topology is better now.
- Fix database URL parser bug. 1. New alarm core provided. In alpha, only on service related metric.
- Fix `StringIndexOutOfBoundsException` when mysql jdbc url without databaseName。
- Fix duplicate slash in Spring MVC plugin bug.
- Fix namespace bug.
- Fix NPE in Okhttp plugin when connect failed.
- FIx `MalformedURLException` in httpClientComponent plugin.
- Remove unused dependencies in Dubbo plugin.
- Remove gRPC timeout to avoid out of memory leak.
- Rewrite Async http client plugin.
- [Incubating] Add trace custom ignore optional plugin.
#### Collector Changes
- Topology query optimization for more than 100 apps.
- Error rate alarm is not triggered.
- Tolerate unsupported segments.
- Support Integer Array, Long Array, String Array, Double Array in streaming data model.
- Support multiple entry span and multiple service name in one segment durtaion record.
- Use BulkProcessor to control the linear writing of data by multiple threads.
- Determine the log is enabled for the DEBUG level before printing message.
- Add `static` modifier to Logger.
- Add AspNet component.
- Filter inactive service in query.
- Support to query service based on Application.
- Fix `RemoteDataMappingIdNotFoundException`
- Exclude component-libaries.xml file in collector-*.jar, make sure it is in `/conf` only.
- Separate a single TTL in minute to in minute, hour, day, month metric and trace.
- Add order and status in trace query.
- Add folder lock to buffer folder.
- Modify operationName search from `match` to `match_phrase`.
- [Incubating] Add Zipkin span receiver. Support analysis Zipkin v1/v2 formats.
- [Incubating] Support sharding-sphere as storage implementor.
#### UI Changes
- Support login and access control.
- Add new webapp.yml configuration file.
- Modify webapp startup script.
- Link to trace query from Thermodynamic graph
- Add application selector in service view.
- Add order and status in trace query.
#### Documents
- Add architecture design doc.
- Reformat deploy document.
- Adjust Tomcat deploy document.
- Remove all Apache licenses files in dist release packages.
- Update user cases.
- Update UI licenses.
- Add incubating sections in doc.
[Issues and Pull requests](https://github.com/apache/incubator-skywalking/milestone/28) 5.x releases
5.0.0-beta
------------------ ------------------
You could find all CHANGES of 5.x at [here](https://github.com/apache/incubator-skywalking/blob/5.x/CHANGES.md)
#### UI -> Collector GraphQL query protocol
- Replace all tps to throughtput/cpm(calls per min)
- Add `getThermodynamic` service
- Update version to beta
#### Agent Changes
- Support TLS.
- Support namespace.
- Support direct link.
- Support token.
- Add across thread toolkit.
- Add new plugin extend machenism to override agent core implementations.
- Fix an agent start up sequence bug.
- Fix wrong gc count.
- Remove system env override.
- Add Spring AOP aspect patch to avoid aop conflicts.
#### Collector Changes
- Trace query based on timeline.
- Delete JVM aggregation in second.
- Support TLS.
- Support namespace.
- Support token auth.
- Group and aggregate requests based on reponse time and timeline, support Thermodynamic chart query
- Support component librariy setting through yml file for better extendibility.
- Optimize performance.
- Support short column name in ES or other storage implementor.
- Add a new cache module implementor, based on **Caffeine**.
- Support system property override settings.
- Refactor settings initialization.
- Provide collector instrumentation agent.
- Support .NET core component libraries.
- Fix `divide zero` in query.
- Fix `Data don't remove as expected` in ES implementor.
- Add some checks in collector modulization core.
- Add some test cases.
#### UI Changes
- New trace query UI.
- New Application UI, merge server tab(removed) into applciation as sub page.
- New Topology UI.
- New response time / throughput TopN list.
- Add Thermodynamic chart in overview page.
- Change all tps to cpm(calls per minutes).
- Fix wrong osName in server view.
- Fix wrong startTime in trace view.
- Fix some icons internet requirements.
#### Documents
- Add TLS document.
- Add namespace document.
- Add direct link document.
- Add token document.
- Add across thread toolkit document.
- Add a FAQ about, `Agent or collector version upgrade`.
- Sync all English document to Chinese.
[Issues and Pull requests](https://github.com/apache/incubator-skywalking/milestone/24)
5.0.0-alpha
------------------
#### Agent -> Collector protocol
- Remove C++ keywords
- Move **Ref** into Span from Segment
- Add span type, when register an operation
#### UI -> Collector GraphQL query protocol
- First version protocol
#### Agent Changes
- Support gRPC 1.x plugin
- Support kafka 0.11 and 1.x plugin
- Support ServiceComb 0.x plugin
- Support optional plugin mechanism.
- Support Spring 3.x and 4.x bean annotation optional plugin
- Support Apache httpcomponent AsyncClient 4.x plugin
- Provide automatic agent daily tests, and release reports [here](https://github.com/SkywalkingTest/agent-integration-test-report).
- Refactor Postgresql, Oracle, MySQL plugin for compatible.
- Fix jetty client 9 plugin error
- Fix async APIs of okhttp plugin error
- Fix log config didn't work
- Fix a class loader error in okhttp plugin
#### Collector Changes
- Support metrics analysis and aggregation for application, application instance and service in minute, hour, day and month.
- Support new GraphQL query protocol
- Support alarm
- Provide a prototype instrument for collector.
- Support node speculate in cluster and application topology. (Provider Node -> Consumer Node) -> (Provider Node -> MQ Server -> Consumer Node)
#### UI Changes
- New 5.0.0 UI!!!
[Issues and Pull requests](https://github.com/apache/incubator-skywalking/milestone/17)
...@@ -32,9 +32,12 @@ The core features are following. ...@@ -32,9 +32,12 @@ The core features are following.
<img src="https://skywalkingtest.github.io/page-resources/6-alpha-overview.png"/> <img src="https://skywalkingtest.github.io/page-resources/6-alpha-overview.png"/>
SkyWalking supports to collect telemetry (traces and metrics) data from different sources, SkyWalking supports to collect telemetry (traces and metrics) data from multiple sources
in order to provide more options and multiple formats,
for different scenarios. including
1. Java, .NET Core and NodeJS auto-instrument agents in SkyWalking format
1. Istio telemetry format
1. Zipkin v1/v2 formats
# Document # Document
......
...@@ -7,7 +7,7 @@ From here you can learn all about **SkyWalking**’s architecture, how to deploy ...@@ -7,7 +7,7 @@ From here you can learn all about **SkyWalking**’s architecture, how to deploy
SkyWalking. You can learn from here if you want to understand what is going on under our cool features and visualization. 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 - [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. several ways to provide observability, including monitoring and alarm of course.
- [Contribution Guides](en/guides/README.md). Guides are for PPMC, committer or new contributor. At here, you can know how to contribute from beginning. - [Contributing 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 - [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. 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 - [FAQs](en/FAQ/README.md). Include a manifest, including already known setup problems, secondary developments experiments. When
......
# Query in OAP # Query in OAP
Query is the core feature of OAP for visualization and other higher system. The query matches the metric type. Query(s) are provided in GraphQL format. All GraphQL definition files are [here](../../../oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol).
There are two types of query provided. Here are the explanation of these definitions.
1. Hard codes query implementor
1. Metric style query of implementor
## Hard codes ## Common Objects
Hard codes query implementor, is for complex logic query, such as: topology map, dependency map, which All objects defined in `common.graphqls` are simple common objects, which could be used in any other
most likely relate to mapping mechanism of the node relationship. `*.graphqls` definition files. Such as, **Duration**, **Step**, **Scope**.
Even so, hard codes implementors are based on metric style query too, just need extra codes to assemble the ## Metadata
results. Through Metadata query(s) which defined in `metadata.graphqls`, you could have the meta info of Service, Service Instance and Endpoint,
including name, id, relationship.
## Metric style query ## Metric
Metric style query is based on the given scope and metric name in oal scripts. Metric query(s) in `metric.graphqls` could be used to fetch data from any variable defined in **OAL** scripts.
You could read value or linear trend of the metric variable by the given duration and id.
Metric style query provided in two ways Also, Thermodynamic heatmap is very different with other single value metric, so it is a special
- GraphQL way. UI uses this directly, and assembles the pages. query op. **Thermodynamic** object, a data matrix, will be returned to represent.
- API way. Most for `Hard codes query implementor` to do extra works.
### Grammar ## Aggregation Query
``` Aggregation query(s) in `aggregation.graphs` right now, are most TopN related query(s). You could
Metric.Scope(SCOPE).Func(METRIC_NAME [, PARAM ...]) get **TopN** service, service instance and endpoint in different ways.
```
### Scope ## Topology Query
**SCOPE** in (`All`, `Service`, `ServiceInst`, `Endpoint`, `ServiceRelation`, `ServiceInstRelation`, `EndpointRelation`). Topology query(s) in `topology.graphqls` provide the consistency query no matter what sources do you
get the topology relation. Also, all entity IDs included in topology will be returned too, for your
convenience to do metric query(s).
### Metric name ## Trace
Metric name is defined in oal script. Such as **EndpointCalls** is the name defined by `EndpointCalls = from(Endpoint.*).sum()`. At beginning and some scenarios, SkyWalking will be considered as a distributed tracing system. So
of course we will provide trace query. In `trace.graphql` you will find the format, it is nearly the
same format of our trace report/uplink protocol, just in GraphQL version.
### Metric Query Function ## Alarm
Metric Query Functions match the Aggregation Function in most cases, but include some order or filter features. Alarm query(s) in `alarm.graphql` could be get triggered alarms. Although we believe alarm webhook
Try to keep the name as same as the aggregation functions. in alarm settings(see [alarm setting doc](../setup/backend/backend-alarm.md)) will be more useful
and powerful, still we provide query for SkyWalking UI or simple use scenarios.
Provided functions
- `top`
- `trend`
- `histogram`
- `sum`
### Example
For `avg` aggregate func, `top` match it, also with parameter[1] of result size and parameter[2] of order
```
# for Service_avg = from(Service.latency).avg()
Metric.Scope("Service").topn("Service_avg", 10, "desc")
```
\ No newline at end of file
# Setup # Setup
Setup based on which kind of probes are you going to use. If you don't understand, please read [Concepts and Designs](../concepts-and-designs/README.md) first. Setup based on which kind of probes are you going to use. If you don't understand, please read [Concepts and Designs](../concepts-and-designs/README.md) first.
## Download official releases
- Backend, UI and Java agent are Apache official release, you could find them at [Apache SkyWalking DOWNLOAD page](http://skywalking.apache.org/downloads/).
- Download .Net agent by following [Getting started document](https://github.com/OpenSkywalking/skywalking-netcore#getting-started).
- Download Nodejs agent by following [English document](https://github.com/OpenSkywalking/skywalking-nodejs/blob/master/docs/README.md#documents).
## Language agents in Service ## Language agents in Service
- [Java agent](service-agent/java-agent/README.md). Introduce how to install java agent to your service, without change any codes. - [Java agent](service-agent/java-agent/README.md). Introduce how to install java agent to your service, without change any codes.
...@@ -9,9 +14,12 @@ Setup based on which kind of probes are you going to use. If you don't understan ...@@ -9,9 +14,12 @@ Setup based on which kind of probes are you going to use. If you don't understan
## On Service Mesh ## On Service Mesh
- Istio - Istio
- [SkyWalking on Istio](istio/README.md). Introduce how to use Istio Mixer SkyWalking Adapter to work with SkyWalking. - [SkyWalking on Istio](istio/README.md). Introduce how to use Istio Mixer bypass Adapter to work with SkyWalking.
## Setup backend ## Setup backend
Follow [backend and UI setup document](backend/backend-ui-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. scenarios, and open advanced features.
\ No newline at end of file
## Changes log
Backend, UI and Java agent changes are available [here](../../../CHANGES.md).
\ No newline at end of file
...@@ -7,8 +7,10 @@ There are two parts in alarm rule definition. ...@@ -7,8 +7,10 @@ There are two parts in alarm rule definition.
## Rules ## Rules
Alarm rule is constituted by following keys Alarm rule is constituted by following keys
- **Rule name**. Unique name, show in alarm message. Must end with `_rule`. - **Rule name**. Unique name, show in alarm message. Must end with `_rule`.
- **Indicator name**。A.K.A. metric name in oal script. Only long, double, int types are supported. See - **Indicator name**. A.K.A. metric name in oal script. Only long, double, int types are supported. See
[List of all potential indicator](#list-of-all-potential-indicator-name). [List of all potential metric name](#list-of-all-potential-metric-name).
- **Include names**. The following entity names are included in this rule. Such as Service name,
endpoint name.
- **Threshold**. The target value. - **Threshold**. The target value.
- **OP**. Operator, support `>`, `<`, `=`. Welcome to contribute all OPs. - **OP**. Operator, support `>`, `<`, `=`. Welcome to contribute all OPs.
- **Period**. How long should the alarm rule should be checked. This is a time window, which goes with the - **Period**. How long should the alarm rule should be checked. This is a time window, which goes with the
...@@ -34,7 +36,22 @@ rules: ...@@ -34,7 +36,22 @@ rules:
count: 3 count: 3
# How many times of checks, the alarm keeps silence after alarm triggered, default as same as period. # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period.
silence-period: 10 silence-period: 10
service_percent_rule:
indicator-name: service_percent
# [Optional] Default, match all services in this indicator
include-names:
- service_a
- service_b
threshold: 85
op: <
period: 10
count: 4
``` ```
## List of all potential indicator name ## List of all potential metric name
The metric names are defined in official [OAL scripts](../../guides/backend-oal-scripts.md), right now
only metric from **Service** scope could be used in Alarm, we will extend in further versions.
Submit issue or pull request if you want to support any other scope in alarm.
...@@ -20,8 +20,8 @@ There are two IP/port pair for gRPC and HTTP rest services. ...@@ -20,8 +20,8 @@ There are two IP/port pair for gRPC and HTTP rest services.
## Notice ## Notice
### IP binding ### IP binding
In case some users are not familiar with IP binding, you should know, after you did that, 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 the client could only use this IP to access the service. For example, bind `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. in this machine, must use `172.09.13.28` rather than `127.0.0.1` or `localhost` to access the service.
### Module provider specified IP and port ### 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 The IP and port in core are only default provided by core. But some module provider may provide other
......
# Setting Override
SkyWalking backend supports setting overrides by system properties.
You could override the settings in `application.yml`
- System properties key rule
**ModuleName**.**ProviderName**.**SettingKey**.
- Example
Override `restHost` in this setting segment
```yaml
core:
default:
restHost: 0.0.0.0
restPort: 12800
restContextPath: /
gRPCHost: 0.0.0.
gRPCPort: 11800
```
Use command arg
```
-core.default.restHost=172.0.4.12
```
\ No newline at end of file
...@@ -52,6 +52,7 @@ read **Set receivers** document in the [link list](#advanced-feature-document-li ...@@ -52,6 +52,7 @@ read **Set receivers** document in the [link list](#advanced-feature-document-li
After understand the setting file structure, you could choose your interesting feature document. After understand the setting file structure, you could choose your interesting feature document.
We recommend you to read the feature documents in our following order. We recommend you to read the feature documents in our following order.
1. [Overriding settings](backend-setting-override.md) in application.yml is supported
1. [IP and port setting](backend-ip-port.md). Introduce how IP and port set and be used. 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. [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. 1. [Deploy in kubernetes](backend-k8s.md). Guide you to build and use SkyWalking image, and deploy in k8s.
......
...@@ -6,7 +6,7 @@ use is by changing the `application.yml` ...@@ -6,7 +6,7 @@ use is by changing the `application.yml`
- [**ElasticSearch 6**](#elasticsearch-6) - [**ElasticSearch 6**](#elasticsearch-6)
## H2 ## H2
Active ElasticSearch 6 as storage, set storage provider to **H2**. Default in distribution package. Active H2 as storage, set storage provider to **H2**. Default in distribution package.
Setting fragment example Setting fragment example
```yaml ```yaml
......
# Setup java agent # Setup java agent
1. Find `agent` folder in SkyWalking release package 1. Find `agent` folder in SkyWalking release package
2. Add `-javaagent:/path/to/skywalking-package/agent/skywalking-agent.jar` to JVM argument. And make sure to add it before the `-jar` argument. 2. Set
New agent package looks like this: 3. Add `-javaagent:/path/to/skywalking-package/agent/skywalking-agent.jar` to JVM argument. And make sure to add it before the `-jar` argument.
The agent release dist is included in Apache [official release](http://skywalking.apache.org/downloads/).MeshReceiverProvider New agent package looks like this.
``` ```
+-- skywalking-agent +-- agent
+-- activations +-- activations
apm-toolkit-log4j-1.x-activation.jar apm-toolkit-log4j-1.x-activation.jar
apm-toolkit-log4j-2.x-activation.jar apm-toolkit-log4j-2.x-activation.jar
......
# Setting Override # Setting Override
## Supported version In default, SkyWalking provide `agent.config` for agent
5.0.0-beta +
_Agent setting override supported since 3.2.5_ Setting override means end user can override the settings in these config file, through using system properties.
## What is setting override?
In default, SkyWalking provide `agent.config` for client, and `application.yml` for server settings.
Setting override means end user can override the settings in these config file, by using system properties.
## Override priority
System.Properties(-D) > Config file
## Override
### Agent Use `skywalking.` + key in config file as system properties key, to override the value.
Use `skywalking.` + key in config file as system properties and envs key, to override the value.
- Why need this prefix? - Why need this prefix?
The agent system properites and env share with target application, this prefix can avoid variable conflict. The agent system properites and env share with target application, this prefix can avoid variable conflict.
### Collector
Use key in config file as system properties and envs key, to override the value.
Example:
- Setting in `application.yml`
```yaml
agent_gRPC:
gRPC:
host: localhost
port: 11800
```
- Override port to 31200 by system property, add the following line into startup script. - Override priority
System.Properties(-D) > Config file
- Example
Override `agent.application_code` by this.
``` ```
-Dagent_gRPC.gRPC.port=31200 -Dskywalking.agent.application_code=31200
``` ```
\ No newline at end of file
Subproject commit 3a83be79a9c23aad6576ed2a4a04b82de6d7a829 Subproject commit f2e54c2cd3f7fdb2cdc975cf791e1bb1d9aab96e
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册