提交 53a1ae8e 编写于 作者: D Dhi Aurrahman 提交者: wu-sheng

docs: Improve envoy metrics sending setup documentation (#3389)

* Add envoy metrics sending example
Signed-off-by: NDhi Aurrahman <dio@tetrate.io>

* Newline
Signed-off-by: NDhi Aurrahman <dio@tetrate.io>

* Fix
Signed-off-by: NDhi Aurrahman <dio@tetrate.io>

* Tear down note
Signed-off-by: NDhi Aurrahman <dio@tetrate.io>

* Typo
Signed-off-by: NDhi Aurrahman <dio@tetrate.io>
上级 63b033df
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
admin:
access_log_path: /tmp/admin_access.log
address:
......@@ -5,6 +21,7 @@ admin:
protocol: TCP
address: 127.0.0.1
port_value: 9901
stats_sinks:
- name: envoy.metrics_service
config:
......@@ -66,7 +83,8 @@ static_resources:
address:
socket_address:
address: skywalking
port_value: 9001
# This is the port where SkyWalking serving the Envoy Metrics Service gRPC stream.
port_value: 11800
- name: service_google
connect_timeout: 5s
......
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
up:
docker-compose up -d
down:
docker-compose down
.PHONY: up down
# Sending Envoy Metrics to SkyWalking OAP Server Example
This is an example of sending [Envoy Stats](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/statistics#arch-overview-statistics) to SkyWalking OAP server
through [Metric Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/metrics/v2/metrics_service.proto).
## Running the example
The example requires `docker` and `docker-compose` to be installed in your local. It fetches images from Docker Hub.
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.
```
$ 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 | node {
skywalking_1 | id: "ingress"
skywalking_1 | cluster: "envoy-proxy"
skywalking_1 | metadata {
skywalking_1 | fields {
skywalking_1 | key: "skywalking"
skywalking_1 | value {
skywalking_1 | string_value: "iscool"
skywalking_1 | }
skywalking_1 | }
skywalking_1 | fields {
skywalking_1 | key: "envoy"
skywalking_1 | value {
skywalking_1 | string_value: "isawesome"
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 | }
skywalking_1 | }
skywalking_1 | envoy_metrics {
skywalking_1 | name: "cluster.service_skywalking.update_success"
skywalking_1 | type: COUNTER
skywalking_1 | metric {
skywalking_1 | counter {
skywalking_1 | value: 2.0
skywalking_1 | }
skywalking_1 | timestamp_ms: 1567295859556
skywalking_1 | }
skywalking_1 | }
...
$ # To tear down:
$ make down
```
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: "3"
services:
envoy:
image: envoyproxy/envoy-alpine:latest
command: /usr/local/bin/envoy -c /etc/envoy.yaml --service-cluster envoy-proxy
ports:
- 10000:10000
depends_on:
- skywalking
volumes:
- ./envoy.yaml:/etc/envoy.yaml
skywalking:
image: apache/skywalking-oap-server:latest
volumes:
- ./log4j2.xml:/skywalking/config/log4j2.xml
expose:
- "11800"
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address:
protocol: TCP
address: 127.0.0.1
port_value: 9901
stats_sinks:
- name: envoy.metrics_service
config:
grpc_service:
envoy_grpc:
cluster_name: service_skywalking
node:
id: ingress
cluster: card-api-cluster
locality:
region: ap-southeast-1
zone: zone1
sub_zone: subzone1
metadata:
skywalking: iscool
envoy: isawesome
static_resources:
listeners:
- name: listener_0
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 10000
filter_chains:
- filters:
- name: envoy.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match:
prefix: "/"
route:
host_rewrite: www.google.com
cluster: service_google
http_filters:
- name: envoy.router
clusters:
- name: service_skywalking
connect_timeout: 5s
type: STRICT_DNS
http2_protocol_options: {}
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service_skywalking
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: skywalking
port_value: 11800
- name: service_google
connect_timeout: 5s
type: STRICT_DNS
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service_google
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: www.google.com
port_value: 443
tls_context:
sni: www.google.com
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
~
-->
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/>
</Console>
</Appenders>
<Loggers>
<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="org.apache.zookeeper" level="INFO"/>
<logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
<logger name="io.grpc.netty" level="INFO"/>
<logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/>
<!-- We make envoy metrics receiver to log at DEBUG level -->
<logger name="org.apache.skywalking.oap.server.receiver.envoy" level="DEBUG"/>
<Root level="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册