This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 74ef595  doc: polish the documentations on ALS and MS (#6292)
74ef595 is described below

commit 74ef5959f0e834880d3e34870906c0c261dfd233
Author: Zhenxu Ke <[email protected]>
AuthorDate: Mon Feb 1 07:55:00 2021 +0800

    doc: polish the documentations on ALS and MS (#6292)
    
    * doc: polish the documentations on ALS and MS
    
    * Update als_setting.md
    
    Co-authored-by: 吴晟 Wu Sheng <[email protected]>
---
 docs/README.md                                 |   6 +-
 docs/en/setup/envoy/als_setting.md             | 104 ++++++++++++++++---------
 docs/en/setup/envoy/metrics_service_setting.md |  42 +++++++++-
 docs/en/setup/istio/README.md                  |   8 +-
 4 files changed, 113 insertions(+), 47 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index 4294031..9430ae6 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -67,11 +67,11 @@ If you are already familiar with SkyWalking, you could use 
this catalog to find
     * Browser performance monitoring
       * Track the performance of the browser, such as latency of redirect, 
dns, ttfb. For more information, [click 
here](https://github.com/apache/skywalking-client-js).
   * Service Mesh
-    * [SkyWalking on Istio](en/setup/istio/README.md). Introduces how to use 
Istio Mixer bypass Adapter to work with SkyWalking.
-    * Use [ALS (access log 
service)](https://www.envoyproxy.io/docs/envoy/latest/api-v2/service/accesslog/v2/als.proto)
 to observe service mesh, without Mixer. Follow 
[document](en/setup/envoy/als_setting.md) to open it.
+    * [Observe Istio Control Plane](en/setup/istio/README.md). Introduces how 
to use SkyWalking to observe the Istio control plane.
+    * [Observe Service Mesh](en/setup/envoy/als_setting.md). Introduces how to 
use SkyWalking and [Envoy Access Log Service 
(ALS)](https://www.envoyproxy.io/docs/envoy/latest/api-v2/service/accesslog/v2/als.proto)
 to observe service mesh.
   * Proxy
     * [Envoy Proxy](https://www.envoyproxy.io/)
-      * [Sending metrics to Skywalking from 
Envoy](en/setup/envoy/metrics_service_setting.md). How to send metrics from 
Envoy to SkyWalking using [Metrics 
service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/metrics/v2/metrics_service.proto.html).
+      * [Send Envoy metrics to SkyWalking with / without 
Istio](en/setup/envoy/metrics_service_setting.md).
   * [Backend, UI and CLI setup document](en/setup/backend/backend-ui-setup.md).
     * [Backend setup document](en/setup/backend/backend-setup.md).
       * [Configuration 
Vocabulary](en/setup/backend/configuration-vocabulary.md). Configuration 
Vocabulary lists all available configurations provided by `application.yml`.
diff --git a/docs/en/setup/envoy/als_setting.md 
b/docs/en/setup/envoy/als_setting.md
index 811fe0d..6f0837d 100644
--- a/docs/en/setup/envoy/als_setting.md
+++ b/docs/en/setup/envoy/als_setting.md
@@ -1,45 +1,57 @@
-# Observe service mesh through ALS
-Envoy [ALS(access log 
service)](https://www.envoyproxy.io/docs/envoy/latest/api-v2/service/accesslog/v2/als.proto)
 provides
+# Observe Service Mesh through ALS
+
+[Envoy Access Log Service 
(ALS)](https://www.envoyproxy.io/docs/envoy/latest/api-v2/service/accesslog/v2/als.proto)
 provides
 full logs about RPC routed, including HTTP and TCP.
 
-The solution is initialized and firstly implemented by [Sheng 
Wu](https://github.com/wu-sheng), [Hongtao Gao](https://github.com/hanahmily), 
[Lizan Zhou](https://github.com/lizan), 
-and [Dhi Aurrahman](https://github.com/dio) at 17 May. 2019, 
-and presented on [KubeCon China 
2019](https://kccncosschn19eng.sched.com/event/NroB/observability-in-service-mesh-powered-by-envoy-and-apache-skywalking-sheng-wu-lizan-zhou-tetrate).
-Here is the recorded [Video](https://www.youtube.com/watch?v=tERm39ju9ew).
+## Background
+
+The solution was initialized and firstly implemented by [Sheng 
Wu](https://github.com/wu-sheng), [Hongtao Gao](https://github.com/hanahmily), 
[Lizan Zhou](https://github.com/lizan), 
+and [Dhi Aurrahman](https://github.com/dio) at 17 May. 2019, and was presented 
on [KubeCon China 
2019](https://kccncosschn19eng.sched.com/event/NroB/observability-in-service-mesh-powered-by-envoy-and-apache-skywalking-sheng-wu-lizan-zhou-tetrate).
+Here is the recorded [video](https://www.youtube.com/watch?v=tERm39ju9ew).
 
 SkyWalking is the first open source project introducing this ALS based 
solution to the world. This provides a new way with very low payload to service 
mesh, but the same observability.
 
-You need three steps to open ALS.
-1. Open envoyAccessLogService in istio by [enabling **envoyAccessLogService** 
in 
ProxyConfig](https://istio.io/docs/reference/config/istio.mesh.v1alpha1/#ProxyConfig).
+## Enable ALS and SkyWalking Receiver
+
+You need the following steps to set up ALS.
+
+- Enable [`envoyAccessLogService` in 
ProxyConfig](https://istio.io/docs/reference/config/istio.mesh.v1alpha1/#ProxyConfig)
 and set the ALS address to where SkyWalking OAP listens.
+On Istio version 1.6.0+, if Istio is installed with [`demo` 
profile](https://istio.io/latest/docs/setup/additional-setup/config-profiles/), 
you can enable ALS with command:
+
+   ```shell
+   istioctl manifest apply \
+     --set profile=demo \
+     --set meshConfig.enableEnvoyAccessLogService=true \
+     --set 
meshConfig.defaultConfig.envoyAccessLogService.address=<skywalking-oap.skywalking.svc:11800>
+   ```
 
-    Upper istio 1.6.0, if istio installed by demo profile, you can open ALS 
ues command:
-    ```
-    istioctl manifest apply --set profile=demo --set 
meshConfig.defaultConfig.envoyAccessLogService.address=skywalking-oap.skywalking.svc:11800
 --set meshConfig.enableEnvoyAccessLogService=true
-    ```
-    Note: SkyWalking OAP service is at skywalking namespace, and the port of 
gRPC service is 11800
+   Note: Replace `<skywalking-oap.skywalking.svc:11800>` with the real address 
where SkyWalking OAP is deployed.
     
-2. (Default is ACTIVATED) Activate SkyWalking [envoy 
receiver](../backend/backend-receivers.md). 
-3. Active ALS analyzer, there are two available analyzers, `k8s-mesh` and 
`mx-mesh`,
-`k8s-mesh` uses the metadata from Kubernetes cluster, hence in this analyzer 
OAP needs access roles to `Pod`, `Service`, and `Endpoints`;
-`mx-mesh` uses the Envoy metadata exchange mechanism to get the service name, 
etc.,
-this analyzer requires Istio to enable the metadata exchange filter(you can 
enable it by
-`--set values.telemetry.v2.enabled=true`, or if you're using Istio 1.7+ and 
installing it with profile `demo`/`preview`,
-it should be enabled then).
-Setting system env variable **SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS** to activate 
the analyzer,
-such as `SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=k8s-mesh`.
-```yaml
-envoy-metric:
-  selector: ${SW_ENVOY_METRIC:default}
-  default:
-    acceptMetricsService: ${SW_ENVOY_METRIC_SERVICE:true}
-    alsHTTPAnalysis: ${SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS:""} # Setting the 
system env variable would override this. 
-```
-For multiple values,please use `,` symbol to concatenate.
+- Activate SkyWalking [Envoy Receiver](../backend/backend-receivers.md). This 
is activated by default. 
 
-Here's an example to deploy SkyWalking by Helm chart.
+- Choose an ALS analyzer. There are two available analyzers, `k8s-mesh` and 
`mx-mesh`.
+  Set the system environment variable **SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS** 
such as `SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=k8s-mesh`
+  or in the `application.yaml` to activate the analyzer. For more about the 
analyzers, see [SkyWalking ALS Analyzers](#skywalking-als-analyzers)
 
-```
-istioctl install --set profile=demo --set 
meshConfig.defaultConfig.envoyAccessLogService.address=skywalking-oap.istio-system:11800
 --set meshConfig.enableEnvoyAccessLogService=true
+   ```yaml
+   envoy-metric:
+     selector: ${SW_ENVOY_METRIC:default}
+     default:
+       acceptMetricsService: ${SW_ENVOY_METRIC_SERVICE:true}
+       alsHTTPAnalysis: ${SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS:""} # Setting the 
system env variable would override this. 
+   ```
+
+   To use multiple analyzers as a fallback,please use `,` to concatenate.
+
+## Example
+
+Here's an example to install Istio and deploy SkyWalking by Helm chart.
+
+```shell
+istioctl install \
+  --set profile=demo \
+  --set meshConfig.enableEnvoyAccessLogService=true \
+  --set 
meshConfig.defaultConfig.envoyAccessLogService.address=skywalking-oap.istio-system:11800
 
 git clone https://github.com/apache/skywalking-kubernetes.git
 cd skywalking-kubernetes/chart
@@ -48,9 +60,29 @@ helm repo add elastic https://helm.elastic.co
 
 helm dep up skywalking
 
-helm install 8.1.0 skywalking -n istio-system --set 
oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=k8s-mesh --set 
fullnameOverride=skywalking --set oap.envoy.als.enabled=true
+helm install 8.1.0 skywalking -n istio-system \
+  --set oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=k8s-mesh \
+  --set fullnameOverride=skywalking \
+  --set oap.envoy.als.enabled=true
 ```
 
-Notice, only use this when Envoy is under Istio's control, and they are in k8s 
environment. The OAP requires the read right to k8s API server for all pods IPs.
+You can use `kubectl -n istio-system logs -l app=skywalking | grep 
"K8sALSServiceMeshHTTPAnalysis"` to ensure OAP ALS `k8s-mesh` analyzer has been 
activated.
+
+## SkyWalking ALS Analyzers
+
+There are two available analyzers, `k8s-mesh` and `mx-mesh`, you can specify 
one or more analyzers to analyze the access logs.
+When multiple analyzers are specified, it acts as a fast-success mechanism: 
SkyWalking loops over the analyzers and use it to analyze the logs, once
+there is an analyzer that is able to produce a result, it stops the loop.
+
+### `k8s-mesh`
+
+`k8s-mesh` uses the metadata from Kubernetes cluster, hence in this analyzer 
OAP needs access roles to `Pod`, `Service`, and `Endpoints`.
+
+The 
[blog](https://skywalking.apache.org/blog/2020-12-03-obs-service-mesh-with-sw-and-als/)
 illustrates the detail of how it works, and a step-by-step tutorial to apply 
it into the `bookinfo` application.
+
+### `mx-mesh`
+
+`mx-mesh` uses the Envoy metadata exchange mechanism to get the service name, 
etc.,
+this analyzer requires Istio to enable the metadata exchange plugin (you can 
enable it by `--set values.telemetry.v2.enabled=true`,
+or if you're using Istio 1.7+ and installing it with profile `demo`/`preview`, 
it should be enabled then).
 
-You can use `kubectl -n istio-system logs -l app=skywalking | grep 
"K8sALSServiceMeshHTTPAnalysis"` to ensure OAP ALS k8s-mesh analysis has been 
active.
diff --git a/docs/en/setup/envoy/metrics_service_setting.md 
b/docs/en/setup/envoy/metrics_service_setting.md
index 430ad81..9dae395 100644
--- a/docs/en/setup/envoy/metrics_service_setting.md
+++ b/docs/en/setup/envoy/metrics_service_setting.md
@@ -1,6 +1,19 @@
-# Configuring Envoy to send metrics to SkyWalking
+# Send Envoy metrics to SkyWalking with / without Istio
 
-In order to let Envoy to send metrics to SkyWalking, we need to feed Envoy 
with a configuration which contains `stats_sinks` that includes 
`envoy.metrics_service`.
+Envoy defines a gRPC service to emit the metrics, whatever implements this 
protocol can be used to receive the metrics.
+SkyWalking has a built-in receiver that implements this protocol so that you 
can configure Envoy to emit its metrics to SkyWalking.
+
+As an APM system, SkyWalking does not only receive and store the metrics 
emitted by Envoy, it also analyzes the topology of services and service 
instances.
+
+**Attention:** There are two versions of Envoy metrics service protocol up to 
date,
+[v2](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/grpc_service.proto#envoy-api-msg-core-grpcservice)
 and
+[v3](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/metrics/v3/metrics_service.proto),
 SkyWalking (8.3.0+) supports both of them.
+
+## Configure Envoy to send metrics to SkyWalking without Istio
+
+Envoy can be used with / without Istio's control. This section introduces how 
to configure the standalone Envoy to send the metrics to SkyWalking.
+
+In order to let Envoy send metrics to SkyWalking, we need to feed Envoy with a 
configuration which contains `stats_sinks` that includes 
`envoy.metrics_service`.
 This `envoy.metrics_service` should be configured as a 
[`config.grpc_service`](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/grpc_service.proto#envoy-api-msg-core-grpcservice)
 entry.
 
 The interesting parts of the config is shown in the config below:
@@ -39,7 +52,7 @@ A more complete static configuration, can be observed 
[here](config.yaml).
 
 Note that Envoy can also be configured dynamically through [xDS 
Protocol](https://github.com/envoyproxy/data-plane-api/blob/master/XDS_PROTOCOL.md).
 
-**Attention**: Only use this when Envoy is under Istio's control, because 
SkyWalking needs to parse the service name and service instance name from the 
metadata that is injected by Istio. However, if you want to use this without 
Istio, you need to inject the metadata yourself like this:
+As mentioned above, SkyWalking also builds the topology of services from the 
metrics, this is because Envoy also carries the service metadata along with the 
metrics, to feed the Envoy such metadata, another configuration part is as 
follows:
 
 ```yaml
 node:
@@ -50,6 +63,27 @@ node:
     NAME: service-instance-name
 ```
 
+## Configure Envoy to send metrics to SkyWalking with Istio
+
+Typically, Envoy can be also used under Istio's control, where the 
configurations are much more simple because Istio composes the configurations 
for you and sends them to Envoy via [xDS 
Protocol](https://github.com/envoyproxy/data-plane-api/blob/master/XDS_PROTOCOL.md).
+Istio also automatically injects the metadata such as service name and 
instance name into the bootstrap configurations.
+
+Under this circumstance, emitting the metrics to SyWalking is as simple as 
adding the option `--set 
meshConfig.defaultConfig.envoyMetricsService.address=<skywalking.address.port.11800>`
 to Istio install command, for example:
+
+```shell
+istioctl install -y \
+  --set profile=demo `# replace the profile as per your need` \
+  --set 
meshConfig.defaultConfig.envoyMetricsService.address=<skywalking.address.port.11800>
 # replace <skywalking.address.port.11800> with your actual SkyWalking OAP 
address
+```
+
+If you already have Istio installed, you can use the following command to 
apply the config without re-installing Istio:
+
+```shell
+istioctl manifest install -y \
+  --set profile=demo `# replace the profile as per your need` \
+  --set 
meshConfig.defaultConfig.envoyMetricsService.address=<skywalking.address.port.11800>
 # replace <skywalking.address.port.11800> with your actual SkyWalking OAP 
address
+```
+
 # Metrics data
 
-Some of the Envoy statistics are listed in this 
[list](https://www.envoyproxy.io/docs/envoy/latest/configuration/statistics). A 
sample data that contains identifier can be found [here](identify.json), while 
the metrics only can be observed [here](metrics.json).
+Some Envoy statistics are listed in this 
[list](https://www.envoyproxy.io/docs/envoy/latest/configuration/statistics). A 
sample data that contains identifier can be found [here](identify.json), while 
the metrics only can be observed [here](metrics.json).
diff --git a/docs/en/setup/istio/README.md b/docs/en/setup/istio/README.md
index facb7e8..3e2794b 100644
--- a/docs/en/setup/istio/README.md
+++ b/docs/en/setup/istio/README.md
@@ -4,13 +4,13 @@ Instructions for transport Istio's metrics to the SkyWalking 
OAP server.
 
 ## Prerequisites
 
-Istio should be installed in the kubernetes cluster. Follow [Istio getting 
start](https://istio.io/docs/setup/getting-started/)
+Istio should be installed in the Kubernetes cluster. Follow [Istio getting 
start](https://istio.io/docs/setup/getting-started/)
 to finish it.
 
-## Deploy Skywalking backend
+## Deploy SkyWalking backend
 
-Follow the [deploying backend in kubernetes](../backend/backend-k8s.md) to 
install the OAP server in the kubernetes cluster.
-Referring to [OpenTelemetry 
receiver](../backend/backend-receivers.md#OpenTelemetry-receiver) to ingest 
metrics.
+Follow the [deploying backend in Kubernetes](../backend/backend-k8s.md) to 
install the OAP server in the kubernetes cluster.
+Refer to [OpenTelemetry 
receiver](../backend/backend-receivers.md#OpenTelemetry-receiver) to ingest 
metrics.
 `otel-receiver` defaults to be inactive. Set env var `SW_OTEL_RECEIVER` to 
`default` to enable it.
 
 

Reply via email to