Load Reporting Service (LRS)
The Load Reporting Service provides a mechanism by which Envoy can emit Load Reports to a management server at a regular cadence.
This will initiate a bi-directional stream with a management server. Upon connecting, the management server can send a LoadStatsResponse to a node it is interested in getting the load reports for. Envoy in this node will start sending LoadStatsRequest. This is done periodically based on the load reporting interval.
Example of an Envoy config with LRS:
1static_resources:
2 listeners:
3 - address:
4 socket_address:
5 address: 0.0.0.0
6 port_value: 80
7 filter_chains:
8 - filters:
9 - name: envoy.filters.network.http_connection_manager
10 typed_config:
11 "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
12 codec_type: AUTO
13 stat_prefix: ingress_http
14 route_config:
15 name: local_route
16 virtual_hosts:
17 - name: service
18 domains:
19 - "*"
20 routes:
21 - match:
22 prefix: "/service"
23 route:
24 cluster: local_service
25 http_filters:
26 - name: envoy.filters.http.router
27 typed_config:
28 "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
29 clusters:
30 - name: local_service
31 type: STRICT_DNS
32 lb_policy: ROUND_ROBIN
33 load_assignment:
34 cluster_name: local_service
35 endpoints:
36 - lb_endpoints:
37 - endpoint:
38 address:
39 socket_address:
40 address: http_service
41 port_value: 8080
42 - name: load_reporting_cluster
43 type: STRICT_DNS
44 lb_policy: ROUND_ROBIN
45 typed_extension_protocol_options:
46 envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
47 "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
48 explicit_http_config:
49 http2_protocol_options: {}
50 load_assignment:
51 cluster_name: load_reporting_cluster
52 endpoints:
53 - lb_endpoints:
54 - endpoint:
55 address:
56 socket_address:
57 address: lrs_server
58 port_value: 18000
59cluster_manager:
60 load_stats_config:
61 api_type: GRPC
62 grpc_services:
63 - envoy_grpc:
64 cluster_name: load_reporting_cluster
65admin:
66 address:
67 socket_address:
68 address: 0.0.0.0
69 port_value: 8081