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
. This envoy.metrics_service
should be configured as a config.grpc_service
entry.
The interesting parts of the config is shown in the config below:
stats_sinks: - name: envoy.metrics_service config: grpc_service: # Note: we can use google_grpc implementation as well. envoy_grpc: cluster_name: service_skywalking static_resources: ... clusters: - name: service_skywalking connect_timeout: 5s type: LOGICAL_DNS http2_protocol_options: {} dns_lookup_family: V4_ONLY lb_policy: ROUND_ROBIN load_assignment: cluster_name: service_skywalking endpoints: - lb_endpoints: - endpoint: address: socket_address: address: skywalking # This is the port where SkyWalking serving the Envoy Metrics Service gRPC stream. port_value: 11800
A more complete static configuration, can be observed here.
Note that Envoy can also be configured dynamically through xDS Protocol.
Some of the Envoy statistics are listed in this list. A sample data that contains identifier can be found here, while the metrics only can be observed here.