You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2021/07/23 15:00:02 UTC

[skywalking] branch master updated: add sending Envoy Metrics to OAP example within envoy 1.19 and bump up to Envoy V3 api. (#7366)

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 90de9f9  add sending Envoy Metrics to  OAP example within envoy 1.19  and bump up to  Envoy V3 api. (#7366)
90de9f9 is described below

commit 90de9f95156c6e86d8f4098e570d6206ff9ae431
Author: Jared Tan <ji...@daocloud.io>
AuthorDate: Fri Jul 23 22:59:51 2021 +0800

    add sending Envoy Metrics to  OAP example within envoy 1.19  and bump up to  Envoy V3 api. (#7366)
    
    * bump up envoy metrics service sinks version. and update envoy.yaml config for demo.
---
 CHANGES.md                                         |  1 +
 docs/en/setup/envoy/examples/metrics/README.md     | 73 +++++++++++++++++++---
 ...mpose.yaml => docker-compose-envoy-v3-api.yaml} | 10 +--
 .../envoy/examples/metrics/docker-compose.yaml     |  4 +-
 .../metrics/{envoy.yaml => envoy-v1.16.yaml}       |  8 +--
 .../metrics/{envoy.yaml => envoy-v1.19.yaml}       | 37 ++++++-----
 6 files changed, 101 insertions(+), 32 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 6570d8f..fba1afe 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -134,6 +134,7 @@ Release Notes.
 
 * Add FAQ about `Elasticsearch exception type=version_conflict_engine_exception since 8.7.0`
 * Add Self Observability service discovery (k8s).
+* Add sending Envoy Metrics to  OAP in envoy 1.19  example and bump up to  Envoy V3 api.
 
 All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/90?closed=1)
 
diff --git a/docs/en/setup/envoy/examples/metrics/README.md b/docs/en/setup/envoy/examples/metrics/README.md
index dddd2c5..9b75236 100644
--- a/docs/en/setup/envoy/examples/metrics/README.md
+++ b/docs/en/setup/envoy/examples/metrics/README.md
@@ -9,19 +9,33 @@ The example requires `docker` and `docker-compose` to be installed in your local
 
 Note that in ths setup, we override the [`log4j2.xml`](log4j2.xml) config to set the `org.apache.skywalking.oap.server.receiver.envoy` logger level to `DEBUG`. This enables us to see the messages sent by Envoy to SkyWalking OAP server.
 
+You can also find Envoy Metric Service V3 API example in [docker-compose-envoy-v3-api.yaml](./docker-compose-envoy-v3-api.yaml)
 ```
 $ make up
 $ docker-compose logs -f skywalking
 $ # Please wait for a moment until SkyWalking is ready and Envoy starts sending the stats. You will see similar messages like the following:
-skywalking_1  | 2019-08-31 23:57:40,672 - org.apache.skywalking.oap.server.receiver.envoy.MetricServiceGRPCHandler -26870 [grpc-default-executor-0] DEBUG [] - Received msg identifier {
+skywalking_1  | 2021-07-23 13:25:30,683 - org.apache.skywalking.oap.server.receiver.envoy.MetricServiceGRPCHandler -19437 [grpcServerPool-1-thread-2] DEBUG [] - Received msg identifier {
 skywalking_1  |   node {
 skywalking_1  |     id: "ingress"
 skywalking_1  |     cluster: "envoy-proxy"
 skywalking_1  |     metadata {
 skywalking_1  |       fields {
-skywalking_1  |         key: "skywalking"
+skywalking_1  |         key: "LABELS"
 skywalking_1  |         value {
-skywalking_1  |           string_value: "iscool"
+skywalking_1  |           struct_value {
+skywalking_1  |             fields {
+skywalking_1  |               key: "app"
+skywalking_1  |               value {
+skywalking_1  |                 string_value: "test-app"
+skywalking_1  |               }
+skywalking_1  |             }
+skywalking_1  |           }
+skywalking_1  |         }
+skywalking_1  |       }
+skywalking_1  |       fields {
+skywalking_1  |         key: "NAME"
+skywalking_1  |         value {
+skywalking_1  |           string_value: "service-instance-name"
 skywalking_1  |         }
 skywalking_1  |       }
 skywalking_1  |       fields {
@@ -30,27 +44,72 @@ skywalking_1  |         value {
 skywalking_1  |           string_value: "isawesome"
 skywalking_1  |         }
 skywalking_1  |       }
+skywalking_1  |       fields {
+skywalking_1  |         key: "skywalking"
+skywalking_1  |         value {
+skywalking_1  |           string_value: "iscool"
+skywalking_1  |         }
+skywalking_1  |       }
 skywalking_1  |     }
 skywalking_1  |     locality {
 skywalking_1  |       region: "ap-southeast-1"
 skywalking_1  |       zone: "zone1"
 skywalking_1  |       sub_zone: "subzone1"
 skywalking_1  |     }
-skywalking_1  |     build_version: "e349fb6139e4b7a59a9a359be0ea45dd61e589c5/1.11.1/Clean/RELEASE/BoringSSL"
+skywalking_1  |     user_agent_name: "envoy"
+skywalking_1  |     user_agent_build_version {
+skywalking_1  |       version {
+skywalking_1  |         major_number: 1
+skywalking_1  |         minor_number: 19
+skywalking_1  |       }
+skywalking_1  |       metadata {
+skywalking_1  |         fields {
+skywalking_1  |           key: "build.type"
+skywalking_1  |           value {
+skywalking_1  |             string_value: "RELEASE"
+skywalking_1  |           }
+skywalking_1  |         }
+skywalking_1  |         fields {
+skywalking_1  |           key: "revision.sha"
+skywalking_1  |           value {
+skywalking_1  |             string_value: "68fe53a889416fd8570506232052b06f5a531541"
+skywalking_1  |           }
+skywalking_1  |         }
+skywalking_1  |         fields {
+skywalking_1  |           key: "revision.status"
+skywalking_1  |           value {
+skywalking_1  |             string_value: "Clean"
+skywalking_1  |           }
+skywalking_1  |         }
+skywalking_1  |         fields {
+skywalking_1  |           key: "ssl.version"
+skywalking_1  |           value {
+skywalking_1  |             string_value: "BoringSSL"
+skywalking_1  |           }
+skywalking_1  |         }
+skywalking_1  |       }
+skywalking_1  |     }
+skywalking_1  |     extensions {
+skywalking_1  |       name: "composite-action"
+skywalking_1  |       category: "envoy.matching.action"
+skywalking_1  |     }
+                    ......
 skywalking_1  |   }
 skywalking_1  | }
 skywalking_1  | envoy_metrics {
-skywalking_1  |   name: "cluster.service_skywalking.update_success"
+skywalking_1  |   name: "cluster.service_google.update_no_rebuild"
 skywalking_1  |   type: COUNTER
 skywalking_1  |   metric {
 skywalking_1  |     counter {
-skywalking_1  |       value: 2.0
+skywalking_1  |       value: 1.0
 skywalking_1  |     }
-skywalking_1  |     timestamp_ms: 1567295859556
+skywalking_1  |     timestamp_ms: 1627046729718
 skywalking_1  |   }
+                    ......
 skywalking_1  | }
 ...
 
 $ # To tear down:
 $ make down
 ```
+
diff --git a/docs/en/setup/envoy/examples/metrics/docker-compose.yaml b/docs/en/setup/envoy/examples/metrics/docker-compose-envoy-v3-api.yaml
similarity index 88%
copy from docs/en/setup/envoy/examples/metrics/docker-compose.yaml
copy to docs/en/setup/envoy/examples/metrics/docker-compose-envoy-v3-api.yaml
index 6f069da..58d0382 100644
--- a/docs/en/setup/envoy/examples/metrics/docker-compose.yaml
+++ b/docs/en/setup/envoy/examples/metrics/docker-compose-envoy-v3-api.yaml
@@ -16,15 +16,15 @@
 
 version: "3"
 services:
-  envoy:
-    image: envoyproxy/envoy-alpine:v1.16.2
+  envoy19:
+    image: envoyproxy/envoy-alpine:v1.19-latest
     command: /usr/local/bin/envoy -c /etc/envoy.yaml --service-cluster envoy-proxy
     ports:
-    - 10000:10000
+      - 10001:10000
     depends_on:
-    - skywalking
+      - skywalking
     volumes:
-    - ./envoy.yaml:/etc/envoy.yaml
+      - ./envoy-v1.19.yaml:/etc/envoy.yaml
 
   skywalking:
     image: apache/skywalking-oap-server:latest
diff --git a/docs/en/setup/envoy/examples/metrics/docker-compose.yaml b/docs/en/setup/envoy/examples/metrics/docker-compose.yaml
index 6f069da..a5873b9 100644
--- a/docs/en/setup/envoy/examples/metrics/docker-compose.yaml
+++ b/docs/en/setup/envoy/examples/metrics/docker-compose.yaml
@@ -16,7 +16,7 @@
 
 version: "3"
 services:
-  envoy:
+  envoy16:
     image: envoyproxy/envoy-alpine:v1.16.2
     command: /usr/local/bin/envoy -c /etc/envoy.yaml --service-cluster envoy-proxy
     ports:
@@ -24,7 +24,7 @@ services:
     depends_on:
     - skywalking
     volumes:
-    - ./envoy.yaml:/etc/envoy.yaml
+    - ./envoy-v1.16.yaml:/etc/envoy.yaml
 
   skywalking:
     image: apache/skywalking-oap-server:latest
diff --git a/docs/en/setup/envoy/examples/metrics/envoy.yaml b/docs/en/setup/envoy/examples/metrics/envoy-v1.16.yaml
similarity index 96%
copy from docs/en/setup/envoy/examples/metrics/envoy.yaml
copy to docs/en/setup/envoy/examples/metrics/envoy-v1.16.yaml
index fd66731..9d3caec 100644
--- a/docs/en/setup/envoy/examples/metrics/envoy.yaml
+++ b/docs/en/setup/envoy/examples/metrics/envoy-v1.16.yaml
@@ -30,8 +30,8 @@ stats_sinks:
           cluster_name: service_skywalking
 
 node:
-  id: ingress
-  cluster: card-api-cluster
+  id: ingress-v1
+  cluster: card-api-cluster-v1
   locality:
     region: ap-southeast-1
     zone: zone1
@@ -40,8 +40,8 @@ node:
     skywalking: iscool
     envoy: isawesome
     LABELS:
-      app: test-app
-    NAME: service-instance-name
+      app: test-app-v1
+    NAME: service-instance-name-v1
 
 static_resources:
   listeners:
diff --git a/docs/en/setup/envoy/examples/metrics/envoy.yaml b/docs/en/setup/envoy/examples/metrics/envoy-v1.19.yaml
similarity index 71%
rename from docs/en/setup/envoy/examples/metrics/envoy.yaml
rename to docs/en/setup/envoy/examples/metrics/envoy-v1.19.yaml
index fd66731..1c7169c 100644
--- a/docs/en/setup/envoy/examples/metrics/envoy.yaml
+++ b/docs/en/setup/envoy/examples/metrics/envoy-v1.19.yaml
@@ -23,15 +23,17 @@ admin:
       port_value: 9901
 
 stats_sinks:
-  - name: envoy.metrics_service
-    config:
+  - name: envoy.stat_sinks.metrics_service
+    typed_config:
+      "@type": type.googleapis.com/envoy.config.metrics.v3.MetricsServiceConfig
+      transport_api_version: V3
       grpc_service:
         envoy_grpc:
           cluster_name: service_skywalking
 
 node:
-  id: ingress
-  cluster: card-api-cluster
+  id: ingress-v2
+  cluster: card-api-cluster-v2
   locality:
     region: ap-southeast-1
     zone: zone1
@@ -40,8 +42,8 @@ node:
     skywalking: iscool
     envoy: isawesome
     LABELS:
-      app: test-app
-    NAME: service-instance-name
+      app: test-app-v2
+    NAME: service-instance-name-v2
 
 static_resources:
   listeners:
@@ -53,9 +55,10 @@ static_resources:
           port_value: 10000
       filter_chains:
         - filters:
-            - name: envoy.http_connection_manager
+            - name: envoy.filters.network.http_connection_manager
               typed_config:
-                "@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
+                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
+                codec_type: auto
                 stat_prefix: ingress_http
                 route_config:
                   name: local_route
@@ -66,15 +69,19 @@ static_resources:
                         - match:
                             prefix: "/"
                           route:
-                            host_rewrite: www.google.com
+                            host_rewrite_literal: www.google.com
                             cluster: service_google
                 http_filters:
-                  - name: envoy.router
+                  - name: envoy.filters.http.router
   clusters:
     - name: service_skywalking
       connect_timeout: 5s
-      type: STRICT_DNS
-      http2_protocol_options: {}
+      type: LOGICAL_DNS
+      typed_extension_protocol_options:
+        envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
+          "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
+          explicit_http_config:
+            http2_protocol_options: {}
       # Comment out the following line to test on v6 networks
       dns_lookup_family: V4_ONLY
       lb_policy: ROUND_ROBIN
@@ -103,5 +110,7 @@ static_resources:
                     socket_address:
                       address: www.google.com
                       port_value: 443
-      tls_context:
-        sni: www.google.com
+      transport_socket:
+        name: envoy.transport_sockets.tls
+        typed_config:
+          "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext