Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory Leak After 19->21 Upgrade #20800

Open
gschier opened this issue Apr 12, 2022 · 40 comments
Open

Memory Leak After 19->21 Upgrade #20800

gschier opened this issue Apr 12, 2022 · 40 comments
Labels
area/perf bug help wanted Needs help! investigate Potential bug that needs verification

Comments

@gschier
Copy link

gschier commented Apr 12, 2022

We're using Envoy as our edge proxy at Railway (20k routes, virtual hosts, cluster; 5k secrets) and started running into an issue where heap grows uncontrollably. There was already some leaking, but it increased dramatically after switching from Dockerized Envoy 1.19 to Linux Brew Envoy 1.21. We're currently restarting each of our nodes every few hours to get around this (as noticeable on the posted graphs below).

My question is, does anything jump out immediately as to why this might be happening, and what is the best way to go about debugging this issue if not?

  • 3 VMs, each running af50070ee60866874b0a9383daf9364e884ded22/1.21.1/Modified/RELEASE/BoringSSL on Debian
  • Envoy's are behind GCP external network LB (TCP passthrough)
  • HTTPS listener, cluster, etc are updated every ~10 seconds
  • Heap size doesn't seem to be correlated to num active connections, num draining listeners, or anything else I could find in the stats
  • I removed one of the instances from the LB (but still connected to the go-control-plane) and the leak stopped
  • We have an Overload Manager configured to shrink heap around 70GB (doesn't seem to do anything) and stop accepting connections at 100GB. If we let this run, it simply reaches 100GB and stops accepting.

Let me know if you need any additional info.

📊 Here's also a dump of /stats from one of the nodes:
cluster_manager.cds.version_text: "snapshot-2022-04-12T17:59:50Z-536"
control_plane.identifier: ""
http.http.rds.http_route_config.version_text: "snapshot-2022-04-12T17:59:50Z-378"
http.https.rds.https_route_config.version_text: "snapshot-2022-04-12T17:59:50Z-536"
listener_manager.lds.version_text: "snapshot-2022-04-12T17:59:50Z-536"
cluster.http_cluster.assignment_stale: 0
cluster.http_cluster.assignment_timeout_received: 0
cluster.http_cluster.bind_errors: 0
cluster.http_cluster.circuit_breakers.default.cx_open: 0
cluster.http_cluster.circuit_breakers.default.cx_pool_open: 0
cluster.http_cluster.circuit_breakers.default.rq_open: 0
cluster.http_cluster.circuit_breakers.default.rq_pending_open: 0
cluster.http_cluster.circuit_breakers.default.rq_retry_open: 0
cluster.http_cluster.circuit_breakers.high.cx_open: 0
cluster.http_cluster.circuit_breakers.high.cx_pool_open: 0
cluster.http_cluster.circuit_breakers.high.rq_open: 0
cluster.http_cluster.circuit_breakers.high.rq_pending_open: 0
cluster.http_cluster.circuit_breakers.high.rq_retry_open: 0
cluster.http_cluster.default.total_match_count: 1
cluster.http_cluster.external.upstream_rq_404: 310
cluster.http_cluster.external.upstream_rq_4xx: 310
cluster.http_cluster.external.upstream_rq_completed: 310
cluster.http_cluster.http1.dropped_headers_with_underscores: 0
cluster.http_cluster.http1.metadata_not_supported_error: 0
cluster.http_cluster.http1.requests_rejected_with_underscores_in_headers: 0
cluster.http_cluster.http1.response_flood: 0
cluster.http_cluster.lb_healthy_panic: 0
cluster.http_cluster.lb_local_cluster_not_ok: 0
cluster.http_cluster.lb_recalculate_zone_structures: 0
cluster.http_cluster.lb_subsets_active: 0
cluster.http_cluster.lb_subsets_created: 0
cluster.http_cluster.lb_subsets_fallback: 0
cluster.http_cluster.lb_subsets_fallback_panic: 0
cluster.http_cluster.lb_subsets_removed: 0
cluster.http_cluster.lb_subsets_selected: 0
cluster.http_cluster.lb_zone_cluster_too_small: 0
cluster.http_cluster.lb_zone_no_capacity_left: 0
cluster.http_cluster.lb_zone_number_differs: 0
cluster.http_cluster.lb_zone_routing_all_directly: 0
cluster.http_cluster.lb_zone_routing_cross_zone: 0
cluster.http_cluster.lb_zone_routing_sampled: 0
cluster.http_cluster.max_host_weight: 0
cluster.http_cluster.membership_change: 1
cluster.http_cluster.membership_degraded: 0
cluster.http_cluster.membership_excluded: 0
cluster.http_cluster.membership_healthy: 1
cluster.http_cluster.membership_total: 1
cluster.http_cluster.original_dst_host_invalid: 0
cluster.http_cluster.retry_or_shadow_abandoned: 0
cluster.http_cluster.update_attempt: 0
cluster.http_cluster.update_empty: 0
cluster.http_cluster.update_failure: 0
cluster.http_cluster.update_no_rebuild: 0
cluster.http_cluster.update_success: 0
cluster.http_cluster.upstream_cx_active: 0
cluster.http_cluster.upstream_cx_close_notify: 0
cluster.http_cluster.upstream_cx_connect_attempts_exceeded: 0
cluster.http_cluster.upstream_cx_connect_fail: 0
cluster.http_cluster.upstream_cx_connect_timeout: 0
cluster.http_cluster.upstream_cx_destroy: 306
cluster.http_cluster.upstream_cx_destroy_local: 0
cluster.http_cluster.upstream_cx_destroy_local_with_active_rq: 0
cluster.http_cluster.upstream_cx_destroy_remote: 306
cluster.http_cluster.upstream_cx_destroy_remote_with_active_rq: 0
cluster.http_cluster.upstream_cx_destroy_with_active_rq: 0
cluster.http_cluster.upstream_cx_http1_total: 306
cluster.http_cluster.upstream_cx_http2_total: 0
cluster.http_cluster.upstream_cx_http3_total: 0
cluster.http_cluster.upstream_cx_idle_timeout: 0
cluster.http_cluster.upstream_cx_max_duration_reached: 0
cluster.http_cluster.upstream_cx_max_requests: 0
cluster.http_cluster.upstream_cx_none_healthy: 0
cluster.http_cluster.upstream_cx_overflow: 0
cluster.http_cluster.upstream_cx_pool_overflow: 0
cluster.http_cluster.upstream_cx_protocol_error: 0
cluster.http_cluster.upstream_cx_rx_bytes_buffered: 0
cluster.http_cluster.upstream_cx_rx_bytes_total: 54560
cluster.http_cluster.upstream_cx_total: 306
cluster.http_cluster.upstream_cx_tx_bytes_buffered: 0
cluster.http_cluster.upstream_cx_tx_bytes_total: 148563
cluster.http_cluster.upstream_flow_control_backed_up_total: 0
cluster.http_cluster.upstream_flow_control_drained_total: 0
cluster.http_cluster.upstream_flow_control_paused_reading_total: 0
cluster.http_cluster.upstream_flow_control_resumed_reading_total: 0
cluster.http_cluster.upstream_internal_redirect_failed_total: 0
cluster.http_cluster.upstream_internal_redirect_succeeded_total: 0
cluster.http_cluster.upstream_rq_404: 310
cluster.http_cluster.upstream_rq_4xx: 310
cluster.http_cluster.upstream_rq_active: 0
cluster.http_cluster.upstream_rq_cancelled: 0
cluster.http_cluster.upstream_rq_completed: 310
cluster.http_cluster.upstream_rq_maintenance_mode: 0
cluster.http_cluster.upstream_rq_max_duration_reached: 0
cluster.http_cluster.upstream_rq_pending_active: 0
cluster.http_cluster.upstream_rq_pending_failure_eject: 0
cluster.http_cluster.upstream_rq_pending_overflow: 0
cluster.http_cluster.upstream_rq_pending_total: 306
cluster.http_cluster.upstream_rq_per_try_idle_timeout: 0
cluster.http_cluster.upstream_rq_per_try_timeout: 0
cluster.http_cluster.upstream_rq_retry: 0
cluster.http_cluster.upstream_rq_retry_backoff_exponential: 0
cluster.http_cluster.upstream_rq_retry_backoff_ratelimited: 0
cluster.http_cluster.upstream_rq_retry_limit_exceeded: 0
cluster.http_cluster.upstream_rq_retry_overflow: 0
cluster.http_cluster.upstream_rq_retry_success: 0
cluster.http_cluster.upstream_rq_rx_reset: 0
cluster.http_cluster.upstream_rq_timeout: 0
cluster.http_cluster.upstream_rq_total: 310
cluster.http_cluster.upstream_rq_tx_reset: 0
cluster.http_cluster.version: 0
cluster.railway_xds_cluster.assignment_stale: 0
cluster.railway_xds_cluster.assignment_timeout_received: 0
cluster.railway_xds_cluster.bind_errors: 0
cluster.railway_xds_cluster.circuit_breakers.default.cx_open: 0
cluster.railway_xds_cluster.circuit_breakers.default.cx_pool_open: 0
cluster.railway_xds_cluster.circuit_breakers.default.rq_open: 0
cluster.railway_xds_cluster.circuit_breakers.default.rq_pending_open: 0
cluster.railway_xds_cluster.circuit_breakers.default.rq_retry_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.cx_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.cx_pool_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.rq_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.rq_pending_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.rq_retry_open: 0
cluster.railway_xds_cluster.default.total_match_count: 1
cluster.railway_xds_cluster.http2.dropped_headers_with_underscores: 0
cluster.railway_xds_cluster.http2.header_overflow: 0
cluster.railway_xds_cluster.http2.headers_cb_no_stream: 0
cluster.railway_xds_cluster.http2.inbound_empty_frames_flood: 0
cluster.railway_xds_cluster.http2.inbound_priority_frames_flood: 0
cluster.railway_xds_cluster.http2.inbound_window_update_frames_flood: 0
cluster.railway_xds_cluster.http2.keepalive_timeout: 0
cluster.railway_xds_cluster.http2.metadata_empty_frames: 0
cluster.railway_xds_cluster.http2.outbound_control_flood: 0
cluster.railway_xds_cluster.http2.outbound_flood: 0
cluster.railway_xds_cluster.http2.pending_send_bytes: 0
cluster.railway_xds_cluster.http2.requests_rejected_with_underscores_in_headers: 0
cluster.railway_xds_cluster.http2.rx_messaging_error: 0
cluster.railway_xds_cluster.http2.rx_reset: 0
cluster.railway_xds_cluster.http2.stream_refused_errors: 0
cluster.railway_xds_cluster.http2.streams_active: 1
cluster.railway_xds_cluster.http2.trailers: 0
cluster.railway_xds_cluster.http2.tx_flush_timeout: 0
cluster.railway_xds_cluster.http2.tx_reset: 0
cluster.railway_xds_cluster.internal.upstream_rq_200: 1
cluster.railway_xds_cluster.internal.upstream_rq_2xx: 1
cluster.railway_xds_cluster.internal.upstream_rq_completed: 1
cluster.railway_xds_cluster.lb_healthy_panic: 0
cluster.railway_xds_cluster.lb_local_cluster_not_ok: 0
cluster.railway_xds_cluster.lb_recalculate_zone_structures: 0
cluster.railway_xds_cluster.lb_subsets_active: 0
cluster.railway_xds_cluster.lb_subsets_created: 0
cluster.railway_xds_cluster.lb_subsets_fallback: 0
cluster.railway_xds_cluster.lb_subsets_fallback_panic: 0
cluster.railway_xds_cluster.lb_subsets_removed: 0
cluster.railway_xds_cluster.lb_subsets_selected: 0
cluster.railway_xds_cluster.lb_zone_cluster_too_small: 0
cluster.railway_xds_cluster.lb_zone_no_capacity_left: 0
cluster.railway_xds_cluster.lb_zone_number_differs: 0
cluster.railway_xds_cluster.lb_zone_routing_all_directly: 0
cluster.railway_xds_cluster.lb_zone_routing_cross_zone: 0
cluster.railway_xds_cluster.lb_zone_routing_sampled: 0
cluster.railway_xds_cluster.max_host_weight: 0
cluster.railway_xds_cluster.membership_change: 1
cluster.railway_xds_cluster.membership_degraded: 0
cluster.railway_xds_cluster.membership_excluded: 0
cluster.railway_xds_cluster.membership_healthy: 1
cluster.railway_xds_cluster.membership_total: 1
cluster.railway_xds_cluster.original_dst_host_invalid: 0
cluster.railway_xds_cluster.retry_or_shadow_abandoned: 0
cluster.railway_xds_cluster.update_attempt: 0
cluster.railway_xds_cluster.update_empty: 0
cluster.railway_xds_cluster.update_failure: 0
cluster.railway_xds_cluster.update_no_rebuild: 0
cluster.railway_xds_cluster.update_success: 0
cluster.railway_xds_cluster.upstream_cx_active: 1
cluster.railway_xds_cluster.upstream_cx_close_notify: 0
cluster.railway_xds_cluster.upstream_cx_connect_attempts_exceeded: 0
cluster.railway_xds_cluster.upstream_cx_connect_fail: 0
cluster.railway_xds_cluster.upstream_cx_connect_timeout: 0
cluster.railway_xds_cluster.upstream_cx_destroy: 0
cluster.railway_xds_cluster.upstream_cx_destroy_local: 0
cluster.railway_xds_cluster.upstream_cx_destroy_local_with_active_rq: 0
cluster.railway_xds_cluster.upstream_cx_destroy_remote: 0
cluster.railway_xds_cluster.upstream_cx_destroy_remote_with_active_rq: 0
cluster.railway_xds_cluster.upstream_cx_destroy_with_active_rq: 0
cluster.railway_xds_cluster.upstream_cx_http1_total: 0
cluster.railway_xds_cluster.upstream_cx_http2_total: 1
cluster.railway_xds_cluster.upstream_cx_http3_total: 0
cluster.railway_xds_cluster.upstream_cx_idle_timeout: 0
cluster.railway_xds_cluster.upstream_cx_max_duration_reached: 0
cluster.railway_xds_cluster.upstream_cx_max_requests: 0
cluster.railway_xds_cluster.upstream_cx_none_healthy: 0
cluster.railway_xds_cluster.upstream_cx_overflow: 0
cluster.railway_xds_cluster.upstream_cx_pool_overflow: 0
cluster.railway_xds_cluster.upstream_cx_protocol_error: 0
cluster.railway_xds_cluster.upstream_cx_rx_bytes_buffered: 30
cluster.railway_xds_cluster.upstream_cx_rx_bytes_total: 2296019362
cluster.railway_xds_cluster.upstream_cx_total: 1
cluster.railway_xds_cluster.upstream_cx_tx_bytes_buffered: 0
cluster.railway_xds_cluster.upstream_cx_tx_bytes_total: 51817804
cluster.railway_xds_cluster.upstream_flow_control_backed_up_total: 0
cluster.railway_xds_cluster.upstream_flow_control_drained_total: 0
cluster.railway_xds_cluster.upstream_flow_control_paused_reading_total: 0
cluster.railway_xds_cluster.upstream_flow_control_resumed_reading_total: 0
cluster.railway_xds_cluster.upstream_internal_redirect_failed_total: 0
cluster.railway_xds_cluster.upstream_internal_redirect_succeeded_total: 0
cluster.railway_xds_cluster.upstream_rq_200: 1
cluster.railway_xds_cluster.upstream_rq_2xx: 1
cluster.railway_xds_cluster.upstream_rq_active: 1
cluster.railway_xds_cluster.upstream_rq_cancelled: 0
cluster.railway_xds_cluster.upstream_rq_completed: 1
cluster.railway_xds_cluster.upstream_rq_maintenance_mode: 0
cluster.railway_xds_cluster.upstream_rq_max_duration_reached: 0
cluster.railway_xds_cluster.upstream_rq_pending_active: 0
cluster.railway_xds_cluster.upstream_rq_pending_failure_eject: 0
cluster.railway_xds_cluster.upstream_rq_pending_overflow: 0
cluster.railway_xds_cluster.upstream_rq_pending_total: 1
cluster.railway_xds_cluster.upstream_rq_per_try_idle_timeout: 0
cluster.railway_xds_cluster.upstream_rq_per_try_timeout: 0
cluster.railway_xds_cluster.upstream_rq_retry: 0
cluster.railway_xds_cluster.upstream_rq_retry_backoff_exponential: 0
cluster.railway_xds_cluster.upstream_rq_retry_backoff_ratelimited: 0
cluster.railway_xds_cluster.upstream_rq_retry_limit_exceeded: 0
cluster.railway_xds_cluster.upstream_rq_retry_overflow: 0
cluster.railway_xds_cluster.upstream_rq_retry_success: 0
cluster.railway_xds_cluster.upstream_rq_rx_reset: 0
cluster.railway_xds_cluster.upstream_rq_timeout: 0
cluster.railway_xds_cluster.upstream_rq_total: 1
cluster.railway_xds_cluster.upstream_rq_tx_reset: 0
cluster.railway_xds_cluster.version: 0
cluster_manager.active_clusters: 19947
cluster_manager.cds.init_fetch_timeout: 0
cluster_manager.cds.update_attempt: 120
cluster_manager.cds.update_failure: 0
cluster_manager.cds.update_rejected: 0
cluster_manager.cds.update_success: 119
cluster_manager.cds.update_time: 1649802536288
cluster_manager.cds.version: 2486829869471955647
cluster_manager.cluster_added: 20028
cluster_manager.cluster_modified: 0
cluster_manager.cluster_removed: 81
cluster_manager.cluster_updated: 0
cluster_manager.cluster_updated_via_merge: 0
cluster_manager.update_merge_cancelled: 0
cluster_manager.update_out_of_merge_window: 0
cluster_manager.warming_clusters: 0
control_plane.connected_state: 1
control_plane.pending_requests: 0
control_plane.rate_limit_enforced: 0
envoy.overload_actions.reset_high_memory_stream.count: 0
filesystem.flushed_by_timer: 0
filesystem.reopen_failed: 0
filesystem.write_buffered: 0
filesystem.write_completed: 0
filesystem.write_failed: 0
filesystem.write_total_buffered: 0
http.admin.downstream_cx_active: 1
http.admin.downstream_cx_delayed_close_timeout: 0
http.admin.downstream_cx_destroy: 713
http.admin.downstream_cx_destroy_active_rq: 0
http.admin.downstream_cx_destroy_local: 0
http.admin.downstream_cx_destroy_local_active_rq: 0
http.admin.downstream_cx_destroy_remote: 713
http.admin.downstream_cx_destroy_remote_active_rq: 0
http.admin.downstream_cx_drain_close: 0
http.admin.downstream_cx_http1_active: 1
http.admin.downstream_cx_http1_total: 714
http.admin.downstream_cx_http2_active: 0
http.admin.downstream_cx_http2_total: 0
http.admin.downstream_cx_http3_active: 0
http.admin.downstream_cx_http3_total: 0
http.admin.downstream_cx_idle_timeout: 0
http.admin.downstream_cx_max_duration_reached: 0
http.admin.downstream_cx_max_requests_reached: 0
http.admin.downstream_cx_overload_disable_keepalive: 0
http.admin.downstream_cx_protocol_error: 0
http.admin.downstream_cx_rx_bytes_buffered: 84
http.admin.downstream_cx_rx_bytes_total: 111602
http.admin.downstream_cx_ssl_active: 0
http.admin.downstream_cx_ssl_total: 0
http.admin.downstream_cx_total: 714
http.admin.downstream_cx_tx_bytes_buffered: 0
http.admin.downstream_cx_tx_bytes_total: 22759646
http.admin.downstream_cx_upgrades_active: 0
http.admin.downstream_cx_upgrades_total: 0
http.admin.downstream_flow_control_paused_reading_total: 0
http.admin.downstream_flow_control_resumed_reading_total: 0
http.admin.downstream_rq_1xx: 0
http.admin.downstream_rq_2xx: 713
http.admin.downstream_rq_3xx: 0
http.admin.downstream_rq_4xx: 0
http.admin.downstream_rq_5xx: 0
http.admin.downstream_rq_active: 1
http.admin.downstream_rq_completed: 713
http.admin.downstream_rq_failed_path_normalization: 0
http.admin.downstream_rq_header_timeout: 0
http.admin.downstream_rq_http1_total: 714
http.admin.downstream_rq_http2_total: 0
http.admin.downstream_rq_http3_total: 0
http.admin.downstream_rq_idle_timeout: 0
http.admin.downstream_rq_max_duration_reached: 0
http.admin.downstream_rq_non_relative_path: 0
http.admin.downstream_rq_overload_close: 0
http.admin.downstream_rq_redirected_with_normalized_path: 0
http.admin.downstream_rq_rejected_via_ip_detection: 0
http.admin.downstream_rq_response_before_rq_complete: 0
http.admin.downstream_rq_rx_reset: 0
http.admin.downstream_rq_timeout: 0
http.admin.downstream_rq_too_large: 0
http.admin.downstream_rq_total: 714
http.admin.downstream_rq_tx_reset: 0
http.admin.downstream_rq_ws_on_non_ws_route: 0
http.admin.rs_too_large: 0
http.async-client.no_cluster: 0
http.async-client.no_route: 0
http.async-client.passthrough_internal_redirect_bad_location: 0
http.async-client.passthrough_internal_redirect_no_route: 0
http.async-client.passthrough_internal_redirect_predicate: 0
http.async-client.passthrough_internal_redirect_too_many_redirects: 0
http.async-client.passthrough_internal_redirect_unsafe_scheme: 0
http.async-client.rq_direct_response: 0
http.async-client.rq_redirect: 0
http.async-client.rq_reset_after_downstream_response_started: 0
http.async-client.rq_total: 1
http.http.downstream_cx_active: 1224
http.http.downstream_cx_delayed_close_timeout: 339
http.http.downstream_cx_destroy: 1399
http.http.downstream_cx_destroy_active_rq: 0
http.http.downstream_cx_destroy_local: 339
http.http.downstream_cx_destroy_local_active_rq: 0
http.http.downstream_cx_destroy_remote: 1060
http.http.downstream_cx_destroy_remote_active_rq: 0
http.http.downstream_cx_drain_close: 0
http.http.downstream_cx_http1_active: 1224
http.http.downstream_cx_http1_total: 2623
http.http.downstream_cx_http2_active: 0
http.http.downstream_cx_http2_total: 0
http.http.downstream_cx_http3_active: 0
http.http.downstream_cx_http3_total: 0
http.http.downstream_cx_idle_timeout: 0
http.http.downstream_cx_max_duration_reached: 0
http.http.downstream_cx_max_requests_reached: 0
http.http.downstream_cx_overload_disable_keepalive: 0
http.http.downstream_cx_protocol_error: 2
http.http.downstream_cx_rx_bytes_buffered: 694759
http.http.downstream_cx_rx_bytes_total: 1675285917
http.http.downstream_cx_ssl_active: 0
http.http.downstream_cx_ssl_total: 0
http.http.downstream_cx_total: 2623
http.http.downstream_cx_tx_bytes_buffered: 0
http.http.downstream_cx_tx_bytes_total: 1172707534
http.http.downstream_cx_upgrades_active: 0
http.http.downstream_cx_upgrades_total: 0
http.http.downstream_flow_control_paused_reading_total: 0
http.http.downstream_flow_control_resumed_reading_total: 0
http.http.downstream_rq_1xx: 0
http.http.downstream_rq_2xx: 0
http.http.downstream_rq_3xx: 2956423
http.http.downstream_rq_4xx: 315
http.http.downstream_rq_5xx: 0
http.http.downstream_rq_active: 0
http.http.downstream_rq_completed: 2956738
http.http.downstream_rq_failed_path_normalization: 0
http.http.downstream_rq_header_timeout: 0
http.http.downstream_rq_http1_total: 2956738
http.http.downstream_rq_http2_total: 0
http.http.downstream_rq_http3_total: 0
http.http.downstream_rq_idle_timeout: 0
http.http.downstream_rq_max_duration_reached: 0
http.http.downstream_rq_non_relative_path: 0
http.http.downstream_rq_overload_close: 0
http.http.downstream_rq_redirected_with_normalized_path: 0
http.http.downstream_rq_rejected_via_ip_detection: 0
http.http.downstream_rq_response_before_rq_complete: 106
http.http.downstream_rq_rx_reset: 106
http.http.downstream_rq_timeout: 0
http.http.downstream_rq_too_large: 0
http.http.downstream_rq_total: 2956738
http.http.downstream_rq_tx_reset: 0
http.http.downstream_rq_ws_on_non_ws_route: 0
http.http.no_cluster: 0
http.http.no_route: 2
http.http.passthrough_internal_redirect_bad_location: 0
http.http.passthrough_internal_redirect_no_route: 0
http.http.passthrough_internal_redirect_predicate: 0
http.http.passthrough_internal_redirect_too_many_redirects: 0
http.http.passthrough_internal_redirect_unsafe_scheme: 0
http.http.rds.http_route_config.config_reload: 1
http.http.rds.http_route_config.config_reload_time_ms: 1649797937577
http.http.rds.http_route_config.init_fetch_timeout: 1
http.http.rds.http_route_config.update_attempt: 3
http.http.rds.http_route_config.update_empty: 0
http.http.rds.http_route_config.update_failure: 0
http.http.rds.http_route_config.update_rejected: 0
http.http.rds.http_route_config.update_success: 1
http.http.rds.http_route_config.update_time: 1649797937577
http.http.rds.http_route_config.version: 10194100587458576616
http.http.rq_direct_response: 2956423
http.http.rq_redirect: 0
http.http.rq_reset_after_downstream_response_started: 0
http.http.rq_total: 2956735
http.http.rs_too_large: 0
http.http.tracing.client_enabled: 0
http.http.tracing.health_check: 0
http.http.tracing.not_traceable: 0
http.http.tracing.random_sampling: 0
http.http.tracing.service_forced: 0
http.https.downstream_cx_active: 5643
http.https.downstream_cx_delayed_close_timeout: 3542
http.https.downstream_cx_destroy: 175304
http.https.downstream_cx_destroy_active_rq: 5329
http.https.downstream_cx_destroy_local: 9729
http.https.downstream_cx_destroy_local_active_rq: 0
http.https.downstream_cx_destroy_remote: 165575
http.https.downstream_cx_destroy_remote_active_rq: 5329
http.https.downstream_cx_drain_close: 40644
http.https.downstream_cx_http1_active: 990
http.https.downstream_cx_http1_total: 123681
http.https.downstream_cx_http2_active: 4624
http.https.downstream_cx_http2_total: 53927
http.https.downstream_cx_http3_active: 0
http.https.downstream_cx_http3_total: 0
http.https.downstream_cx_idle_timeout: 18
http.https.downstream_cx_max_duration_reached: 0
http.https.downstream_cx_max_requests_reached: 0
http.https.downstream_cx_overload_disable_keepalive: 0
http.https.downstream_cx_protocol_error: 12
http.https.downstream_cx_rx_bytes_buffered: 1189909
http.https.downstream_cx_rx_bytes_total: 3785524095
http.https.downstream_cx_ssl_active: 5643
http.https.downstream_cx_ssl_total: 180947
http.https.downstream_cx_total: 180947
http.https.downstream_cx_tx_bytes_buffered: 4930064
http.https.downstream_cx_tx_bytes_total: 11391226786
http.https.downstream_cx_upgrades_active: 933
http.https.downstream_cx_upgrades_total: 10883
http.https.downstream_flow_control_paused_reading_total: 28
http.https.downstream_flow_control_resumed_reading_total: 28
http.https.downstream_rq_1xx: 6351
http.https.downstream_rq_2xx: 906891
http.https.downstream_rq_3xx: 13561
http.https.downstream_rq_4xx: 103747
http.https.downstream_rq_5xx: 11552
http.https.downstream_rq_active: 943
http.https.downstream_rq_completed: 1042102
http.https.downstream_rq_failed_path_normalization: 0
http.https.downstream_rq_header_timeout: 0
http.https.downstream_rq_http1_total: 325770
http.https.downstream_rq_http2_total: 717528
http.https.downstream_rq_http3_total: 0
http.https.downstream_rq_idle_timeout: 42
http.https.downstream_rq_max_duration_reached: 0
http.https.downstream_rq_non_relative_path: 0
http.https.downstream_rq_overload_close: 0
http.https.downstream_rq_redirected_with_normalized_path: 0
http.https.downstream_rq_rejected_via_ip_detection: 0
http.https.downstream_rq_response_before_rq_complete: 15012
http.https.downstream_rq_rx_reset: 15473
http.https.downstream_rq_timeout: 0
http.https.downstream_rq_too_large: 0
http.https.downstream_rq_total: 1043298
http.https.downstream_rq_tx_reset: 1390
http.https.downstream_rq_ws_on_non_ws_route: 0
http.https.no_cluster: 10
http.https.no_route: 100
http.https.passthrough_internal_redirect_bad_location: 0
http.https.passthrough_internal_redirect_no_route: 0
http.https.passthrough_internal_redirect_predicate: 0
http.https.passthrough_internal_redirect_too_many_redirects: 0
http.https.passthrough_internal_redirect_unsafe_scheme: 0
http.https.rds.https_route_config.config_reload: 142
http.https.rds.https_route_config.config_reload_time_ms: 1649802538356
http.https.rds.https_route_config.init_fetch_timeout: 1
http.https.rds.https_route_config.update_attempt: 144
http.https.rds.https_route_config.update_empty: 0
http.https.rds.https_route_config.update_failure: 0
http.https.rds.https_route_config.update_rejected: 0
http.https.rds.https_route_config.update_success: 142
http.https.rds.https_route_config.update_time: 1649802538357
http.https.rds.https_route_config.version: 2486829869471955647
http.https.rq_direct_response: 28262
http.https.rq_redirect: 0
http.https.rq_reset_after_downstream_response_started: 0
http.https.rq_total: 1042353
http.https.rs_too_large: 0
http.https.tracing.client_enabled: 0
http.https.tracing.health_check: 0
http.https.tracing.not_traceable: 0
http.https.tracing.random_sampling: 0
http.https.tracing.service_forced: 0
http.https.user_agent.android.downstream_cx_destroy_remote_active_rq: 1
http.https.user_agent.android.downstream_cx_total: 41976
http.https.user_agent.android.downstream_rq_total: 41976
http.https.user_agent.ios.downstream_cx_destroy_remote_active_rq: 0
http.https.user_agent.ios.downstream_cx_total: 245
http.https.user_agent.ios.downstream_rq_total: 245
http1.dropped_headers_with_underscores: 0
http1.metadata_not_supported_error: 0
http1.requests_rejected_with_underscores_in_headers: 0
http1.response_flood: 0
http2.dropped_headers_with_underscores: 0
http2.header_overflow: 0
http2.headers_cb_no_stream: 0
http2.inbound_empty_frames_flood: 0
http2.inbound_priority_frames_flood: 0
http2.inbound_window_update_frames_flood: 0
http2.keepalive_timeout: 0
http2.metadata_empty_frames: 0
http2.outbound_control_flood: 0
http2.outbound_flood: 0
http2.pending_send_bytes: 0
http2.requests_rejected_with_underscores_in_headers: 0
http2.rx_messaging_error: 0
http2.rx_reset: 87
http2.stream_refused_errors: 0
http2.streams_active: 7
http2.trailers: 0
http2.tx_flush_timeout: 0
http2.tx_reset: 2667
http_inspector.http10_found: 1
http_inspector.http11_found: 2620
http_inspector.http2_found: 0
http_inspector.http_not_found: 2
http_inspector.read_error: 3
listener.0.0.0.0_443.downstream_cx_active: 5643
listener.0.0.0.0_443.downstream_cx_destroy: 175304
listener.0.0.0.0_443.downstream_cx_overflow: 0
listener.0.0.0.0_443.downstream_cx_overload_reject: 0
listener.0.0.0.0_443.downstream_cx_total: 180947
listener.0.0.0.0_443.downstream_cx_transport_socket_connect_timeout: 0
listener.0.0.0.0_443.downstream_global_cx_overflow: 0
listener.0.0.0.0_443.downstream_pre_cx_active: 3
listener.0.0.0.0_443.downstream_pre_cx_timeout: 65
listener.0.0.0.0_443.http.https.downstream_rq_1xx: 6351
listener.0.0.0.0_443.http.https.downstream_rq_2xx: 906891
listener.0.0.0.0_443.http.https.downstream_rq_3xx: 13561
listener.0.0.0.0_443.http.https.downstream_rq_4xx: 103747
listener.0.0.0.0_443.http.https.downstream_rq_5xx: 11552
listener.0.0.0.0_443.http.https.downstream_rq_completed: 1042102
listener.0.0.0.0_443.no_filter_chain_match: 0
listener.0.0.0.0_443.server_ssl_socket_factory.downstream_context_secrets_not_ready: 0
listener.0.0.0.0_443.server_ssl_socket_factory.ssl_context_update_by_sds: 1986
listener.0.0.0.0_443.server_ssl_socket_factory.upstream_context_secrets_not_ready: 0
listener.0.0.0.0_443.ssl.ciphers.AES128-SHA: 2
listener.0.0.0.0_443.ssl.ciphers.ECDHE-RSA-AES128-GCM-SHA256: 817
listener.0.0.0.0_443.ssl.ciphers.ECDHE-RSA-AES128-SHA: 972
listener.0.0.0.0_443.ssl.ciphers.ECDHE-RSA-CHACHA20-POLY1305: 47131
listener.0.0.0.0_443.ssl.ciphers.TLS_AES_128_GCM_SHA256: 14968
listener.0.0.0.0_443.ssl.ciphers.TLS_AES_256_GCM_SHA384: 114174
listener.0.0.0.0_443.ssl.ciphers.TLS_CHACHA20_POLY1305_SHA256: 487
listener.0.0.0.0_443.ssl.connection_error: 765
listener.0.0.0.0_443.ssl.curves.P-256: 1607
listener.0.0.0.0_443.ssl.curves.X25519: 176942
listener.0.0.0.0_443.ssl.fail_verify_cert_hash: 0
listener.0.0.0.0_443.ssl.fail_verify_error: 0
listener.0.0.0.0_443.ssl.fail_verify_no_cert: 0
listener.0.0.0.0_443.ssl.fail_verify_san: 0
listener.0.0.0.0_443.ssl.handshake: 178551
listener.0.0.0.0_443.ssl.no_certificate: 178551
listener.0.0.0.0_443.ssl.ocsp_staple_failed: 0
listener.0.0.0.0_443.ssl.ocsp_staple_omitted: 12656
listener.0.0.0.0_443.ssl.ocsp_staple_requests: 12656
listener.0.0.0.0_443.ssl.ocsp_staple_responses: 0
listener.0.0.0.0_443.ssl.session_reused: 29364
listener.0.0.0.0_443.ssl.versions.TLSv1: 31
listener.0.0.0.0_443.ssl.versions.TLSv1.1: 1
listener.0.0.0.0_443.ssl.versions.TLSv1.2: 48890
listener.0.0.0.0_443.ssl.versions.TLSv1.3: 129629
listener.0.0.0.0_443.worker_0.downstream_cx_active: 83
listener.0.0.0.0_443.worker_0.downstream_cx_total: 2859
listener.0.0.0.0_443.worker_1.downstream_cx_active: 90
listener.0.0.0.0_443.worker_1.downstream_cx_total: 2950
listener.0.0.0.0_443.worker_10.downstream_cx_active: 86
listener.0.0.0.0_443.worker_10.downstream_cx_total: 2859
listener.0.0.0.0_443.worker_11.downstream_cx_active: 94
listener.0.0.0.0_443.worker_11.downstream_cx_total: 2841
listener.0.0.0.0_443.worker_12.downstream_cx_active: 88
listener.0.0.0.0_443.worker_12.downstream_cx_total: 2875
listener.0.0.0.0_443.worker_13.downstream_cx_active: 89
listener.0.0.0.0_443.worker_13.downstream_cx_total: 2827
listener.0.0.0.0_443.worker_14.downstream_cx_active: 70
listener.0.0.0.0_443.worker_14.downstream_cx_total: 2893
listener.0.0.0.0_443.worker_15.downstream_cx_active: 87
listener.0.0.0.0_443.worker_15.downstream_cx_total: 2854
listener.0.0.0.0_443.worker_16.downstream_cx_active: 75
listener.0.0.0.0_443.worker_16.downstream_cx_total: 2815
listener.0.0.0.0_443.worker_17.downstream_cx_active: 77
listener.0.0.0.0_443.worker_17.downstream_cx_total: 2873
listener.0.0.0.0_443.worker_18.downstream_cx_active: 77
listener.0.0.0.0_443.worker_18.downstream_cx_total: 2731
listener.0.0.0.0_443.worker_19.downstream_cx_active: 89
listener.0.0.0.0_443.worker_19.downstream_cx_total: 2883
listener.0.0.0.0_443.worker_2.downstream_cx_active: 109
listener.0.0.0.0_443.worker_2.downstream_cx_total: 2756
listener.0.0.0.0_443.worker_20.downstream_cx_active: 80
listener.0.0.0.0_443.worker_20.downstream_cx_total: 2813
listener.0.0.0.0_443.worker_21.downstream_cx_active: 94
listener.0.0.0.0_443.worker_21.downstream_cx_total: 2878
listener.0.0.0.0_443.worker_22.downstream_cx_active: 90
listener.0.0.0.0_443.worker_22.downstream_cx_total: 2796
listener.0.0.0.0_443.worker_23.downstream_cx_active: 76
listener.0.0.0.0_443.worker_23.downstream_cx_total: 2830
listener.0.0.0.0_443.worker_24.downstream_cx_active: 81
listener.0.0.0.0_443.worker_24.downstream_cx_total: 2841
listener.0.0.0.0_443.worker_25.downstream_cx_active: 104
listener.0.0.0.0_443.worker_25.downstream_cx_total: 2885
listener.0.0.0.0_443.worker_26.downstream_cx_active: 85
listener.0.0.0.0_443.worker_26.downstream_cx_total: 2766
listener.0.0.0.0_443.worker_27.downstream_cx_active: 99
listener.0.0.0.0_443.worker_27.downstream_cx_total: 2724
listener.0.0.0.0_443.worker_28.downstream_cx_active: 92
listener.0.0.0.0_443.worker_28.downstream_cx_total: 2980
listener.0.0.0.0_443.worker_29.downstream_cx_active: 100
listener.0.0.0.0_443.worker_29.downstream_cx_total: 2892
listener.0.0.0.0_443.worker_3.downstream_cx_active: 90
listener.0.0.0.0_443.worker_3.downstream_cx_total: 2678
listener.0.0.0.0_443.worker_30.downstream_cx_active: 83
listener.0.0.0.0_443.worker_30.downstream_cx_total: 2785
listener.0.0.0.0_443.worker_31.downstream_cx_active: 81
listener.0.0.0.0_443.worker_31.downstream_cx_total: 2768
listener.0.0.0.0_443.worker_32.downstream_cx_active: 88
listener.0.0.0.0_443.worker_32.downstream_cx_total: 2720
listener.0.0.0.0_443.worker_33.downstream_cx_active: 81
listener.0.0.0.0_443.worker_33.downstream_cx_total: 2876
listener.0.0.0.0_443.worker_34.downstream_cx_active: 74
listener.0.0.0.0_443.worker_34.downstream_cx_total: 2806
listener.0.0.0.0_443.worker_35.downstream_cx_active: 81
listener.0.0.0.0_443.worker_35.downstream_cx_total: 2835
listener.0.0.0.0_443.worker_36.downstream_cx_active: 77
listener.0.0.0.0_443.worker_36.downstream_cx_total: 2822
listener.0.0.0.0_443.worker_37.downstream_cx_active: 95
listener.0.0.0.0_443.worker_37.downstream_cx_total: 2843
listener.0.0.0.0_443.worker_38.downstream_cx_active: 95
listener.0.0.0.0_443.worker_38.downstream_cx_total: 2952
listener.0.0.0.0_443.worker_39.downstream_cx_active: 88
listener.0.0.0.0_443.worker_39.downstream_cx_total: 2679
listener.0.0.0.0_443.worker_4.downstream_cx_active: 100
listener.0.0.0.0_443.worker_4.downstream_cx_total: 2772
listener.0.0.0.0_443.worker_40.downstream_cx_active: 96
listener.0.0.0.0_443.worker_40.downstream_cx_total: 2844
listener.0.0.0.0_443.worker_41.downstream_cx_active: 71
listener.0.0.0.0_443.worker_41.downstream_cx_total: 2707
listener.0.0.0.0_443.worker_42.downstream_cx_active: 93
listener.0.0.0.0_443.worker_42.downstream_cx_total: 2769
listener.0.0.0.0_443.worker_43.downstream_cx_active: 88
listener.0.0.0.0_443.worker_43.downstream_cx_total: 2755
listener.0.0.0.0_443.worker_44.downstream_cx_active: 86
listener.0.0.0.0_443.worker_44.downstream_cx_total: 2808
listener.0.0.0.0_443.worker_45.downstream_cx_active: 90
listener.0.0.0.0_443.worker_45.downstream_cx_total: 2727
listener.0.0.0.0_443.worker_46.downstream_cx_active: 89
listener.0.0.0.0_443.worker_46.downstream_cx_total: 2803
listener.0.0.0.0_443.worker_47.downstream_cx_active: 95
listener.0.0.0.0_443.worker_47.downstream_cx_total: 2880
listener.0.0.0.0_443.worker_48.downstream_cx_active: 97
listener.0.0.0.0_443.worker_48.downstream_cx_total: 2770
listener.0.0.0.0_443.worker_49.downstream_cx_active: 88
listener.0.0.0.0_443.worker_49.downstream_cx_total: 2769
listener.0.0.0.0_443.worker_5.downstream_cx_active: 82
listener.0.0.0.0_443.worker_5.downstream_cx_total: 2887
listener.0.0.0.0_443.worker_50.downstream_cx_active: 90
listener.0.0.0.0_443.worker_50.downstream_cx_total: 2879
listener.0.0.0.0_443.worker_51.downstream_cx_active: 84
listener.0.0.0.0_443.worker_51.downstream_cx_total: 2852
listener.0.0.0.0_443.worker_52.downstream_cx_active: 76
listener.0.0.0.0_443.worker_52.downstream_cx_total: 2912
listener.0.0.0.0_443.worker_53.downstream_cx_active: 85
listener.0.0.0.0_443.worker_53.downstream_cx_total: 2939
listener.0.0.0.0_443.worker_54.downstream_cx_active: 102
listener.0.0.0.0_443.worker_54.downstream_cx_total: 2843
listener.0.0.0.0_443.worker_55.downstream_cx_active: 106
listener.0.0.0.0_443.worker_55.downstream_cx_total: 2727
listener.0.0.0.0_443.worker_56.downstream_cx_active: 95
listener.0.0.0.0_443.worker_56.downstream_cx_total: 2787
listener.0.0.0.0_443.worker_57.downstream_cx_active: 86
listener.0.0.0.0_443.worker_57.downstream_cx_total: 2865
listener.0.0.0.0_443.worker_58.downstream_cx_active: 76
listener.0.0.0.0_443.worker_58.downstream_cx_total: 2922
listener.0.0.0.0_443.worker_59.downstream_cx_active: 100
listener.0.0.0.0_443.worker_59.downstream_cx_total: 2951
listener.0.0.0.0_443.worker_6.downstream_cx_active: 102
listener.0.0.0.0_443.worker_6.downstream_cx_total: 2979
listener.0.0.0.0_443.worker_60.downstream_cx_active: 93
listener.0.0.0.0_443.worker_60.downstream_cx_total: 2860
listener.0.0.0.0_443.worker_61.downstream_cx_active: 70
listener.0.0.0.0_443.worker_61.downstream_cx_total: 2786
listener.0.0.0.0_443.worker_62.downstream_cx_active: 93
listener.0.0.0.0_443.worker_62.downstream_cx_total: 2948
listener.0.0.0.0_443.worker_63.downstream_cx_active: 88
listener.0.0.0.0_443.worker_63.downstream_cx_total: 2785
listener.0.0.0.0_443.worker_7.downstream_cx_active: 99
listener.0.0.0.0_443.worker_7.downstream_cx_total: 2795
listener.0.0.0.0_443.worker_8.downstream_cx_active: 74
listener.0.0.0.0_443.worker_8.downstream_cx_total: 2613
listener.0.0.0.0_443.worker_9.downstream_cx_active: 101
listener.0.0.0.0_443.worker_9.downstream_cx_total: 2828
listener.0.0.0.0_80.downstream_cx_active: 1224
listener.0.0.0.0_80.downstream_cx_destroy: 1399
listener.0.0.0.0_80.downstream_cx_overflow: 0
listener.0.0.0.0_80.downstream_cx_overload_reject: 0
listener.0.0.0.0_80.downstream_cx_total: 2623
listener.0.0.0.0_80.downstream_cx_transport_socket_connect_timeout: 0
listener.0.0.0.0_80.downstream_global_cx_overflow: 0
listener.0.0.0.0_80.downstream_pre_cx_active: 0
listener.0.0.0.0_80.downstream_pre_cx_timeout: 6
listener.0.0.0.0_80.http.http.downstream_rq_1xx: 0
listener.0.0.0.0_80.http.http.downstream_rq_2xx: 0
listener.0.0.0.0_80.http.http.downstream_rq_3xx: 2956422
listener.0.0.0.0_80.http.http.downstream_rq_4xx: 315
listener.0.0.0.0_80.http.http.downstream_rq_5xx: 0
listener.0.0.0.0_80.http.http.downstream_rq_completed: 2956738
listener.0.0.0.0_80.no_filter_chain_match: 0
listener.0.0.0.0_80.worker_0.downstream_cx_active: 12
listener.0.0.0.0_80.worker_0.downstream_cx_total: 42
listener.0.0.0.0_80.worker_1.downstream_cx_active: 17
listener.0.0.0.0_80.worker_1.downstream_cx_total: 40
listener.0.0.0.0_80.worker_10.downstream_cx_active: 25
listener.0.0.0.0_80.worker_10.downstream_cx_total: 44
listener.0.0.0.0_80.worker_11.downstream_cx_active: 12
listener.0.0.0.0_80.worker_11.downstream_cx_total: 33
listener.0.0.0.0_80.worker_12.downstream_cx_active: 24
listener.0.0.0.0_80.worker_12.downstream_cx_total: 52
listener.0.0.0.0_80.worker_13.downstream_cx_active: 21
listener.0.0.0.0_80.worker_13.downstream_cx_total: 44
listener.0.0.0.0_80.worker_14.downstream_cx_active: 25
listener.0.0.0.0_80.worker_14.downstream_cx_total: 47
listener.0.0.0.0_80.worker_15.downstream_cx_active: 20
listener.0.0.0.0_80.worker_15.downstream_cx_total: 43
listener.0.0.0.0_80.worker_16.downstream_cx_active: 24
listener.0.0.0.0_80.worker_16.downstream_cx_total: 52
listener.0.0.0.0_80.worker_17.downstream_cx_active: 21
listener.0.0.0.0_80.worker_17.downstream_cx_total: 45
listener.0.0.0.0_80.worker_18.downstream_cx_active: 15
listener.0.0.0.0_80.worker_18.downstream_cx_total: 40
listener.0.0.0.0_80.worker_19.downstream_cx_active: 23
listener.0.0.0.0_80.worker_19.downstream_cx_total: 48
listener.0.0.0.0_80.worker_2.downstream_cx_active: 18
listener.0.0.0.0_80.worker_2.downstream_cx_total: 39
listener.0.0.0.0_80.worker_20.downstream_cx_active: 16
listener.0.0.0.0_80.worker_20.downstream_cx_total: 36
listener.0.0.0.0_80.worker_21.downstream_cx_active: 13
listener.0.0.0.0_80.worker_21.downstream_cx_total: 31
listener.0.0.0.0_80.worker_22.downstream_cx_active: 13
listener.0.0.0.0_80.worker_22.downstream_cx_total: 36
listener.0.0.0.0_80.worker_23.downstream_cx_active: 24
listener.0.0.0.0_80.worker_23.downstream_cx_total: 47
listener.0.0.0.0_80.worker_24.downstream_cx_active: 15
listener.0.0.0.0_80.worker_24.downstream_cx_total: 34
listener.0.0.0.0_80.worker_25.downstream_cx_active: 19
listener.0.0.0.0_80.worker_25.downstream_cx_total: 51
listener.0.0.0.0_80.worker_26.downstream_cx_active: 21
listener.0.0.0.0_80.worker_26.downstream_cx_total: 42
listener.0.0.0.0_80.worker_27.downstream_cx_active: 23
listener.0.0.0.0_80.worker_27.downstream_cx_total: 47
listener.0.0.0.0_80.worker_28.downstream_cx_active: 25
listener.0.0.0.0_80.worker_28.downstream_cx_total: 45
listener.0.0.0.0_80.worker_29.downstream_cx_active: 16
listener.0.0.0.0_80.worker_29.downstream_cx_total: 34
listener.0.0.0.0_80.worker_3.downstream_cx_active: 16
listener.0.0.0.0_80.worker_3.downstream_cx_total: 47
listener.0.0.0.0_80.worker_30.downstream_cx_active: 19
listener.0.0.0.0_80.worker_30.downstream_cx_total: 47
listener.0.0.0.0_80.worker_31.downstream_cx_active: 14
listener.0.0.0.0_80.worker_31.downstream_cx_total: 31
listener.0.0.0.0_80.worker_32.downstream_cx_active: 19
listener.0.0.0.0_80.worker_32.downstream_cx_total: 42
listener.0.0.0.0_80.worker_33.downstream_cx_active: 21
listener.0.0.0.0_80.worker_33.downstream_cx_total: 48
listener.0.0.0.0_80.worker_34.downstream_cx_active: 28
listener.0.0.0.0_80.worker_34.downstream_cx_total: 53
listener.0.0.0.0_80.worker_35.downstream_cx_active: 15
listener.0.0.0.0_80.worker_35.downstream_cx_total: 43
listener.0.0.0.0_80.worker_36.downstream_cx_active: 17
listener.0.0.0.0_80.worker_36.downstream_cx_total: 43
listener.0.0.0.0_80.worker_37.downstream_cx_active: 19
listener.0.0.0.0_80.worker_37.downstream_cx_total: 39
listener.0.0.0.0_80.worker_38.downstream_cx_active: 16
listener.0.0.0.0_80.worker_38.downstream_cx_total: 37
listener.0.0.0.0_80.worker_39.downstream_cx_active: 19
listener.0.0.0.0_80.worker_39.downstream_cx_total: 43
listener.0.0.0.0_80.worker_4.downstream_cx_active: 17
listener.0.0.0.0_80.worker_4.downstream_cx_total: 28
listener.0.0.0.0_80.worker_40.downstream_cx_active: 27
listener.0.0.0.0_80.worker_40.downstream_cx_total: 49
listener.0.0.0.0_80.worker_41.downstream_cx_active: 12
listener.0.0.0.0_80.worker_41.downstream_cx_total: 31
listener.0.0.0.0_80.worker_42.downstream_cx_active: 21
listener.0.0.0.0_80.worker_42.downstream_cx_total: 47
listener.0.0.0.0_80.worker_43.downstream_cx_active: 16
listener.0.0.0.0_80.worker_43.downstream_cx_total: 32
listener.0.0.0.0_80.worker_44.downstream_cx_active: 20
listener.0.0.0.0_80.worker_44.downstream_cx_total: 33
listener.0.0.0.0_80.worker_45.downstream_cx_active: 24
listener.0.0.0.0_80.worker_45.downstream_cx_total: 41
listener.0.0.0.0_80.worker_46.downstream_cx_active: 20
listener.0.0.0.0_80.worker_46.downstream_cx_total: 42
listener.0.0.0.0_80.worker_47.downstream_cx_active: 19
listener.0.0.0.0_80.worker_47.downstream_cx_total: 40
listener.0.0.0.0_80.worker_48.downstream_cx_active: 17
listener.0.0.0.0_80.worker_48.downstream_cx_total: 32
listener.0.0.0.0_80.worker_49.downstream_cx_active: 19
listener.0.0.0.0_80.worker_49.downstream_cx_total: 34
listener.0.0.0.0_80.worker_5.downstream_cx_active: 18
listener.0.0.0.0_80.worker_5.downstream_cx_total: 42
listener.0.0.0.0_80.worker_50.downstream_cx_active: 26
listener.0.0.0.0_80.worker_50.downstream_cx_total: 52
listener.0.0.0.0_80.worker_51.downstream_cx_active: 20
listener.0.0.0.0_80.worker_51.downstream_cx_total: 45
listener.0.0.0.0_80.worker_52.downstream_cx_active: 19
listener.0.0.0.0_80.worker_52.downstream_cx_total: 40
listener.0.0.0.0_80.worker_53.downstream_cx_active: 19
listener.0.0.0.0_80.worker_53.downstream_cx_total: 46
listener.0.0.0.0_80.worker_54.downstream_cx_active: 22
listener.0.0.0.0_80.worker_54.downstream_cx_total: 45
listener.0.0.0.0_80.worker_55.downstream_cx_active: 24
listener.0.0.0.0_80.worker_55.downstream_cx_total: 54
listener.0.0.0.0_80.worker_56.downstream_cx_active: 12
listener.0.0.0.0_80.worker_56.downstream_cx_total: 34
listener.0.0.0.0_80.worker_57.downstream_cx_active: 13
listener.0.0.0.0_80.worker_57.downstream_cx_total: 32
listener.0.0.0.0_80.worker_58.downstream_cx_active: 19
listener.0.0.0.0_80.worker_58.downstream_cx_total: 39
listener.0.0.0.0_80.worker_59.downstream_cx_active: 23
listener.0.0.0.0_80.worker_59.downstream_cx_total: 42
listener.0.0.0.0_80.worker_6.downstream_cx_active: 24
listener.0.0.0.0_80.worker_6.downstream_cx_total: 39
listener.0.0.0.0_80.worker_60.downstream_cx_active: 22
listener.0.0.0.0_80.worker_60.downstream_cx_total: 40
listener.0.0.0.0_80.worker_61.downstream_cx_active: 15
listener.0.0.0.0_80.worker_61.downstream_cx_total: 34
listener.0.0.0.0_80.worker_62.downstream_cx_active: 19
listener.0.0.0.0_80.worker_62.downstream_cx_total: 41
listener.0.0.0.0_80.worker_63.downstream_cx_active: 19
listener.0.0.0.0_80.worker_63.downstream_cx_total: 35
listener.0.0.0.0_80.worker_7.downstream_cx_active: 22
listener.0.0.0.0_80.worker_7.downstream_cx_total: 41
listener.0.0.0.0_80.worker_8.downstream_cx_active: 20
listener.0.0.0.0_80.worker_8.downstream_cx_total: 42
listener.0.0.0.0_80.worker_9.downstream_cx_active: 11
listener.0.0.0.0_80.worker_9.downstream_cx_total: 26
listener.admin.downstream_cx_active: 1
listener.admin.downstream_cx_destroy: 713
listener.admin.downstream_cx_overflow: 0
listener.admin.downstream_cx_overload_reject: 0
listener.admin.downstream_cx_total: 714
listener.admin.downstream_cx_transport_socket_connect_timeout: 0
listener.admin.downstream_global_cx_overflow: 0
listener.admin.downstream_pre_cx_active: 0
listener.admin.downstream_pre_cx_timeout: 0
listener.admin.http.admin.downstream_rq_1xx: 0
listener.admin.http.admin.downstream_rq_2xx: 713
listener.admin.http.admin.downstream_rq_3xx: 0
listener.admin.http.admin.downstream_rq_4xx: 0
listener.admin.http.admin.downstream_rq_5xx: 0
listener.admin.http.admin.downstream_rq_completed: 713
listener.admin.main_thread.downstream_cx_active: 1
listener.admin.main_thread.downstream_cx_total: 714
listener.admin.no_filter_chain_match: 0
listener_manager.lds.init_fetch_timeout: 0
listener_manager.lds.update_attempt: 144
listener_manager.lds.update_failure: 0
listener_manager.lds.update_rejected: 0
listener_manager.lds.update_success: 143
listener_manager.lds.update_time: 1649802540829
listener_manager.lds.version: 2486829869471955647
listener_manager.listener_added: 2
listener_manager.listener_create_failure: 0
listener_manager.listener_create_success: 9216
listener_manager.listener_in_place_updated: 142
listener_manager.listener_modified: 142
listener_manager.listener_removed: 0
listener_manager.listener_stopped: 0
listener_manager.total_filter_chains_draining: 22
listener_manager.total_listeners_active: 2
listener_manager.total_listeners_draining: 0
listener_manager.total_listeners_warming: 0
listener_manager.workers_started: 1
main_thread.watchdog_mega_miss: 287
main_thread.watchdog_miss: 289
overload.envoy.overload_actions.shrink_heap.active: 0
overload.envoy.overload_actions.shrink_heap.scale_percent: 0
overload.envoy.overload_actions.shrink_heap.shrink_count: 0
overload.envoy.overload_actions.stop_accepting_requests.active: 0
overload.envoy.overload_actions.stop_accepting_requests.scale_percent: 0
overload.envoy.resource_monitors.fixed_heap.failed_updates: 0
overload.envoy.resource_monitors.fixed_heap.pressure: 23
overload.envoy.resource_monitors.fixed_heap.skipped_updates: 0
runtime.admin_overrides_active: 0
runtime.deprecated_feature_seen_since_process_start: 0
runtime.deprecated_feature_use: 0
runtime.load_error: 0
runtime.load_success: 1
runtime.num_keys: 0
runtime.num_layers: 0
runtime.override_dir_exists: 0
runtime.override_dir_not_exists: 1
server.compilation_settings.fips_mode: 0
server.concurrency: 64
server.days_until_first_cert_expiring: 0
server.debug_assertion_failures: 0
server.dropped_stat_flushes: 0
server.dynamic_unknown_fields: 0
server.envoy_bug_failures: 0
server.hot_restart_epoch: 0
server.hot_restart_generation: 1
server.live: 1
server.main_thread.watchdog_mega_miss: 287
server.main_thread.watchdog_miss: 289
server.memory_allocated: 22625564096
server.memory_heap_size: 24519901184
server.memory_physical_size: 23603857926
server.parent_connections: 0
server.seconds_until_first_ocsp_response_expiring: 0
server.state: 0
server.static_unknown_fields: 0
server.stats_recent_lookups: 6514310
server.total_connections: 6876
server.uptime: 5344
server.version: 11489287
server.wip_protos: 0
server.worker_0.watchdog_mega_miss: 0
server.worker_0.watchdog_miss: 0
server.worker_1.watchdog_mega_miss: 0
server.worker_1.watchdog_miss: 0
server.worker_10.watchdog_mega_miss: 0
server.worker_10.watchdog_miss: 1
server.worker_11.watchdog_mega_miss: 0
server.worker_11.watchdog_miss: 0
server.worker_12.watchdog_mega_miss: 0
server.worker_12.watchdog_miss: 1
server.worker_13.watchdog_mega_miss: 0
server.worker_13.watchdog_miss: 0
server.worker_14.watchdog_mega_miss: 0
server.worker_14.watchdog_miss: 0
server.worker_15.watchdog_mega_miss: 0
server.worker_15.watchdog_miss: 0
server.worker_16.watchdog_mega_miss: 0
server.worker_16.watchdog_miss: 0
server.worker_17.watchdog_mega_miss: 0
server.worker_17.watchdog_miss: 0
server.worker_18.watchdog_mega_miss: 0
server.worker_18.watchdog_miss: 0
server.worker_19.watchdog_mega_miss: 0
server.worker_19.watchdog_miss: 0
server.worker_2.watchdog_mega_miss: 0
server.worker_2.watchdog_miss: 0
server.worker_20.watchdog_mega_miss: 0
server.worker_20.watchdog_miss: 0
server.worker_21.watchdog_mega_miss: 0
server.worker_21.watchdog_miss: 0
server.worker_22.watchdog_mega_miss: 0
server.worker_22.watchdog_miss: 0
server.worker_23.watchdog_mega_miss: 0
server.worker_23.watchdog_miss: 0
server.worker_24.watchdog_mega_miss: 0
server.worker_24.watchdog_miss: 2
server.worker_25.watchdog_mega_miss: 0
server.worker_25.watchdog_miss: 0
server.worker_26.watchdog_mega_miss: 0
server.worker_26.watchdog_miss: 0
server.worker_27.watchdog_mega_miss: 0
server.worker_27.watchdog_miss: 0
server.worker_28.watchdog_mega_miss: 0
server.worker_28.watchdog_miss: 2
server.worker_29.watchdog_mega_miss: 0
server.worker_29.watchdog_miss: 0
server.worker_3.watchdog_mega_miss: 0
server.worker_3.watchdog_miss: 0
server.worker_30.watchdog_mega_miss: 0
server.worker_30.watchdog_miss: 0
server.worker_31.watchdog_mega_miss: 0
server.worker_31.watchdog_miss: 0
server.worker_32.watchdog_mega_miss: 0
server.worker_32.watchdog_miss: 1
server.worker_33.watchdog_mega_miss: 0
server.worker_33.watchdog_miss: 0
server.worker_34.watchdog_mega_miss: 0
server.worker_34.watchdog_miss: 1
server.worker_35.watchdog_mega_miss: 0
server.worker_35.watchdog_miss: 0
server.worker_36.watchdog_mega_miss: 0
server.worker_36.watchdog_miss: 0
server.worker_37.watchdog_mega_miss: 0
server.worker_37.watchdog_miss: 1
server.worker_38.watchdog_mega_miss: 0
server.worker_38.watchdog_miss: 1
server.worker_39.watchdog_mega_miss: 0
server.worker_39.watchdog_miss: 1
server.worker_4.watchdog_mega_miss: 0
server.worker_4.watchdog_miss: 0
server.worker_40.watchdog_mega_miss: 0
server.worker_40.watchdog_miss: 1
server.worker_41.watchdog_mega_miss: 0
server.worker_41.watchdog_miss: 1
server.worker_42.watchdog_mega_miss: 0
server.worker_42.watchdog_miss: 0
server.worker_43.watchdog_mega_miss: 0
server.worker_43.watchdog_miss: 0
server.worker_44.watchdog_mega_miss: 0
server.worker_44.watchdog_miss: 0
server.worker_45.watchdog_mega_miss: 0
server.worker_45.watchdog_miss: 1
server.worker_46.watchdog_mega_miss: 0
server.worker_46.watchdog_miss: 0
server.worker_47.watchdog_mega_miss: 0
server.worker_47.watchdog_miss: 0
server.worker_48.watchdog_mega_miss: 0
server.worker_48.watchdog_miss: 0
server.worker_49.watchdog_mega_miss: 0
server.worker_49.watchdog_miss: 0
server.worker_5.watchdog_mega_miss: 0
server.worker_5.watchdog_miss: 0
server.worker_50.watchdog_mega_miss: 0
server.worker_50.watchdog_miss: 0
server.worker_51.watchdog_mega_miss: 0
server.worker_51.watchdog_miss: 0
server.worker_52.watchdog_mega_miss: 0
server.worker_52.watchdog_miss: 1
server.worker_53.watchdog_mega_miss: 0
server.worker_53.watchdog_miss: 0
server.worker_54.watchdog_mega_miss: 0
server.worker_54.watchdog_miss: 0
server.worker_55.watchdog_mega_miss: 0
server.worker_55.watchdog_miss: 1
server.worker_56.watchdog_mega_miss: 0
server.worker_56.watchdog_miss: 0
server.worker_57.watchdog_mega_miss: 0
server.worker_57.watchdog_miss: 0
server.worker_58.watchdog_mega_miss: 0
server.worker_58.watchdog_miss: 1
server.worker_59.watchdog_mega_miss: 0
server.worker_59.watchdog_miss: 2
server.worker_6.watchdog_mega_miss: 0
server.worker_6.watchdog_miss: 0
server.worker_60.watchdog_mega_miss: 0
server.worker_60.watchdog_miss: 0
server.worker_61.watchdog_mega_miss: 0
server.worker_61.watchdog_miss: 2
server.worker_62.watchdog_mega_miss: 0
server.worker_62.watchdog_miss: 0
server.worker_63.watchdog_mega_miss: 0
server.worker_63.watchdog_miss: 0
server.worker_7.watchdog_mega_miss: 0
server.worker_7.watchdog_miss: 0
server.worker_8.watchdog_mega_miss: 0
server.worker_8.watchdog_miss: 0
server.worker_9.watchdog_mega_miss: 0
server.worker_9.watchdog_miss: 0
tls_inspector.alpn_found: 57616
tls_inspector.alpn_not_found: 123041
tls_inspector.client_hello_too_large: 0
tls_inspector.connection_closed: 1498
tls_inspector.read_error: 7
tls_inspector.sni_found: 135963
tls_inspector.sni_not_found: 44694
tls_inspector.tls_found: 180657
tls_inspector.tls_not_found: 290
vhost.fallback_virtualhost.vcluster.other.upstream_rq_retry: 0
vhost.fallback_virtualhost.vcluster.other.upstream_rq_retry_limit_exceeded: 0
vhost.fallback_virtualhost.vcluster.other.upstream_rq_retry_overflow: 0
vhost.fallback_virtualhost.vcluster.other.upstream_rq_retry_success: 0
vhost.fallback_virtualhost.vcluster.other.upstream_rq_timeout: 0
vhost.fallback_virtualhost.vcluster.other.upstream_rq_total: 0
vhost.health_virtualhost.vcluster.other.upstream_rq_retry: 0
vhost.health_virtualhost.vcluster.other.upstream_rq_retry_limit_exceeded: 0
vhost.health_virtualhost.vcluster.other.upstream_rq_retry_overflow: 0
vhost.health_virtualhost.vcluster.other.upstream_rq_retry_success: 0
vhost.health_virtualhost.vcluster.other.upstream_rq_timeout: 0
vhost.health_virtualhost.vcluster.other.upstream_rq_total: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_retry: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_retry_limit_exceeded: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_retry_overflow: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_retry_success: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_timeout: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_total: 0
workers.watchdog_mega_miss: 0
workers.watchdog_miss: 21

image

Also tagging @JakeCooper and @soggycactus from the team on this one.
@gschier gschier added bug triage Issue requires triage labels Apr 12, 2022
@mattklein123 mattklein123 added help wanted Needs help! investigate Potential bug that needs verification area/perf and removed triage Issue requires triage labels Apr 13, 2022
@mattklein123
Copy link
Member

Can you list what extensions you are using? Are you using tracing? There have been other reports of memory leaks using tracing and it would be nice to understand if that might be involved here.

Also, can you get a memory profile? We are still working on getting memory profile dumps working using the new tcmalloc so you may have to recompile using gperftools until we get that working. cc @jmarantz @rojkov @wbpcode

@wbpcode
Copy link
Member

wbpcode commented Apr 14, 2022

As matt said, can you provide some more configs about your scene.

@gschier
Copy link
Author

gschier commented Apr 14, 2022

Thanks for the quick response!

In a previous issue around performance, you can find more info on our setup as well as a snippet of our config_dump #19946. We're not doing anything fancy.

We can start working on getting a memory profile next week.

@lambdai
Copy link
Contributor

lambdai commented Apr 15, 2022

re: Heap size doesn't seem to be correlated to num active connections, num draining listeners, or anything else I could find in the stats

How about number of stats ? There are some dynamic allocated stats that may never be destroyed

@gschier
Copy link
Author

gschier commented Apr 16, 2022

How about number of stats ? There are some dynamic allocated stats that may never be destroyed

We disable all stats for our custom resources because Envoy can't handle that many. Here's a full dump of /stats

/stats
cluster_manager.cds.version_text: "snapshot-2022-04-16T00:14:12Z-3"
control_plane.identifier: ""
http.http.rds.http_route_config.version_text: "snapshot-2022-04-16T00:14:12Z-1"
http.https.rds.https_route_config.version_text: ""
listener_manager.lds.version_text: "snapshot-2022-04-16T00:14:12Z-1"
cluster.http_cluster.assignment_stale: 0
cluster.http_cluster.assignment_timeout_received: 0
cluster.http_cluster.bind_errors: 0
cluster.http_cluster.circuit_breakers.default.cx_open: 0
cluster.http_cluster.circuit_breakers.default.cx_pool_open: 0
cluster.http_cluster.circuit_breakers.default.rq_open: 0
cluster.http_cluster.circuit_breakers.default.rq_pending_open: 0
cluster.http_cluster.circuit_breakers.default.rq_retry_open: 0
cluster.http_cluster.circuit_breakers.high.cx_open: 0
cluster.http_cluster.circuit_breakers.high.cx_pool_open: 0
cluster.http_cluster.circuit_breakers.high.rq_open: 0
cluster.http_cluster.circuit_breakers.high.rq_pending_open: 0
cluster.http_cluster.circuit_breakers.high.rq_retry_open: 0
cluster.http_cluster.default.total_match_count: 1
cluster.http_cluster.lb_healthy_panic: 0
cluster.http_cluster.lb_local_cluster_not_ok: 0
cluster.http_cluster.lb_recalculate_zone_structures: 0
cluster.http_cluster.lb_subsets_active: 0
cluster.http_cluster.lb_subsets_created: 0
cluster.http_cluster.lb_subsets_fallback: 0
cluster.http_cluster.lb_subsets_fallback_panic: 0
cluster.http_cluster.lb_subsets_removed: 0
cluster.http_cluster.lb_subsets_selected: 0
cluster.http_cluster.lb_zone_cluster_too_small: 0
cluster.http_cluster.lb_zone_no_capacity_left: 0
cluster.http_cluster.lb_zone_number_differs: 0
cluster.http_cluster.lb_zone_routing_all_directly: 0
cluster.http_cluster.lb_zone_routing_cross_zone: 0
cluster.http_cluster.lb_zone_routing_sampled: 0
cluster.http_cluster.max_host_weight: 0
cluster.http_cluster.membership_change: 1
cluster.http_cluster.membership_degraded: 0
cluster.http_cluster.membership_excluded: 0
cluster.http_cluster.membership_healthy: 1
cluster.http_cluster.membership_total: 1
cluster.http_cluster.original_dst_host_invalid: 0
cluster.http_cluster.retry_or_shadow_abandoned: 0
cluster.http_cluster.update_attempt: 0
cluster.http_cluster.update_empty: 0
cluster.http_cluster.update_failure: 0
cluster.http_cluster.update_no_rebuild: 0
cluster.http_cluster.update_success: 0
cluster.http_cluster.upstream_cx_active: 0
cluster.http_cluster.upstream_cx_close_notify: 0
cluster.http_cluster.upstream_cx_connect_attempts_exceeded: 0
cluster.http_cluster.upstream_cx_connect_fail: 0
cluster.http_cluster.upstream_cx_connect_timeout: 0
cluster.http_cluster.upstream_cx_destroy: 0
cluster.http_cluster.upstream_cx_destroy_local: 0
cluster.http_cluster.upstream_cx_destroy_local_with_active_rq: 0
cluster.http_cluster.upstream_cx_destroy_remote: 0
cluster.http_cluster.upstream_cx_destroy_remote_with_active_rq: 0
cluster.http_cluster.upstream_cx_destroy_with_active_rq: 0
cluster.http_cluster.upstream_cx_http1_total: 0
cluster.http_cluster.upstream_cx_http2_total: 0
cluster.http_cluster.upstream_cx_http3_total: 0
cluster.http_cluster.upstream_cx_idle_timeout: 0
cluster.http_cluster.upstream_cx_max_duration_reached: 0
cluster.http_cluster.upstream_cx_max_requests: 0
cluster.http_cluster.upstream_cx_none_healthy: 0
cluster.http_cluster.upstream_cx_overflow: 0
cluster.http_cluster.upstream_cx_pool_overflow: 0
cluster.http_cluster.upstream_cx_protocol_error: 0
cluster.http_cluster.upstream_cx_rx_bytes_buffered: 0
cluster.http_cluster.upstream_cx_rx_bytes_total: 0
cluster.http_cluster.upstream_cx_total: 0
cluster.http_cluster.upstream_cx_tx_bytes_buffered: 0
cluster.http_cluster.upstream_cx_tx_bytes_total: 0
cluster.http_cluster.upstream_flow_control_backed_up_total: 0
cluster.http_cluster.upstream_flow_control_drained_total: 0
cluster.http_cluster.upstream_flow_control_paused_reading_total: 0
cluster.http_cluster.upstream_flow_control_resumed_reading_total: 0
cluster.http_cluster.upstream_internal_redirect_failed_total: 0
cluster.http_cluster.upstream_internal_redirect_succeeded_total: 0
cluster.http_cluster.upstream_rq_active: 0
cluster.http_cluster.upstream_rq_cancelled: 0
cluster.http_cluster.upstream_rq_completed: 0
cluster.http_cluster.upstream_rq_maintenance_mode: 0
cluster.http_cluster.upstream_rq_max_duration_reached: 0
cluster.http_cluster.upstream_rq_pending_active: 0
cluster.http_cluster.upstream_rq_pending_failure_eject: 0
cluster.http_cluster.upstream_rq_pending_overflow: 0
cluster.http_cluster.upstream_rq_pending_total: 0
cluster.http_cluster.upstream_rq_per_try_idle_timeout: 0
cluster.http_cluster.upstream_rq_per_try_timeout: 0
cluster.http_cluster.upstream_rq_retry: 0
cluster.http_cluster.upstream_rq_retry_backoff_exponential: 0
cluster.http_cluster.upstream_rq_retry_backoff_ratelimited: 0
cluster.http_cluster.upstream_rq_retry_limit_exceeded: 0
cluster.http_cluster.upstream_rq_retry_overflow: 0
cluster.http_cluster.upstream_rq_retry_success: 0
cluster.http_cluster.upstream_rq_rx_reset: 0
cluster.http_cluster.upstream_rq_timeout: 0
cluster.http_cluster.upstream_rq_total: 0
cluster.http_cluster.upstream_rq_tx_reset: 0
cluster.http_cluster.version: 0
cluster.railway_xds_cluster.assignment_stale: 0
cluster.railway_xds_cluster.assignment_timeout_received: 0
cluster.railway_xds_cluster.bind_errors: 0
cluster.railway_xds_cluster.circuit_breakers.default.cx_open: 0
cluster.railway_xds_cluster.circuit_breakers.default.cx_pool_open: 0
cluster.railway_xds_cluster.circuit_breakers.default.rq_open: 0
cluster.railway_xds_cluster.circuit_breakers.default.rq_pending_open: 0
cluster.railway_xds_cluster.circuit_breakers.default.rq_retry_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.cx_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.cx_pool_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.rq_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.rq_pending_open: 0
cluster.railway_xds_cluster.circuit_breakers.high.rq_retry_open: 0
cluster.railway_xds_cluster.default.total_match_count: 1
cluster.railway_xds_cluster.http2.dropped_headers_with_underscores: 0
cluster.railway_xds_cluster.http2.header_overflow: 0
cluster.railway_xds_cluster.http2.headers_cb_no_stream: 0
cluster.railway_xds_cluster.http2.inbound_empty_frames_flood: 0
cluster.railway_xds_cluster.http2.inbound_priority_frames_flood: 0
cluster.railway_xds_cluster.http2.inbound_window_update_frames_flood: 0
cluster.railway_xds_cluster.http2.keepalive_timeout: 0
cluster.railway_xds_cluster.http2.metadata_empty_frames: 0
cluster.railway_xds_cluster.http2.outbound_control_flood: 0
cluster.railway_xds_cluster.http2.outbound_flood: 0
cluster.railway_xds_cluster.http2.pending_send_bytes: 22294950
cluster.railway_xds_cluster.http2.requests_rejected_with_underscores_in_headers: 0
cluster.railway_xds_cluster.http2.rx_messaging_error: 0
cluster.railway_xds_cluster.http2.rx_reset: 0
cluster.railway_xds_cluster.http2.stream_refused_errors: 0
cluster.railway_xds_cluster.http2.streams_active: 1
cluster.railway_xds_cluster.http2.trailers: 0
cluster.railway_xds_cluster.http2.tx_flush_timeout: 0
cluster.railway_xds_cluster.http2.tx_reset: 0
cluster.railway_xds_cluster.internal.upstream_rq_200: 3
cluster.railway_xds_cluster.internal.upstream_rq_2xx: 3
cluster.railway_xds_cluster.internal.upstream_rq_503: 19
cluster.railway_xds_cluster.internal.upstream_rq_5xx: 19
cluster.railway_xds_cluster.internal.upstream_rq_completed: 22
cluster.railway_xds_cluster.lb_healthy_panic: 0
cluster.railway_xds_cluster.lb_local_cluster_not_ok: 0
cluster.railway_xds_cluster.lb_recalculate_zone_structures: 0
cluster.railway_xds_cluster.lb_subsets_active: 0
cluster.railway_xds_cluster.lb_subsets_created: 0
cluster.railway_xds_cluster.lb_subsets_fallback: 0
cluster.railway_xds_cluster.lb_subsets_fallback_panic: 0
cluster.railway_xds_cluster.lb_subsets_removed: 0
cluster.railway_xds_cluster.lb_subsets_selected: 0
cluster.railway_xds_cluster.lb_zone_cluster_too_small: 0
cluster.railway_xds_cluster.lb_zone_no_capacity_left: 0
cluster.railway_xds_cluster.lb_zone_number_differs: 0
cluster.railway_xds_cluster.lb_zone_routing_all_directly: 0
cluster.railway_xds_cluster.lb_zone_routing_cross_zone: 0
cluster.railway_xds_cluster.lb_zone_routing_sampled: 0
cluster.railway_xds_cluster.max_host_weight: 0
cluster.railway_xds_cluster.membership_change: 1
cluster.railway_xds_cluster.membership_degraded: 0
cluster.railway_xds_cluster.membership_excluded: 0
cluster.railway_xds_cluster.membership_healthy: 1
cluster.railway_xds_cluster.membership_total: 1
cluster.railway_xds_cluster.original_dst_host_invalid: 0
cluster.railway_xds_cluster.retry_or_shadow_abandoned: 0
cluster.railway_xds_cluster.update_attempt: 0
cluster.railway_xds_cluster.update_empty: 0
cluster.railway_xds_cluster.update_failure: 0
cluster.railway_xds_cluster.update_no_rebuild: 0
cluster.railway_xds_cluster.update_success: 0
cluster.railway_xds_cluster.upstream_cx_active: 1
cluster.railway_xds_cluster.upstream_cx_close_notify: 0
cluster.railway_xds_cluster.upstream_cx_connect_attempts_exceeded: 0
cluster.railway_xds_cluster.upstream_cx_connect_fail: 18
cluster.railway_xds_cluster.upstream_cx_connect_timeout: 0
cluster.railway_xds_cluster.upstream_cx_destroy: 21
cluster.railway_xds_cluster.upstream_cx_destroy_local: 0
cluster.railway_xds_cluster.upstream_cx_destroy_local_with_active_rq: 0
cluster.railway_xds_cluster.upstream_cx_destroy_remote: 21
cluster.railway_xds_cluster.upstream_cx_destroy_remote_with_active_rq: 3
cluster.railway_xds_cluster.upstream_cx_destroy_with_active_rq: 3
cluster.railway_xds_cluster.upstream_cx_http1_total: 0
cluster.railway_xds_cluster.upstream_cx_http2_total: 22
cluster.railway_xds_cluster.upstream_cx_http3_total: 0
cluster.railway_xds_cluster.upstream_cx_idle_timeout: 0
cluster.railway_xds_cluster.upstream_cx_max_duration_reached: 0
cluster.railway_xds_cluster.upstream_cx_max_requests: 0
cluster.railway_xds_cluster.upstream_cx_none_healthy: 0
cluster.railway_xds_cluster.upstream_cx_overflow: 0
cluster.railway_xds_cluster.upstream_cx_pool_overflow: 0
cluster.railway_xds_cluster.upstream_cx_protocol_error: 0
cluster.railway_xds_cluster.upstream_cx_rx_bytes_buffered: 19784
cluster.railway_xds_cluster.upstream_cx_rx_bytes_total: 65545329
cluster.railway_xds_cluster.upstream_cx_total: 22
cluster.railway_xds_cluster.upstream_cx_tx_bytes_buffered: 0
cluster.railway_xds_cluster.upstream_cx_tx_bytes_total: 11978260
cluster.railway_xds_cluster.upstream_flow_control_backed_up_total: 0
cluster.railway_xds_cluster.upstream_flow_control_drained_total: 0
cluster.railway_xds_cluster.upstream_flow_control_paused_reading_total: 0
cluster.railway_xds_cluster.upstream_flow_control_resumed_reading_total: 0
cluster.railway_xds_cluster.upstream_internal_redirect_failed_total: 0
cluster.railway_xds_cluster.upstream_internal_redirect_succeeded_total: 0
cluster.railway_xds_cluster.upstream_rq_200: 3
cluster.railway_xds_cluster.upstream_rq_2xx: 3
cluster.railway_xds_cluster.upstream_rq_503: 19
cluster.railway_xds_cluster.upstream_rq_5xx: 19
cluster.railway_xds_cluster.upstream_rq_active: 1
cluster.railway_xds_cluster.upstream_rq_cancelled: 0
cluster.railway_xds_cluster.upstream_rq_completed: 22
cluster.railway_xds_cluster.upstream_rq_maintenance_mode: 0
cluster.railway_xds_cluster.upstream_rq_max_duration_reached: 0
cluster.railway_xds_cluster.upstream_rq_pending_active: 0
cluster.railway_xds_cluster.upstream_rq_pending_failure_eject: 21
cluster.railway_xds_cluster.upstream_rq_pending_overflow: 0
cluster.railway_xds_cluster.upstream_rq_pending_total: 22
cluster.railway_xds_cluster.upstream_rq_per_try_idle_timeout: 0
cluster.railway_xds_cluster.upstream_rq_per_try_timeout: 0
cluster.railway_xds_cluster.upstream_rq_retry: 0
cluster.railway_xds_cluster.upstream_rq_retry_backoff_exponential: 0
cluster.railway_xds_cluster.upstream_rq_retry_backoff_ratelimited: 0
cluster.railway_xds_cluster.upstream_rq_retry_limit_exceeded: 0
cluster.railway_xds_cluster.upstream_rq_retry_overflow: 0
cluster.railway_xds_cluster.upstream_rq_retry_success: 0
cluster.railway_xds_cluster.upstream_rq_rx_reset: 0
cluster.railway_xds_cluster.upstream_rq_timeout: 0
cluster.railway_xds_cluster.upstream_rq_total: 4
cluster.railway_xds_cluster.upstream_rq_tx_reset: 0
cluster.railway_xds_cluster.version: 0
cluster_manager.active_clusters: 20111
cluster_manager.cds.init_fetch_timeout: 1
cluster_manager.cds.update_attempt: 33
cluster_manager.cds.update_failure: 21
cluster_manager.cds.update_rejected: 0
cluster_manager.cds.update_success: 10
cluster_manager.cds.update_time: 1650068092129
cluster_manager.cds.version: 3236887211395742115
cluster_manager.cluster_added: 20116
cluster_manager.cluster_modified: 0
cluster_manager.cluster_removed: 5
cluster_manager.cluster_updated: 0
cluster_manager.cluster_updated_via_merge: 0
cluster_manager.update_merge_cancelled: 0
cluster_manager.update_out_of_merge_window: 0
cluster_manager.warming_clusters: 0
control_plane.connected_state: 1
control_plane.pending_requests: 0
control_plane.rate_limit_enforced: 0
envoy.overload_actions.reset_high_memory_stream.count: 0
filesystem.flushed_by_timer: 0
filesystem.reopen_failed: 0
filesystem.write_buffered: 0
filesystem.write_completed: 0
filesystem.write_failed: 0
filesystem.write_total_buffered: 0
http.admin.downstream_cx_active: 1
http.admin.downstream_cx_delayed_close_timeout: 0
http.admin.downstream_cx_destroy: 62
http.admin.downstream_cx_destroy_active_rq: 0
http.admin.downstream_cx_destroy_local: 0
http.admin.downstream_cx_destroy_local_active_rq: 0
http.admin.downstream_cx_destroy_remote: 62
http.admin.downstream_cx_destroy_remote_active_rq: 0
http.admin.downstream_cx_drain_close: 0
http.admin.downstream_cx_http1_active: 1
http.admin.downstream_cx_http1_total: 63
http.admin.downstream_cx_http2_active: 0
http.admin.downstream_cx_http2_total: 0
http.admin.downstream_cx_http3_active: 0
http.admin.downstream_cx_http3_total: 0
http.admin.downstream_cx_idle_timeout: 0
http.admin.downstream_cx_max_duration_reached: 0
http.admin.downstream_cx_max_requests_reached: 0
http.admin.downstream_cx_overload_disable_keepalive: 0
http.admin.downstream_cx_protocol_error: 0
http.admin.downstream_cx_rx_bytes_buffered: 84
http.admin.downstream_cx_rx_bytes_total: 9787
http.admin.downstream_cx_ssl_active: 0
http.admin.downstream_cx_ssl_total: 0
http.admin.downstream_cx_total: 63
http.admin.downstream_cx_tx_bytes_buffered: 0
http.admin.downstream_cx_tx_bytes_total: 1356575
http.admin.downstream_cx_upgrades_active: 0
http.admin.downstream_cx_upgrades_total: 0
http.admin.downstream_flow_control_paused_reading_total: 0
http.admin.downstream_flow_control_resumed_reading_total: 0
http.admin.downstream_rq_1xx: 0
http.admin.downstream_rq_2xx: 62
http.admin.downstream_rq_3xx: 0
http.admin.downstream_rq_4xx: 0
http.admin.downstream_rq_5xx: 0
http.admin.downstream_rq_active: 1
http.admin.downstream_rq_completed: 62
http.admin.downstream_rq_failed_path_normalization: 0
http.admin.downstream_rq_header_timeout: 0
http.admin.downstream_rq_http1_total: 63
http.admin.downstream_rq_http2_total: 0
http.admin.downstream_rq_http3_total: 0
http.admin.downstream_rq_idle_timeout: 0
http.admin.downstream_rq_max_duration_reached: 0
http.admin.downstream_rq_non_relative_path: 0
http.admin.downstream_rq_overload_close: 0
http.admin.downstream_rq_redirected_with_normalized_path: 0
http.admin.downstream_rq_rejected_via_ip_detection: 0
http.admin.downstream_rq_response_before_rq_complete: 0
http.admin.downstream_rq_rx_reset: 0
http.admin.downstream_rq_timeout: 0
http.admin.downstream_rq_too_large: 0
http.admin.downstream_rq_total: 63
http.admin.downstream_rq_tx_reset: 0
http.admin.downstream_rq_ws_on_non_ws_route: 0
http.admin.rs_too_large: 0
http.async-client.no_cluster: 0
http.async-client.no_route: 0
http.async-client.passthrough_internal_redirect_bad_location: 0
http.async-client.passthrough_internal_redirect_no_route: 0
http.async-client.passthrough_internal_redirect_predicate: 0
http.async-client.passthrough_internal_redirect_too_many_redirects: 0
http.async-client.passthrough_internal_redirect_unsafe_scheme: 0
http.async-client.rq_direct_response: 0
http.async-client.rq_redirect: 0
http.async-client.rq_reset_after_downstream_response_started: 2
http.async-client.rq_total: 22
http.http.downstream_cx_active: 0
http.http.downstream_cx_delayed_close_timeout: 0
http.http.downstream_cx_destroy: 0
http.http.downstream_cx_destroy_active_rq: 0
http.http.downstream_cx_destroy_local: 0
http.http.downstream_cx_destroy_local_active_rq: 0
http.http.downstream_cx_destroy_remote: 0
http.http.downstream_cx_destroy_remote_active_rq: 0
http.http.downstream_cx_drain_close: 0
http.http.downstream_cx_http1_active: 0
http.http.downstream_cx_http1_total: 0
http.http.downstream_cx_http2_active: 0
http.http.downstream_cx_http2_total: 0
http.http.downstream_cx_http3_active: 0
http.http.downstream_cx_http3_total: 0
http.http.downstream_cx_idle_timeout: 0
http.http.downstream_cx_max_duration_reached: 0
http.http.downstream_cx_max_requests_reached: 0
http.http.downstream_cx_overload_disable_keepalive: 0
http.http.downstream_cx_protocol_error: 0
http.http.downstream_cx_rx_bytes_buffered: 0
http.http.downstream_cx_rx_bytes_total: 0
http.http.downstream_cx_ssl_active: 0
http.http.downstream_cx_ssl_total: 0
http.http.downstream_cx_total: 0
http.http.downstream_cx_tx_bytes_buffered: 0
http.http.downstream_cx_tx_bytes_total: 0
http.http.downstream_cx_upgrades_active: 0
http.http.downstream_cx_upgrades_total: 0
http.http.downstream_flow_control_paused_reading_total: 0
http.http.downstream_flow_control_resumed_reading_total: 0
http.http.downstream_rq_1xx: 0
http.http.downstream_rq_2xx: 0
http.http.downstream_rq_3xx: 0
http.http.downstream_rq_4xx: 0
http.http.downstream_rq_5xx: 0
http.http.downstream_rq_active: 0
http.http.downstream_rq_completed: 0
http.http.downstream_rq_failed_path_normalization: 0
http.http.downstream_rq_header_timeout: 0
http.http.downstream_rq_http1_total: 0
http.http.downstream_rq_http2_total: 0
http.http.downstream_rq_http3_total: 0
http.http.downstream_rq_idle_timeout: 0
http.http.downstream_rq_max_duration_reached: 0
http.http.downstream_rq_non_relative_path: 0
http.http.downstream_rq_overload_close: 0
http.http.downstream_rq_redirected_with_normalized_path: 0
http.http.downstream_rq_rejected_via_ip_detection: 0
http.http.downstream_rq_response_before_rq_complete: 0
http.http.downstream_rq_rx_reset: 0
http.http.downstream_rq_timeout: 0
http.http.downstream_rq_too_large: 0
http.http.downstream_rq_total: 0
http.http.downstream_rq_tx_reset: 0
http.http.downstream_rq_ws_on_non_ws_route: 0
http.http.no_cluster: 0
http.http.no_route: 0
http.http.passthrough_internal_redirect_bad_location: 0
http.http.passthrough_internal_redirect_no_route: 0
http.http.passthrough_internal_redirect_predicate: 0
http.http.passthrough_internal_redirect_too_many_redirects: 0
http.http.passthrough_internal_redirect_unsafe_scheme: 0
http.http.rds.http_route_config.config_reload: 1
http.http.rds.http_route_config.config_reload_time_ms: 1650067873553
http.http.rds.http_route_config.init_fetch_timeout: 0
http.http.rds.http_route_config.update_attempt: 17
http.http.rds.http_route_config.update_empty: 0
http.http.rds.http_route_config.update_failure: 13
http.http.rds.http_route_config.update_rejected: 0
http.http.rds.http_route_config.update_success: 3
http.http.rds.http_route_config.update_time: 1650068062382
http.http.rds.http_route_config.version: 1467032121074884830
http.http.rq_direct_response: 0
http.http.rq_redirect: 0
http.http.rq_reset_after_downstream_response_started: 0
http.http.rq_total: 0
http.http.rs_too_large: 0
http.http.tracing.client_enabled: 0
http.http.tracing.health_check: 0
http.http.tracing.not_traceable: 0
http.http.tracing.random_sampling: 0
http.http.tracing.service_forced: 0
http.https.downstream_cx_active: 0
http.https.downstream_cx_delayed_close_timeout: 0
http.https.downstream_cx_destroy: 30
http.https.downstream_cx_destroy_active_rq: 0
http.https.downstream_cx_destroy_local: 0
http.https.downstream_cx_destroy_local_active_rq: 0
http.https.downstream_cx_destroy_remote: 30
http.https.downstream_cx_destroy_remote_active_rq: 0
http.https.downstream_cx_drain_close: 0
http.https.downstream_cx_http1_active: 0
http.https.downstream_cx_http1_total: 30
http.https.downstream_cx_http2_active: 0
http.https.downstream_cx_http2_total: 0
http.https.downstream_cx_http3_active: 0
http.https.downstream_cx_http3_total: 0
http.https.downstream_cx_idle_timeout: 0
http.https.downstream_cx_max_duration_reached: 0
http.https.downstream_cx_max_requests_reached: 0
http.https.downstream_cx_overload_disable_keepalive: 0
http.https.downstream_cx_protocol_error: 0
http.https.downstream_cx_rx_bytes_buffered: 0
http.https.downstream_cx_rx_bytes_total: 2910
http.https.downstream_cx_ssl_active: 0
http.https.downstream_cx_ssl_total: 30
http.https.downstream_cx_total: 30
http.https.downstream_cx_tx_bytes_buffered: 0
http.https.downstream_cx_tx_bytes_total: 2970
http.https.downstream_cx_upgrades_active: 0
http.https.downstream_cx_upgrades_total: 0
http.https.downstream_flow_control_paused_reading_total: 0
http.https.downstream_flow_control_resumed_reading_total: 0
http.https.downstream_rq_1xx: 0
http.https.downstream_rq_2xx: 0
http.https.downstream_rq_3xx: 0
http.https.downstream_rq_4xx: 30
http.https.downstream_rq_5xx: 0
http.https.downstream_rq_active: 0
http.https.downstream_rq_completed: 30
http.https.downstream_rq_failed_path_normalization: 0
http.https.downstream_rq_header_timeout: 0
http.https.downstream_rq_http1_total: 30
http.https.downstream_rq_http2_total: 0
http.https.downstream_rq_http3_total: 0
http.https.downstream_rq_idle_timeout: 0
http.https.downstream_rq_max_duration_reached: 0
http.https.downstream_rq_non_relative_path: 0
http.https.downstream_rq_overload_close: 0
http.https.downstream_rq_redirected_with_normalized_path: 0
http.https.downstream_rq_rejected_via_ip_detection: 0
http.https.downstream_rq_response_before_rq_complete: 0
http.https.downstream_rq_rx_reset: 0
http.https.downstream_rq_timeout: 0
http.https.downstream_rq_too_large: 0
http.https.downstream_rq_total: 30
http.https.downstream_rq_tx_reset: 0
http.https.downstream_rq_ws_on_non_ws_route: 0
http.https.no_cluster: 0
http.https.no_route: 30
http.https.passthrough_internal_redirect_bad_location: 0
http.https.passthrough_internal_redirect_no_route: 0
http.https.passthrough_internal_redirect_predicate: 0
http.https.passthrough_internal_redirect_too_many_redirects: 0
http.https.passthrough_internal_redirect_unsafe_scheme: 0
http.https.rds.https_route_config.config_reload: 0
http.https.rds.https_route_config.config_reload_time_ms: 0
http.https.rds.https_route_config.init_fetch_timeout: 1
http.https.rds.https_route_config.update_attempt: 2
http.https.rds.https_route_config.update_empty: 0
http.https.rds.https_route_config.update_failure: 0
http.https.rds.https_route_config.update_rejected: 0
http.https.rds.https_route_config.update_success: 0
http.https.rds.https_route_config.update_time: 0
http.https.rds.https_route_config.version: 0
http.https.rq_direct_response: 0
http.https.rq_redirect: 0
http.https.rq_reset_after_downstream_response_started: 0
http.https.rq_total: 30
http.https.rs_too_large: 0
http.https.tracing.client_enabled: 0
http.https.tracing.health_check: 0
http.https.tracing.not_traceable: 0
http.https.tracing.random_sampling: 0
http.https.tracing.service_forced: 0
http1.dropped_headers_with_underscores: 0
http1.metadata_not_supported_error: 0
http1.requests_rejected_with_underscores_in_headers: 0
http1.response_flood: 0
http_inspector.http10_found: 0
http_inspector.http11_found: 0
http_inspector.http2_found: 0
http_inspector.http_not_found: 0
http_inspector.read_error: 0
listener.0.0.0.0_443.downstream_cx_active: 0
listener.0.0.0.0_443.downstream_cx_destroy: 30
listener.0.0.0.0_443.downstream_cx_overflow: 0
listener.0.0.0.0_443.downstream_cx_overload_reject: 0
listener.0.0.0.0_443.downstream_cx_total: 30
listener.0.0.0.0_443.downstream_cx_transport_socket_connect_timeout: 0
listener.0.0.0.0_443.downstream_global_cx_overflow: 0
listener.0.0.0.0_443.downstream_pre_cx_active: 0
listener.0.0.0.0_443.downstream_pre_cx_timeout: 0
listener.0.0.0.0_443.http.https.downstream_rq_1xx: 0
listener.0.0.0.0_443.http.https.downstream_rq_2xx: 0
listener.0.0.0.0_443.http.https.downstream_rq_3xx: 0
listener.0.0.0.0_443.http.https.downstream_rq_4xx: 30
listener.0.0.0.0_443.http.https.downstream_rq_5xx: 0
listener.0.0.0.0_443.http.https.downstream_rq_completed: 30
listener.0.0.0.0_443.no_filter_chain_match: 0
listener.0.0.0.0_443.server_ssl_socket_factory.downstream_context_secrets_not_ready: 0
listener.0.0.0.0_443.server_ssl_socket_factory.ssl_context_update_by_sds: 544
listener.0.0.0.0_443.server_ssl_socket_factory.upstream_context_secrets_not_ready: 0
listener.0.0.0.0_443.ssl.ciphers.TLS_AES_128_GCM_SHA256: 30
listener.0.0.0.0_443.ssl.connection_error: 0
listener.0.0.0.0_443.ssl.curves.X25519: 30
listener.0.0.0.0_443.ssl.fail_verify_cert_hash: 0
listener.0.0.0.0_443.ssl.fail_verify_error: 0
listener.0.0.0.0_443.ssl.fail_verify_no_cert: 0
listener.0.0.0.0_443.ssl.fail_verify_san: 0
listener.0.0.0.0_443.ssl.handshake: 30
listener.0.0.0.0_443.ssl.no_certificate: 30
listener.0.0.0.0_443.ssl.ocsp_staple_failed: 0
listener.0.0.0.0_443.ssl.ocsp_staple_omitted: 0
listener.0.0.0.0_443.ssl.ocsp_staple_requests: 0
listener.0.0.0.0_443.ssl.ocsp_staple_responses: 0
listener.0.0.0.0_443.ssl.session_reused: 0
listener.0.0.0.0_443.ssl.versions.TLSv1.3: 30
listener.0.0.0.0_443.worker_0.downstream_cx_active: 0
listener.0.0.0.0_443.worker_0.downstream_cx_total: 0
listener.0.0.0.0_443.worker_1.downstream_cx_active: 0
listener.0.0.0.0_443.worker_1.downstream_cx_total: 0
listener.0.0.0.0_443.worker_10.downstream_cx_active: 0
listener.0.0.0.0_443.worker_10.downstream_cx_total: 0
listener.0.0.0.0_443.worker_11.downstream_cx_active: 0
listener.0.0.0.0_443.worker_11.downstream_cx_total: 0
listener.0.0.0.0_443.worker_12.downstream_cx_active: 0
listener.0.0.0.0_443.worker_12.downstream_cx_total: 0
listener.0.0.0.0_443.worker_13.downstream_cx_active: 0
listener.0.0.0.0_443.worker_13.downstream_cx_total: 0
listener.0.0.0.0_443.worker_14.downstream_cx_active: 0
listener.0.0.0.0_443.worker_14.downstream_cx_total: 0
listener.0.0.0.0_443.worker_15.downstream_cx_active: 0
listener.0.0.0.0_443.worker_15.downstream_cx_total: 0
listener.0.0.0.0_443.worker_16.downstream_cx_active: 0
listener.0.0.0.0_443.worker_16.downstream_cx_total: 1
listener.0.0.0.0_443.worker_17.downstream_cx_active: 0
listener.0.0.0.0_443.worker_17.downstream_cx_total: 1
listener.0.0.0.0_443.worker_18.downstream_cx_active: 0
listener.0.0.0.0_443.worker_18.downstream_cx_total: 0
listener.0.0.0.0_443.worker_19.downstream_cx_active: 0
listener.0.0.0.0_443.worker_19.downstream_cx_total: 0
listener.0.0.0.0_443.worker_2.downstream_cx_active: 0
listener.0.0.0.0_443.worker_2.downstream_cx_total: 1
listener.0.0.0.0_443.worker_20.downstream_cx_active: 0
listener.0.0.0.0_443.worker_20.downstream_cx_total: 0
listener.0.0.0.0_443.worker_21.downstream_cx_active: 0
listener.0.0.0.0_443.worker_21.downstream_cx_total: 0
listener.0.0.0.0_443.worker_22.downstream_cx_active: 0
listener.0.0.0.0_443.worker_22.downstream_cx_total: 1
listener.0.0.0.0_443.worker_23.downstream_cx_active: 0
listener.0.0.0.0_443.worker_23.downstream_cx_total: 0
listener.0.0.0.0_443.worker_24.downstream_cx_active: 0
listener.0.0.0.0_443.worker_24.downstream_cx_total: 0
listener.0.0.0.0_443.worker_25.downstream_cx_active: 0
listener.0.0.0.0_443.worker_25.downstream_cx_total: 1
listener.0.0.0.0_443.worker_26.downstream_cx_active: 0
listener.0.0.0.0_443.worker_26.downstream_cx_total: 1
listener.0.0.0.0_443.worker_27.downstream_cx_active: 0
listener.0.0.0.0_443.worker_27.downstream_cx_total: 1
listener.0.0.0.0_443.worker_28.downstream_cx_active: 0
listener.0.0.0.0_443.worker_28.downstream_cx_total: 0
listener.0.0.0.0_443.worker_29.downstream_cx_active: 0
listener.0.0.0.0_443.worker_29.downstream_cx_total: 1
listener.0.0.0.0_443.worker_3.downstream_cx_active: 0
listener.0.0.0.0_443.worker_3.downstream_cx_total: 0
listener.0.0.0.0_443.worker_30.downstream_cx_active: 0
listener.0.0.0.0_443.worker_30.downstream_cx_total: 1
listener.0.0.0.0_443.worker_31.downstream_cx_active: 0
listener.0.0.0.0_443.worker_31.downstream_cx_total: 0
listener.0.0.0.0_443.worker_32.downstream_cx_active: 0
listener.0.0.0.0_443.worker_32.downstream_cx_total: 1
listener.0.0.0.0_443.worker_33.downstream_cx_active: 0
listener.0.0.0.0_443.worker_33.downstream_cx_total: 0
listener.0.0.0.0_443.worker_34.downstream_cx_active: 0
listener.0.0.0.0_443.worker_34.downstream_cx_total: 1
listener.0.0.0.0_443.worker_35.downstream_cx_active: 0
listener.0.0.0.0_443.worker_35.downstream_cx_total: 1
listener.0.0.0.0_443.worker_36.downstream_cx_active: 0
listener.0.0.0.0_443.worker_36.downstream_cx_total: 2
listener.0.0.0.0_443.worker_37.downstream_cx_active: 0
listener.0.0.0.0_443.worker_37.downstream_cx_total: 0
listener.0.0.0.0_443.worker_38.downstream_cx_active: 0
listener.0.0.0.0_443.worker_38.downstream_cx_total: 2
listener.0.0.0.0_443.worker_39.downstream_cx_active: 0
listener.0.0.0.0_443.worker_39.downstream_cx_total: 1
listener.0.0.0.0_443.worker_4.downstream_cx_active: 0
listener.0.0.0.0_443.worker_4.downstream_cx_total: 0
listener.0.0.0.0_443.worker_40.downstream_cx_active: 0
listener.0.0.0.0_443.worker_40.downstream_cx_total: 2
listener.0.0.0.0_443.worker_41.downstream_cx_active: 0
listener.0.0.0.0_443.worker_41.downstream_cx_total: 0
listener.0.0.0.0_443.worker_42.downstream_cx_active: 0
listener.0.0.0.0_443.worker_42.downstream_cx_total: 0
listener.0.0.0.0_443.worker_43.downstream_cx_active: 0
listener.0.0.0.0_443.worker_43.downstream_cx_total: 0
listener.0.0.0.0_443.worker_44.downstream_cx_active: 0
listener.0.0.0.0_443.worker_44.downstream_cx_total: 0
listener.0.0.0.0_443.worker_45.downstream_cx_active: 0
listener.0.0.0.0_443.worker_45.downstream_cx_total: 0
listener.0.0.0.0_443.worker_46.downstream_cx_active: 0
listener.0.0.0.0_443.worker_46.downstream_cx_total: 0
listener.0.0.0.0_443.worker_47.downstream_cx_active: 0
listener.0.0.0.0_443.worker_47.downstream_cx_total: 1
listener.0.0.0.0_443.worker_48.downstream_cx_active: 0
listener.0.0.0.0_443.worker_48.downstream_cx_total: 1
listener.0.0.0.0_443.worker_49.downstream_cx_active: 0
listener.0.0.0.0_443.worker_49.downstream_cx_total: 0
listener.0.0.0.0_443.worker_5.downstream_cx_active: 0
listener.0.0.0.0_443.worker_5.downstream_cx_total: 0
listener.0.0.0.0_443.worker_50.downstream_cx_active: 0
listener.0.0.0.0_443.worker_50.downstream_cx_total: 1
listener.0.0.0.0_443.worker_51.downstream_cx_active: 0
listener.0.0.0.0_443.worker_51.downstream_cx_total: 0
listener.0.0.0.0_443.worker_52.downstream_cx_active: 0
listener.0.0.0.0_443.worker_52.downstream_cx_total: 0
listener.0.0.0.0_443.worker_53.downstream_cx_active: 0
listener.0.0.0.0_443.worker_53.downstream_cx_total: 1
listener.0.0.0.0_443.worker_54.downstream_cx_active: 0
listener.0.0.0.0_443.worker_54.downstream_cx_total: 0
listener.0.0.0.0_443.worker_55.downstream_cx_active: 0
listener.0.0.0.0_443.worker_55.downstream_cx_total: 1
listener.0.0.0.0_443.worker_56.downstream_cx_active: 0
listener.0.0.0.0_443.worker_56.downstream_cx_total: 1
listener.0.0.0.0_443.worker_57.downstream_cx_active: 0
listener.0.0.0.0_443.worker_57.downstream_cx_total: 1
listener.0.0.0.0_443.worker_58.downstream_cx_active: 0
listener.0.0.0.0_443.worker_58.downstream_cx_total: 0
listener.0.0.0.0_443.worker_59.downstream_cx_active: 0
listener.0.0.0.0_443.worker_59.downstream_cx_total: 1
listener.0.0.0.0_443.worker_6.downstream_cx_active: 0
listener.0.0.0.0_443.worker_6.downstream_cx_total: 1
listener.0.0.0.0_443.worker_60.downstream_cx_active: 0
listener.0.0.0.0_443.worker_60.downstream_cx_total: 0
listener.0.0.0.0_443.worker_61.downstream_cx_active: 0
listener.0.0.0.0_443.worker_61.downstream_cx_total: 0
listener.0.0.0.0_443.worker_62.downstream_cx_active: 0
listener.0.0.0.0_443.worker_62.downstream_cx_total: 2
listener.0.0.0.0_443.worker_63.downstream_cx_active: 0
listener.0.0.0.0_443.worker_63.downstream_cx_total: 0
listener.0.0.0.0_443.worker_7.downstream_cx_active: 0
listener.0.0.0.0_443.worker_7.downstream_cx_total: 0
listener.0.0.0.0_443.worker_8.downstream_cx_active: 0
listener.0.0.0.0_443.worker_8.downstream_cx_total: 0
listener.0.0.0.0_443.worker_9.downstream_cx_active: 0
listener.0.0.0.0_443.worker_9.downstream_cx_total: 0
listener.0.0.0.0_80.downstream_cx_active: 0
listener.0.0.0.0_80.downstream_cx_destroy: 0
listener.0.0.0.0_80.downstream_cx_overflow: 0
listener.0.0.0.0_80.downstream_cx_overload_reject: 0
listener.0.0.0.0_80.downstream_cx_total: 0
listener.0.0.0.0_80.downstream_cx_transport_socket_connect_timeout: 0
listener.0.0.0.0_80.downstream_global_cx_overflow: 0
listener.0.0.0.0_80.downstream_pre_cx_active: 0
listener.0.0.0.0_80.downstream_pre_cx_timeout: 0
listener.0.0.0.0_80.http.http.downstream_rq_1xx: 0
listener.0.0.0.0_80.http.http.downstream_rq_2xx: 0
listener.0.0.0.0_80.http.http.downstream_rq_3xx: 0
listener.0.0.0.0_80.http.http.downstream_rq_4xx: 0
listener.0.0.0.0_80.http.http.downstream_rq_5xx: 0
listener.0.0.0.0_80.http.http.downstream_rq_completed: 0
listener.0.0.0.0_80.no_filter_chain_match: 0
listener.0.0.0.0_80.worker_0.downstream_cx_active: 0
listener.0.0.0.0_80.worker_0.downstream_cx_total: 0
listener.0.0.0.0_80.worker_1.downstream_cx_active: 0
listener.0.0.0.0_80.worker_1.downstream_cx_total: 0
listener.0.0.0.0_80.worker_10.downstream_cx_active: 0
listener.0.0.0.0_80.worker_10.downstream_cx_total: 0
listener.0.0.0.0_80.worker_11.downstream_cx_active: 0
listener.0.0.0.0_80.worker_11.downstream_cx_total: 0
listener.0.0.0.0_80.worker_12.downstream_cx_active: 0
listener.0.0.0.0_80.worker_12.downstream_cx_total: 0
listener.0.0.0.0_80.worker_13.downstream_cx_active: 0
listener.0.0.0.0_80.worker_13.downstream_cx_total: 0
listener.0.0.0.0_80.worker_14.downstream_cx_active: 0
listener.0.0.0.0_80.worker_14.downstream_cx_total: 0
listener.0.0.0.0_80.worker_15.downstream_cx_active: 0
listener.0.0.0.0_80.worker_15.downstream_cx_total: 0
listener.0.0.0.0_80.worker_16.downstream_cx_active: 0
listener.0.0.0.0_80.worker_16.downstream_cx_total: 0
listener.0.0.0.0_80.worker_17.downstream_cx_active: 0
listener.0.0.0.0_80.worker_17.downstream_cx_total: 0
listener.0.0.0.0_80.worker_18.downstream_cx_active: 0
listener.0.0.0.0_80.worker_18.downstream_cx_total: 0
listener.0.0.0.0_80.worker_19.downstream_cx_active: 0
listener.0.0.0.0_80.worker_19.downstream_cx_total: 0
listener.0.0.0.0_80.worker_2.downstream_cx_active: 0
listener.0.0.0.0_80.worker_2.downstream_cx_total: 0
listener.0.0.0.0_80.worker_20.downstream_cx_active: 0
listener.0.0.0.0_80.worker_20.downstream_cx_total: 0
listener.0.0.0.0_80.worker_21.downstream_cx_active: 0
listener.0.0.0.0_80.worker_21.downstream_cx_total: 0
listener.0.0.0.0_80.worker_22.downstream_cx_active: 0
listener.0.0.0.0_80.worker_22.downstream_cx_total: 0
listener.0.0.0.0_80.worker_23.downstream_cx_active: 0
listener.0.0.0.0_80.worker_23.downstream_cx_total: 0
listener.0.0.0.0_80.worker_24.downstream_cx_active: 0
listener.0.0.0.0_80.worker_24.downstream_cx_total: 0
listener.0.0.0.0_80.worker_25.downstream_cx_active: 0
listener.0.0.0.0_80.worker_25.downstream_cx_total: 0
listener.0.0.0.0_80.worker_26.downstream_cx_active: 0
listener.0.0.0.0_80.worker_26.downstream_cx_total: 0
listener.0.0.0.0_80.worker_27.downstream_cx_active: 0
listener.0.0.0.0_80.worker_27.downstream_cx_total: 0
listener.0.0.0.0_80.worker_28.downstream_cx_active: 0
listener.0.0.0.0_80.worker_28.downstream_cx_total: 0
listener.0.0.0.0_80.worker_29.downstream_cx_active: 0
listener.0.0.0.0_80.worker_29.downstream_cx_total: 0
listener.0.0.0.0_80.worker_3.downstream_cx_active: 0
listener.0.0.0.0_80.worker_3.downstream_cx_total: 0
listener.0.0.0.0_80.worker_30.downstream_cx_active: 0
listener.0.0.0.0_80.worker_30.downstream_cx_total: 0
listener.0.0.0.0_80.worker_31.downstream_cx_active: 0
listener.0.0.0.0_80.worker_31.downstream_cx_total: 0
listener.0.0.0.0_80.worker_32.downstream_cx_active: 0
listener.0.0.0.0_80.worker_32.downstream_cx_total: 0
listener.0.0.0.0_80.worker_33.downstream_cx_active: 0
listener.0.0.0.0_80.worker_33.downstream_cx_total: 0
listener.0.0.0.0_80.worker_34.downstream_cx_active: 0
listener.0.0.0.0_80.worker_34.downstream_cx_total: 0
listener.0.0.0.0_80.worker_35.downstream_cx_active: 0
listener.0.0.0.0_80.worker_35.downstream_cx_total: 0
listener.0.0.0.0_80.worker_36.downstream_cx_active: 0
listener.0.0.0.0_80.worker_36.downstream_cx_total: 0
listener.0.0.0.0_80.worker_37.downstream_cx_active: 0
listener.0.0.0.0_80.worker_37.downstream_cx_total: 0
listener.0.0.0.0_80.worker_38.downstream_cx_active: 0
listener.0.0.0.0_80.worker_38.downstream_cx_total: 0
listener.0.0.0.0_80.worker_39.downstream_cx_active: 0
listener.0.0.0.0_80.worker_39.downstream_cx_total: 0
listener.0.0.0.0_80.worker_4.downstream_cx_active: 0
listener.0.0.0.0_80.worker_4.downstream_cx_total: 0
listener.0.0.0.0_80.worker_40.downstream_cx_active: 0
listener.0.0.0.0_80.worker_40.downstream_cx_total: 0
listener.0.0.0.0_80.worker_41.downstream_cx_active: 0
listener.0.0.0.0_80.worker_41.downstream_cx_total: 0
listener.0.0.0.0_80.worker_42.downstream_cx_active: 0
listener.0.0.0.0_80.worker_42.downstream_cx_total: 0
listener.0.0.0.0_80.worker_43.downstream_cx_active: 0
listener.0.0.0.0_80.worker_43.downstream_cx_total: 0
listener.0.0.0.0_80.worker_44.downstream_cx_active: 0
listener.0.0.0.0_80.worker_44.downstream_cx_total: 0
listener.0.0.0.0_80.worker_45.downstream_cx_active: 0
listener.0.0.0.0_80.worker_45.downstream_cx_total: 0
listener.0.0.0.0_80.worker_46.downstream_cx_active: 0
listener.0.0.0.0_80.worker_46.downstream_cx_total: 0
listener.0.0.0.0_80.worker_47.downstream_cx_active: 0
listener.0.0.0.0_80.worker_47.downstream_cx_total: 0
listener.0.0.0.0_80.worker_48.downstream_cx_active: 0
listener.0.0.0.0_80.worker_48.downstream_cx_total: 0
listener.0.0.0.0_80.worker_49.downstream_cx_active: 0
listener.0.0.0.0_80.worker_49.downstream_cx_total: 0
listener.0.0.0.0_80.worker_5.downstream_cx_active: 0
listener.0.0.0.0_80.worker_5.downstream_cx_total: 0
listener.0.0.0.0_80.worker_50.downstream_cx_active: 0
listener.0.0.0.0_80.worker_50.downstream_cx_total: 0
listener.0.0.0.0_80.worker_51.downstream_cx_active: 0
listener.0.0.0.0_80.worker_51.downstream_cx_total: 0
listener.0.0.0.0_80.worker_52.downstream_cx_active: 0
listener.0.0.0.0_80.worker_52.downstream_cx_total: 0
listener.0.0.0.0_80.worker_53.downstream_cx_active: 0
listener.0.0.0.0_80.worker_53.downstream_cx_total: 0
listener.0.0.0.0_80.worker_54.downstream_cx_active: 0
listener.0.0.0.0_80.worker_54.downstream_cx_total: 0
listener.0.0.0.0_80.worker_55.downstream_cx_active: 0
listener.0.0.0.0_80.worker_55.downstream_cx_total: 0
listener.0.0.0.0_80.worker_56.downstream_cx_active: 0
listener.0.0.0.0_80.worker_56.downstream_cx_total: 0
listener.0.0.0.0_80.worker_57.downstream_cx_active: 0
listener.0.0.0.0_80.worker_57.downstream_cx_total: 0
listener.0.0.0.0_80.worker_58.downstream_cx_active: 0
listener.0.0.0.0_80.worker_58.downstream_cx_total: 0
listener.0.0.0.0_80.worker_59.downstream_cx_active: 0
listener.0.0.0.0_80.worker_59.downstream_cx_total: 0
listener.0.0.0.0_80.worker_6.downstream_cx_active: 0
listener.0.0.0.0_80.worker_6.downstream_cx_total: 0
listener.0.0.0.0_80.worker_60.downstream_cx_active: 0
listener.0.0.0.0_80.worker_60.downstream_cx_total: 0
listener.0.0.0.0_80.worker_61.downstream_cx_active: 0
listener.0.0.0.0_80.worker_61.downstream_cx_total: 0
listener.0.0.0.0_80.worker_62.downstream_cx_active: 0
listener.0.0.0.0_80.worker_62.downstream_cx_total: 0
listener.0.0.0.0_80.worker_63.downstream_cx_active: 0
listener.0.0.0.0_80.worker_63.downstream_cx_total: 0
listener.0.0.0.0_80.worker_7.downstream_cx_active: 0
listener.0.0.0.0_80.worker_7.downstream_cx_total: 0
listener.0.0.0.0_80.worker_8.downstream_cx_active: 0
listener.0.0.0.0_80.worker_8.downstream_cx_total: 0
listener.0.0.0.0_80.worker_9.downstream_cx_active: 0
listener.0.0.0.0_80.worker_9.downstream_cx_total: 0
listener.admin.downstream_cx_active: 1
listener.admin.downstream_cx_destroy: 62
listener.admin.downstream_cx_overflow: 0
listener.admin.downstream_cx_overload_reject: 0
listener.admin.downstream_cx_total: 63
listener.admin.downstream_cx_transport_socket_connect_timeout: 0
listener.admin.downstream_global_cx_overflow: 0
listener.admin.downstream_pre_cx_active: 0
listener.admin.downstream_pre_cx_timeout: 0
listener.admin.http.admin.downstream_rq_1xx: 0
listener.admin.http.admin.downstream_rq_2xx: 62
listener.admin.http.admin.downstream_rq_3xx: 0
listener.admin.http.admin.downstream_rq_4xx: 0
listener.admin.http.admin.downstream_rq_5xx: 0
listener.admin.http.admin.downstream_rq_completed: 62
listener.admin.main_thread.downstream_cx_active: 1
listener.admin.main_thread.downstream_cx_total: 63
listener.admin.no_filter_chain_match: 0
listener_manager.lds.init_fetch_timeout: 1
listener_manager.lds.update_attempt: 38
listener_manager.lds.update_failure: 15
listener_manager.lds.update_rejected: 10
listener_manager.lds.update_success: 1
listener_manager.lds.update_time: 1650068062372
listener_manager.lds.version: 1467032121074884830
listener_manager.listener_added: 2
listener_manager.listener_create_failure: 0
listener_manager.listener_create_success: 128
listener_manager.listener_in_place_updated: 0
listener_manager.listener_modified: 0
listener_manager.listener_removed: 0
listener_manager.listener_stopped: 0
listener_manager.total_filter_chains_draining: 0
listener_manager.total_listeners_active: 2
listener_manager.total_listeners_draining: 0
listener_manager.total_listeners_warming: 0
listener_manager.workers_started: 1
main_thread.watchdog_mega_miss: 12
main_thread.watchdog_miss: 12
overload.envoy.overload_actions.shrink_heap.active: 0
overload.envoy.overload_actions.shrink_heap.scale_percent: 0
overload.envoy.overload_actions.shrink_heap.shrink_count: 0
overload.envoy.overload_actions.stop_accepting_requests.active: 0
overload.envoy.overload_actions.stop_accepting_requests.scale_percent: 0
overload.envoy.resource_monitors.fixed_heap.failed_updates: 0
overload.envoy.resource_monitors.fixed_heap.pressure: 4
overload.envoy.resource_monitors.fixed_heap.skipped_updates: 0
runtime.admin_overrides_active: 0
runtime.deprecated_feature_seen_since_process_start: 0
runtime.deprecated_feature_use: 0
runtime.load_error: 0
runtime.load_success: 1
runtime.num_keys: 0
runtime.num_layers: 0
runtime.override_dir_exists: 0
runtime.override_dir_not_exists: 1
server.compilation_settings.fips_mode: 0
server.concurrency: 64
server.days_until_first_cert_expiring: 0
server.debug_assertion_failures: 0
server.dropped_stat_flushes: 0
server.dynamic_unknown_fields: 0
server.envoy_bug_failures: 0
server.hot_restart_epoch: 0
server.hot_restart_generation: 1
server.live: 1
server.main_thread.watchdog_mega_miss: 12
server.main_thread.watchdog_miss: 12
server.memory_allocated: 4885677944
server.memory_heap_size: 4968153088
server.memory_physical_size: 5015856774
server.parent_connections: 0
server.seconds_until_first_ocsp_response_expiring: 0
server.state: 0
server.static_unknown_fields: 0
server.stats_recent_lookups: 5468182
server.total_connections: 0
server.uptime: 475
server.version: 11489287
server.wip_protos: 0
server.worker_0.watchdog_mega_miss: 0
server.worker_0.watchdog_miss: 0
server.worker_1.watchdog_mega_miss: 0
server.worker_1.watchdog_miss: 0
server.worker_10.watchdog_mega_miss: 0
server.worker_10.watchdog_miss: 0
server.worker_11.watchdog_mega_miss: 0
server.worker_11.watchdog_miss: 0
server.worker_12.watchdog_mega_miss: 0
server.worker_12.watchdog_miss: 0
server.worker_13.watchdog_mega_miss: 0
server.worker_13.watchdog_miss: 0
server.worker_14.watchdog_mega_miss: 0
server.worker_14.watchdog_miss: 0
server.worker_15.watchdog_mega_miss: 0
server.worker_15.watchdog_miss: 0
server.worker_16.watchdog_mega_miss: 0
server.worker_16.watchdog_miss: 0
server.worker_17.watchdog_mega_miss: 0
server.worker_17.watchdog_miss: 0
server.worker_18.watchdog_mega_miss: 0
server.worker_18.watchdog_miss: 0
server.worker_19.watchdog_mega_miss: 0
server.worker_19.watchdog_miss: 0
server.worker_2.watchdog_mega_miss: 0
server.worker_2.watchdog_miss: 0
server.worker_20.watchdog_mega_miss: 0
server.worker_20.watchdog_miss: 0
server.worker_21.watchdog_mega_miss: 0
server.worker_21.watchdog_miss: 0
server.worker_22.watchdog_mega_miss: 0
server.worker_22.watchdog_miss: 0
server.worker_23.watchdog_mega_miss: 0
server.worker_23.watchdog_miss: 0
server.worker_24.watchdog_mega_miss: 0
server.worker_24.watchdog_miss: 0
server.worker_25.watchdog_mega_miss: 0
server.worker_25.watchdog_miss: 0
server.worker_26.watchdog_mega_miss: 0
server.worker_26.watchdog_miss: 0
server.worker_27.watchdog_mega_miss: 0
server.worker_27.watchdog_miss: 0
server.worker_28.watchdog_mega_miss: 0
server.worker_28.watchdog_miss: 0
server.worker_29.watchdog_mega_miss: 0
server.worker_29.watchdog_miss: 0
server.worker_3.watchdog_mega_miss: 0
server.worker_3.watchdog_miss: 0
server.worker_30.watchdog_mega_miss: 0
server.worker_30.watchdog_miss: 0
server.worker_31.watchdog_mega_miss: 0
server.worker_31.watchdog_miss: 0
server.worker_32.watchdog_mega_miss: 0
server.worker_32.watchdog_miss: 0
server.worker_33.watchdog_mega_miss: 0
server.worker_33.watchdog_miss: 0
server.worker_34.watchdog_mega_miss: 0
server.worker_34.watchdog_miss: 0
server.worker_35.watchdog_mega_miss: 0
server.worker_35.watchdog_miss: 0
server.worker_36.watchdog_mega_miss: 0
server.worker_36.watchdog_miss: 0
server.worker_37.watchdog_mega_miss: 0
server.worker_37.watchdog_miss: 0
server.worker_38.watchdog_mega_miss: 0
server.worker_38.watchdog_miss: 0
server.worker_39.watchdog_mega_miss: 0
server.worker_39.watchdog_miss: 0
server.worker_4.watchdog_mega_miss: 0
server.worker_4.watchdog_miss: 0
server.worker_40.watchdog_mega_miss: 0
server.worker_40.watchdog_miss: 0
server.worker_41.watchdog_mega_miss: 0
server.worker_41.watchdog_miss: 0
server.worker_42.watchdog_mega_miss: 0
server.worker_42.watchdog_miss: 0
server.worker_43.watchdog_mega_miss: 0
server.worker_43.watchdog_miss: 0
server.worker_44.watchdog_mega_miss: 0
server.worker_44.watchdog_miss: 0
server.worker_45.watchdog_mega_miss: 0
server.worker_45.watchdog_miss: 0
server.worker_46.watchdog_mega_miss: 0
server.worker_46.watchdog_miss: 0
server.worker_47.watchdog_mega_miss: 0
server.worker_47.watchdog_miss: 0
server.worker_48.watchdog_mega_miss: 0
server.worker_48.watchdog_miss: 0
server.worker_49.watchdog_mega_miss: 0
server.worker_49.watchdog_miss: 0
server.worker_5.watchdog_mega_miss: 0
server.worker_5.watchdog_miss: 0
server.worker_50.watchdog_mega_miss: 0
server.worker_50.watchdog_miss: 0
server.worker_51.watchdog_mega_miss: 0
server.worker_51.watchdog_miss: 0
server.worker_52.watchdog_mega_miss: 0
server.worker_52.watchdog_miss: 0
server.worker_53.watchdog_mega_miss: 0
server.worker_53.watchdog_miss: 0
server.worker_54.watchdog_mega_miss: 0
server.worker_54.watchdog_miss: 0
server.worker_55.watchdog_mega_miss: 0
server.worker_55.watchdog_miss: 0
server.worker_56.watchdog_mega_miss: 0
server.worker_56.watchdog_miss: 0
server.worker_57.watchdog_mega_miss: 0
server.worker_57.watchdog_miss: 0
server.worker_58.watchdog_mega_miss: 0
server.worker_58.watchdog_miss: 0
server.worker_59.watchdog_mega_miss: 0
server.worker_59.watchdog_miss: 0
server.worker_6.watchdog_mega_miss: 0
server.worker_6.watchdog_miss: 0
server.worker_60.watchdog_mega_miss: 0
server.worker_60.watchdog_miss: 0
server.worker_61.watchdog_mega_miss: 0
server.worker_61.watchdog_miss: 0
server.worker_62.watchdog_mega_miss: 0
server.worker_62.watchdog_miss: 0
server.worker_63.watchdog_mega_miss: 0
server.worker_63.watchdog_miss: 0
server.worker_7.watchdog_mega_miss: 0
server.worker_7.watchdog_miss: 0
server.worker_8.watchdog_mega_miss: 0
server.worker_8.watchdog_miss: 0
server.worker_9.watchdog_mega_miss: 0
server.worker_9.watchdog_miss: 0
tls_inspector.alpn_found: 0
tls_inspector.alpn_not_found: 30
tls_inspector.client_hello_too_large: 0
tls_inspector.connection_closed: 0
tls_inspector.read_error: 0
tls_inspector.sni_found: 30
tls_inspector.sni_not_found: 0
tls_inspector.tls_found: 30
tls_inspector.tls_not_found: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_retry: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_retry_limit_exceeded: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_retry_overflow: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_retry_success: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_timeout: 0
vhost.http_virtualhost.vcluster.other.upstream_rq_total: 0
workers.watchdog_mega_miss: 0
workers.watchdog_miss: 0
cluster.http_cluster.upstream_cx_connect_ms: No recorded values
cluster.http_cluster.upstream_cx_length_ms: No recorded values
cluster.railway_xds_cluster.upstream_cx_connect_ms: P0(nan,2.0) P25(nan,2.05) P50(nan,2.1) P75(nan,32.5) P90(nan,32.8) P95(nan,32.9) P99(nan,32.98) P99.5(nan,32.99) P99.9(nan,32.998) P100(nan,33.0)
cluster.railway_xds_cluster.upstream_cx_length_ms: P0(nan,0.0) P25(nan,1.025) P50(nan,31.5) P75(nan,33.9375) P90(nan,399.0) P95(nan,76950.0) P99(nan,93790.0) P99.5(nan,93895.0) P99.9(nan,93979.0) P100(nan,94000.0)
cluster_manager.cds.update_duration: P0(nan,0.0) P25(nan,0.0) P50(nan,1.025) P75(nan,1.0875) P90(nan,2.1) P95(nan,14500.0) P99(nan,14900.0) P99.5(nan,14950.0) P99.9(nan,14990.0) P100(nan,15000.0)
http.admin.downstream_cx_length_ms: P0(nan,0.0) P25(nan,1.0462962962962963) P50(nan,2.007142857142857) P75(nan,3.022727272727273) P90(nan,4.0200000000000005) P95(nan,4.0975) P99(nan,17.69) P99.5(nan,17.845) P99.9(nan,17.969) P100(nan,18.0)
http.admin.downstream_rq_time: P0(nan,0.0) P25(nan,0.0) P50(nan,0.0) P75(nan,1.081578947368421) P90(nan,2.058) P95(nan,2.089) P99(nan,3.069) P99.5(nan,3.0845) P99.9(nan,3.0969) P100(nan,3.1)
http.http.downstream_cx_length_ms: No recorded values
http.http.downstream_rq_time: No recorded values
http.http.rds.http_route_config.update_duration: P0(nan,0.0) P25(nan,0.0) P50(nan,0.0) P75(nan,1.025) P90(nan,1.07) P95(nan,1.085) P99(nan,1.097) P99.5(nan,1.0985) P99.9(nan,1.0997) P100(nan,1.1)
http.https.downstream_cx_length_ms: P0(2.0,2.0) P25(2.025,2.0288461538461537) P50(2.05,2.0576923076923075) P75(2.075,2.0865384615384617) P90(2.09,3.05) P95(2.095,4.05) P99(2.099,10.7) P99.5(2.0995,10.850000000000001) P99.9(2.0999,10.969999999999999) P100(2.1,11.0)
http.https.downstream_rq_time: P0(0.0,0.0) P25(0.0,0.0) P50(0.0,0.0) P75(0.0,0.0) P90(0.0,0.0) P95(0.0,0.0) P99(0.0,0.0) P99.5(0.0,0.0) P99.9(0.0,0.0) P100(0.0,0.0)
http.https.rds.https_route_config.update_duration: No recorded values
listener.0.0.0.0_443.downstream_cx_length_ms: P0(2.0,2.0) P25(2.025,2.0288461538461537) P50(2.05,2.0576923076923075) P75(2.075,2.0865384615384617) P90(2.09,3.05) P95(2.095,4.05) P99(2.099,10.7) P99.5(2.0995,10.850000000000001) P99.9(2.0999,10.969999999999999) P100(2.1,11.0)
listener.0.0.0.0_80.downstream_cx_length_ms: No recorded values
listener.admin.downstream_cx_length_ms: P0(nan,0.0) P25(nan,1.0462962962962963) P50(nan,2.007142857142857) P75(nan,3.0208333333333335) P90(nan,3.0983333333333336) P95(nan,4.096666666666667) P99(nan,17.69) P99.5(nan,17.845) P99.9(nan,17.969) P100(nan,18.0)
listener_manager.lds.update_duration: P0(nan,2900.0) P25(nan,2925.0) P50(nan,2950.0) P75(nan,2975.0) P90(nan,2990.0) P95(nan,2995.0) P99(nan,2999.0) P99.5(nan,2999.5) P99.9(nan,2999.9) P100(nan,3000.0)
server.initialization_time_ms: P0(nan,30000.0) P25(nan,30250.0) P50(nan,30500.0) P75(nan,30750.0) P90(nan,30900.0) P95(nan,30950.0) P99(nan,30990.0) P99.5(nan,30995.0) P99.9(nan,30999.0) P100(nan,31000.0)

We disable stats for our resources with:

stats_config:
  stats_matcher:
    exclusion_list:
      patterns:
        - prefix: cluster.clst_
        - prefix: sds.scrt_
        - prefix: vhost.vhst_

@mattklein123
Copy link
Member

I think to make more progress on this we will need a heap profile. Can you work on getting one? I'm not sure where we are at with built in support for profiles with the new tcmalloc. @rojkov @wbpcode @jmarantz

@wbpcode
Copy link
Member

wbpcode commented Apr 21, 2022

The perf tools should also be ok to get some memory profiles. Then we can try to analyse it.
Or could you provide some completely configuration to reproduce it? It hard for us to help to solve this problem if there is no a way to reproduce it. 🤔

@JakeCooper
Copy link

JakeCooper commented Apr 25, 2022

Gonna grab a heap profile/flame graph for this

EDIT: Apologies got sidetracked. Have it on my Calendar tomorrow to compile from scratch to get a heap profile/pprof

@JakeCooper
Copy link

JakeCooper commented Apr 29, 2022

1/3 of the envoy replicas is now running the heap profile. Going to let it go through a cycle of climbing heap allocations and will come back with the pprof

Sidenote: Envoy normally take like 7 hours to build from source? I haven't built a massive C++ package from source in eons

@wbpcode
Copy link
Member

wbpcode commented Apr 29, 2022

Sidenote: Envoy normally take like 7 hours to build from source? I haven't built a massive C++ package from source in eons

It depends. You can edit the do_ci.sh to ignore the unit test to shorten this time. And the second pass building would be quickly.

@JakeCooper
Copy link

It appears the built version of Envoy isn't responding on 443.

Envoy brew binary [1.23]
CleanShot 2022-04-28 at 19 42 06@2x

Envoy built from bazel [master]
CleanShot 2022-04-28 at 19 43 11@2x

Any way to debug this?

Apr 29 02:37:41 production-serviceproxy-2 systemd[1]: Started Railway Service Proxy.
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: Starting tracking the heap
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:390] initializing epoch 0 (base id=0, hot restart version=11.104)
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:392] statically linked extensions:
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.request_id: envoy.request_id.uuid
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.http.cache: envoy.extensions.http.cache.simple
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.upstreams: envoy.filters.connection_pools.tcp.generic
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.thrift_proxy.transports: auto, framed, header, unframed
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.matching.input_matchers: envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.network.dns_resolver: envoy.network.dns_resolver.cares
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.cors, envoy.filters.http.csrf, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.dynamo, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.gcp_authn, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.http_dynamo_filter, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router, match-wrapper
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.dubbo_proxy.protocols: dubbo
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.986][4877][info][main] [source/server/server.cc:394]   envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.common.key_value: envoy.key_value.file_based
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.matching.http.input: envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.resolvers: envoy.ip
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.upstreams.http.http_protocol_options
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.access_logger.extension_filters: envoy.access_loggers.extension_filters.cel
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.filters.network: envoy.client_ssl_auth, envoy.echo, envoy.ext_authz, envoy.filters.network.client_ssl_auth, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.matching.action: composite-action, skip
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.formatter: envoy.formatter.metadata, envoy.formatter.req_without_query
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.dubbo_proxy.serializers: dubbo.hessian2
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.transport_protocol
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   network.connection.client: default, envoy_internal
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.tracers: envoy.dynamic.ot, envoy.lightstep, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.lightstep, envoy.tracers.opencensus, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.http.stateful_header_formatters: preserve_case
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.retry_priorities: envoy.retry_priorities.previous_priorities
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.http.stateful_session: envoy.http.stateful_session.cookie
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.health_checkers: envoy.health_checkers.redis
Apr 29 02:37:41 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:41.987][4877][info][main] [source/server/server.cc:394]   envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.089][4877][info][main] [source/server/server.cc:442] HTTP header map info:
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.097][4877][info][main] [source/server/server.cc:445]   request header map: 656 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-proto,x-ot-span-context,x-request-id
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.097][4877][info][main] [source/server/server.cc:445]   request trailer map: 128 bytes:
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.097][4877][info][main] [source/server/server.cc:445]   response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.098][4877][info][main] [source/server/server.cc:445]   response trailer map: 152 bytes: grpc-message,grpc-status
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.218][4877][info][main] [source/server/server.cc:786] runtime: {}
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.228][4877][info][admin] [source/server/admin/admin.cc:134] admin address: 0.0.0.0:19000
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.236][4877][info][config] [source/server/configuration_impl.cc:127] loading tracing configuration
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.236][4877][info][config] [source/server/configuration_impl.cc:87] loading 0 static secret(s)
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.236][4877][info][config] [source/server/configuration_impl.cc:93] loading 1 cluster(s)
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.313][4877][info][config] [source/server/configuration_impl.cc:97] loading 0 listener(s)
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.313][4877][info][config] [source/server/configuration_impl.cc:109] loading stats configuration
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.315][4877][info][runtime] [source/common/runtime/runtime_impl.cc:462] RTDS has finished initialization
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.315][4877][info][upstream] [source/common/upstream/cluster_manager_impl.cc:204] cm init: initializing cds
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.320][4877][warning][main] [source/server/server.cc:761] there is no configured limit to the number of allowed active connections. Set a limit via the runtime key overload.global_downstream_max_connections
Apr 29 02:37:42 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:42.324][4877][info][main] [source/server/server.cc:882] starting main dispatch loop
Apr 29 02:37:48 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:37:48.933][4877][info][upstream] [source/common/upstream/cds_api_helper.cc:30] cds: add 21176 cluster(s), remove 0 cluster(s)
Apr 29 02:37:57 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0001.heap (100 MB currently in use)
Apr 29 02:38:18 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0002.heap (200 MB currently in use)
Apr 29 02:38:39 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0003.heap (300 MB currently in use)
Apr 29 02:38:59 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0004.heap (400 MB currently in use)
Apr 29 02:39:21 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0005.heap (500 MB currently in use)
Apr 29 02:39:42 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0006.heap (600 MB currently in use)
Apr 29 02:40:02 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0007.heap (700 MB currently in use)
Apr 29 02:40:24 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0008.heap (800 MB currently in use)
Apr 29 02:40:45 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0009.heap (900 MB currently in use)
Apr 29 02:41:06 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:41:06.183][4877][info][upstream] [source/common/upstream/cds_api_helper.cc:67] cds: added/updated 21176 cluster(s), skipped 0 unmodified cluster(s)
Apr 29 02:41:06 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:41:06.219][4877][info][upstream] [source/common/upstream/cluster_manager_impl.cc:208] cm init: all clusters initialized
Apr 29 02:41:06 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:41:06.219][4877][info][main] [source/server/server.cc:863] all clusters initialized. initializing init manager
Apr 29 02:41:06 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:41:06.487][4877][warning][config] [./source/common/config/grpc_stream.h:160] DeltaAggregatedResources gRPC config stream closed: 13,
Apr 29 02:41:06 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:41:06.488][4877][warning][config] [source/common/config/grpc_subscription_impl.cc:118] gRPC config: initial fetch timed out for type.googleapis.com/envoy.config.listener.v3.Listener
Apr 29 02:41:06 production-serviceproxy-2 envoy[4877]: [2022-04-29 02:41:06.488][4877][info][config] [source/server/listener_manager_impl.cc:789] all dependencies initialized. starting workers
Apr 29 02:41:09 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0010.heap (1000 MB currently in use)
Apr 29 02:41:17 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0011.heap (1100 MB currently in use)
Apr 29 02:41:25 production-serviceproxy-2 envoy[4877]: Dumping heap profile to /tmp/railwayenvoy.heapprof.0012.heap (1200 MB currently in use)
A

@JakeCooper
Copy link

I've also let it run for about 30 minutes+ but I'll let it go for longer.

Usually takes about 10-15m to start up, I assume given the number of routes/clusters we've got

@wbpcode
Copy link
Member

wbpcode commented Apr 29, 2022

You can check the stats of the listener 443. If this listener is working or the cert is correct? And the 404 like the route not found error.

@JakeCooper
Copy link

This one?

{
   "@type": "type.googleapis.com/envoy.admin.v3.ListenersConfigDump",
   "dynamic_listeners": [
    {
     "name": "https_listener",
     "error_state": {
      "failed_configuration": {
       "@type": "type.googleapis.com/envoy.config.listener.v3.Listener",
       "name": "https_listener",
       "address": {
        "socket_address": {
         "address": "0.0.0.0",
         "port_value": 443
        }
       },
       "filter_chains": [
        {
         "filter_chain_match": {
          "server_names": [
           "rc-prod.radiologycored.com"
          ]
         },
         "filters": [
          {
           "name": "envoy.filters.network.http_connection_manager",
           "typed_config": {
            "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager",
            "stat_prefix": "https",
            "rds": {
             "config_source": {
              "ads": {},
              "resource_api_version": "V3"
             },
--
            "h2",
            "http/1.1"
           ]
          }
         }
        }
       }
      },
      "last_update_attempt": "2022-04-29T02:54:21.173Z",
      "details": "Didn't find a registered implementation for 'envoy.filters.listener.tls_inspector' with type URL: ''"
     }
    },

@suniltheta
Copy link
Contributor

Should be same as #20919. You can set envoy.reloadable_features.no_extension_lookup_by_name to false.

@JakeCooper
Copy link

JakeCooper commented Apr 29, 2022

Perfect. Now returning empty responses. Once the routes are loaded, I'll force some traffic through that instance and circle back with the heap profiles

Thank you so much for the lightning quick responses!

@JakeCooper
Copy link

JakeCooper commented Apr 29, 2022

Got the pprof heap files! Just went off this but please let me know if there's anything else I can get to make this easier to debug.

railway_pprof.zip

@mattklein123
Copy link
Member

Can you potentially do some pre-processing of the data following the instructions here? https://gperftools.github.io/gperftools/heapprofile.html. You should be able to generate graphs of the heap as well as differential diffs of the heap which should make it pretty clear where the extra memory is coming from. It will also confirm that symbols are correct.

@wbpcode
Copy link
Member

wbpcode commented Apr 29, 2022

@JakeCooper Hi, thanks very much for you hard works.

As matt said, it would be better to do some pre-processing of these data. Or can you provide your envoy binary that used to generate these data? Then we can try to process these data by ourself. (If you compiled the envoy based on the opensource code base, there should be no privacy problem.)

@JakeCooper
Copy link

JakeCooper commented Apr 29, 2022

I'm happy to run anything you'd like! Additionally here's the binary

Let me know what command you'd want run, or any other files. Here to make this as simple as possible and really appreciate all your help!

@mattklein123
Copy link
Member

@JakeCooper unfortunately the version that you built doesn't have symbols (fastbuild). You will need to build with something like:

bazel build //source/exe:envoy-static --define tcmalloc=gperftools -c opt

@JakeCooper
Copy link

Oh man. Welp, guess I'll try again. Build should be faster now that we've done it once though. Will come back with another binary and set of stuff

@mattklein123
Copy link
Member

Unfortunately it won't be faster since you have to rebuild everything to get optimized code with symbols. I would try to use a bigger machine if possible.

@JakeCooper
Copy link

JakeCooper commented Apr 29, 2022

It's already operating on a 96 core, 256gb box :S

Also just to clarify: I built it with bazel build --define tcmalloc=gperftools //source/exe:envoy-static. The -c opt is the part that's missing correct? Wanna make sure I get this correct

@mattklein123
Copy link
Member

Yes that is correct. Something is really wrong if it's taking 7 hours to build on that machine. It should build in probably 10-20 minutes I would guess.

@JakeCooper
Copy link

JakeCooper commented Apr 29, 2022

Indeed. It's almost like Bazel just isn't using more than 1 core :/

CleanShot 2022-04-29 at 15 31 30@2x

Yellow = Instance compiling Envoy

CleanShot 2022-04-29 at 15 32 36@2x

That's fine. It'll get there eventually and I'll throw it up later tonight. Happy weekend!

@JakeCooper
Copy link

JakeCooper commented Apr 29, 2022

Got the below. I'm attempting to rerun it with CFLAGS=-Wno-error. Please correct me if this is incorrect, again it's been eons since I used cpp.

New Command: CFLAGS=-Wno-error bazel build //source/exe:envoy-static --define tcmalloc=gperftools -c opt

Old Error:

ERROR: /home/conductor/envoy/source/common/http/BUILD:367:17: Compiling source/common/http/header_map_impl.cc failed: (Exit 1): gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections ... (remaining 111 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox
In file included from external/com_google_absl/absl/container/inlined_vector.h:53,
                 from external/com_google_absl/absl/strings/cord.h:79,
                 from external/com_google_absl/absl/container/internal/hash_function_defaults.h:56,
                 from external/com_google_absl/absl/container/flat_hash_map.h:41,
                 from ./source/common/common/fancy_logger.h:7,
                 from ./source/common/common/logger.h:13,
                 from ./source/common/common/assert.h:5,
                 from ./envoy/config/typed_config.h:5,
                 from ./envoy/http/header_formatter.h:4,
                 from ./envoy/http/header_map.h:13,
                 from ./source/common/http/header_map_impl.h:11,
                 from source/common/http/header_map_impl.cc:1:
external/com_google_absl/absl/container/internal/inlined_vector.h: In constructor 'Envoy::Http::HeaderString::HeaderString()':
external/com_google_absl/absl/container/internal/inlined_vector.h:448:5: error: '<anonymous>.absl::inlined_vector_internal::Storage<char, 128, std::allocator<char> >::data_' is used uninitialized in this function [-Werror=uninitialized]
     data_ = other_storage.data_;
     ^~~~~
cc1plus: all warnings being treated as errors
Target //source/exe:envoy-static failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 6754.716s, Critical Path: 4332.65s
INFO: 3868 processes: 1172 internal, 1 local, 2695 processwrapper-sandbox.
FAILED: Build did NOT complete successfully

@mattklein123
Copy link
Member

If you are using a cloud instance, the problem is probably building against something like ebs. Make sure you use a local ssd and build on that.

The version of gcc you are using is too old. You would probably be better of using the docker container to build as it will replicate CI. See the instructions in the ci directory.

@JakeCooper
Copy link

JakeCooper commented Mar 10, 2023

Alrighty. Circling back here as this has grown a LOT and are now prioritizing resolving it

We continue to notice memory climbing, and so we've run a heap profile

Here's a couple of em

Our Edge Envoys (v1.25.1):
edge_27g.txt

Our Cluster Envoys (v1.25.1):
stacker-at-30g.txt

for the edge proxies, we have a single listener with ~ 12k filter chains, each filter chain entry has a domain match, one downstream TLS context, and a HCM Filter which points to a routing table via RDS.

We reference a single route config (via RDS) for all filter chain entries. This routing table has ~70k vhosts (each matching 1-2 domains), with a route to cluster action. Traffic routes to ~4 ish clusters depending on which middle proxy set we route to.

One of the filter chains is a wildcard match, (eg: *.up.railway.app), and maps to around 60k vhosts, The other 10k filter chains map 1:1 to 10k vhosts for individual domains.

Our current RouteConfig size is ~ 18MB and is updated around once every 2-5 seconds.
Our Listener config size is updated every 3-8 minutes (mostly to add/remove a filter chain). We're using the default 10min --drain-time-s setting.

CC @char8

@wbpcode
Copy link
Member

wbpcode commented Mar 10, 2023

are there lots of long-live http stream or requests?

@char8
Copy link

char8 commented Mar 10, 2023

are there lots of long-live http stream or requests?

would long lived http streams show up in the downstream_rq_time metric? our p99 varies between 3-8s there.

We do definitely have websocket connections, not sure about average duration of these, but looking at 1xx ret codes, there are about 3/sec compared to about 600/sec 2xx responses on each edge proxy. [assuming all 1xx responses are 101 upgrades for websockets].

@wbpcode
Copy link
Member

wbpcode commented Mar 10, 2023

As I know, envoy will keep a copy of shared pointer of route table in every active http request (normal http1.1 request, http2 request, http2 stream, websocket request) to ensure the route config will still alive in the whole lifetime of the request.

It means if you route table is refreshed by the RDS, the old route table will not be released immediately. If you route table is refreshed frequently and there are lots of long-live http request, then it's possible to cache lots of old versions tables in your memory and make a illusion of memory leak.

is this a possible cause of this problem? cc @mattklein123

Could you reproduce this problem in your test env? If you can, maybe you can disable all the upgrade and check if this problem could be resolved or not?

@mattklein123
Copy link
Member

Our Listener config size is updated every 3-8 minutes (mostly to add/remove a filter chain). We're using the default 10min --drain-time-s setting.

If you are allowing listeners to drain for 10 minutes and you are updating every 3-8 minutes I think by definition you are going to have infinitely climbing memory. Can you drop the drain time to something like 1 minute so it's conservatively less than the update frequency? Granted, the updater should be optimizing to only drain the impacted filter chains, but I could still see this being a problem. (Are you changing every filter chain or only some of them every 3-8 minutes?)

From a quick look at the profile it does look like either the route tables are leaking somehow or there are just too many of them sitting around. Can you actually generate some graph view cyclic charts from the data so we can see more clearly the flow of data in terms of allocation? It will be easier to understand. See https://github.com/envoyproxy/envoy/blob/main/bazel/PPROF.md#analyzing-with-pprof and check out the pprof CLI options to see how to spit out a visual view of the profile.

Regarding the listener updates, take a look at the stats here: https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/stats#listener-manager. In particular check the listener_in_place_updated stat. If that is not incrementing the majority of the time when you do updates I think that is probably the root of the problem here and we would need to think a bit differently in terms of how you are using envoy / configuring it.

@char8
Copy link

char8 commented Mar 10, 2023

Thanks both for the ideas!

Could you reproduce this problem in your test env? If you can, maybe you can disable all the upgrade and check if this problem could be resolved or not?

We're currently working on testing the route config theory by a) trying to make our route configs smaller by about 10x, b) doing a ramp of longlived http connections over an hour to see if we can see similar mem growth. We did test with 5k websockets, but it was a very short ramp to 10k, so the active connections likely only referenced a handful of route configs that changed during the ramp.

Can you actually generate some graph view cyclic charts from the data so we can see more clearly the flow of data in terms of allocation? It will be easier to understand.

do these work?

edge_27g
stacker-at-30g

would each request hold onto a ref for just the matching vhost/route or the entire routeconfig?

re: Listener updates, I forgot but the cluster hosts (the stacker-at-30g profile) don't do any listener updates after startup, but they still show this large mem growth. Looks like the lds inplace update counts roughly follow the lds update attempts count (off by 1) for the edge proxies. See plots below.

We suspected listener updates might have been the issue, especially after watching this talk from EnvoyCon, but we haven't been able to see any changes despite changing LDS update frequency, etc...

We only modify a very small subset of filter chains (mostly to change the SDS secret name after cert renewal), most of the changes are likely to be adding or removing low numbers (< 5) of filter chains per update. We try to keep the order of the filter chains list stable between updates as well.

lds_inplace
filter_chains_draining

@wbpcode
Copy link
Member

wbpcode commented Mar 10, 2023

would each request hold onto a ref for just the matching vhost/route or the entire routeconfig?

The entire route config.

@mattklein123
Copy link
Member

Thanks those graphs are very helpful. Yes it looks like the issue is many route tables that are in memory.

Our current RouteConfig size is ~ 18MB and is updated around once every 2-5 seconds.

Yeah I think this is probably the issue and I think @wbpcode analysis is correct.

would each request hold onto a ref for just the matching vhost/route or the entire routeconfig?

I had to do some code splunking, but I think the fundamental issue is what you outline, we are snapping the entire route table vs. just the route.

const ConfigImpl& global_route_config_; // See note in RouteEntryImplBase::clusterEntry() on why
// raw ref to the top level config is currently safe.

Router::ConfigConstSharedPtr snapped_route_config_;

Untangling this is going to be difficult but it should probably involve not snapping the entire config and making the config more granular so only the parts that are actually needed would be saved for the request.

@wbpcode is this something that you would be willing to tackle? It seems right up your alley. :)

In the interim I don't see any solution other than to make your route configs smaller and/or make them more granular where you return different RDS responses for each filter chain.

@wbpcode
Copy link
Member

wbpcode commented Mar 10, 2023

Will you create websocket requests gradually and keep the frequency of refreshing route config? I mean create 5 websocket every second (and ensure these websocket requests have a long time lifetime such as 10min or 15min) and update route config every 3 seconds, for example. By this way, there should be lots old versions route config be cached.

@wbpcode
Copy link
Member

wbpcode commented Mar 10, 2023

@wbpcode is this something that you would be willing to tackle? It seems right up your alley. :)

I will have a try. Whether this is the root cause or not, we still could do some optimizations.

I think we can wrapper the shared part of vh to a object and keep a pointer to this object in every route.

By this way, the request will only ref a single route and the shared part of the vh.

And the shared part of whole route config will be referred by the shared part of vh.

@char8
Copy link

char8 commented Mar 13, 2023

Will you create websocket requests gradually and keep the frequency of refreshing route config? I mean create 5 websocket every second (and ensure these websocket requests have a long time lifetime such as 10min or 15min) and update route config every 3 seconds, for example. By this way, there should be lots old versions route config be cached.

Yep! plan on testing this today. I also saw #26045 🙏, so if I can repro the mem growth, will fire off a local build of it and see if I can compare results.

@char8
Copy link

char8 commented Mar 14, 2023

Confirmed via a test, rough figures with an 18mb~ route config and ramping up to 8k websocket connections. Base mem use at idle was about ~ 1.5GB.

  1. 32GB peak RAM use @ 0.1 RDS updates per second
  2. 8GB peak RAM use @ 0.02 RDS updates per second
  3. 1.5GB peak RAM use @ 0.02 RDS updates per second with a build of router: only cache single route for the active request #26045 - can't see any difference in the mem usage graph during the test 🎉

Screenshot 2023-03-14 at 11 57 49

wbpcode added a commit that referenced this issue Apr 4, 2023
* router: only cache single route for the active request

Signed-off-by: wbpcode <wangbaiping@corp.netease.com>

In the previous impl of the route table, every active request will keep a reference of the whole route table. If there route table is updated frequently and there are some long-live http request, the old versions route tables cannot be released timely and increase the overhead of memory.

This PR try to fix this problem by cache single route for active request.

See #20800 for more detailed background.

Risk Level: High. Core code patch. Change the lifetime of route table.
Testing: Added/fixed.
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.
Optional Runtime guard: envoy.reloadable_features.prohibit_route_refresh_after_response_headers_sent

---------

Signed-off-by: wbpcode <wangbaiping@corp.netease.com>
Signed-off-by: code <wangbaiping@corp.netease.com>
Co-authored-by: Matt Klein <mattklein123@gmail.com>
RiverPhillips pushed a commit to RiverPhillips/envoy that referenced this issue Apr 7, 2023
)

* router: only cache single route for the active request

Signed-off-by: wbpcode <wangbaiping@corp.netease.com>

In the previous impl of the route table, every active request will keep a reference of the whole route table. If there route table is updated frequently and there are some long-live http request, the old versions route tables cannot be released timely and increase the overhead of memory.

This PR try to fix this problem by cache single route for active request.

See envoyproxy#20800 for more detailed background.

Risk Level: High. Core code patch. Change the lifetime of route table.
Testing: Added/fixed.
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.
Optional Runtime guard: envoy.reloadable_features.prohibit_route_refresh_after_response_headers_sent

---------

Signed-off-by: wbpcode <wangbaiping@corp.netease.com>
Signed-off-by: code <wangbaiping@corp.netease.com>
Co-authored-by: Matt Klein <mattklein123@gmail.com>
Signed-off-by: River Phillips <riverphillips1@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/perf bug help wanted Needs help! investigate Potential bug that needs verification
Projects
None yet
Development

No branches or pull requests

7 participants