本博客是深入研究Envoy Proxy和Istio.io 以及它如何实现更优雅的方式来连接和管理微服务系列文章的一部分。这是接下来几个部分的想法(将在发布时更新链接):断路器(第一部分)重试/超时(第二部分)分布式跟踪(第三部分)Prometheus的指标收集(第四部分)服务发现(第五部分)第四部分 - 使用Prometheus搜集envoy 指标envoy 配置和提供metrics方式在envoy1.9版本中,已经直接暴露了prometheus 格式的metrics,也就是prometheus可以直接去采集,无需再通过配置Statsd来收集metrics了,使用statsd的流程大致上是:首先Envoy推送指标到statsd,然后我们用prometheus(一个时序数据库)从statsd拉取指标。设置envoy 的配置文件中,有如下的设置:admin: access_log_path: “/dev/null” address: socket_address: address: 0.0.0.0 port_value: 9000 envoy 启动成功以后,访问localhost:9000/stats/prometheus,可以返回类似下面的参数:# TYPE envoy_listener_admin_http_downstream_rq_completed counterenvoy_listener_admin_http_downstream_rq_completed{envoy_http_conn_manager_prefix=“admin”} 3154# TYPE envoy_listener_admin_http_downstream_rq_xx counterenvoy_listener_admin_http_downstream_rq_xx{envoy_response_code_class=“1”,envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_listener_admin_downstream_cx_total counterenvoy_listener_admin_downstream_cx_total{} 146346envoy_listener_admin_http_downstream_rq_xx{envoy_response_code_class=“5”,envoy_http_conn_manager_prefix=“admin”} 0envoy_listener_admin_http_downstream_rq_xx{envoy_response_code_class=“3”,envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_listener_admin_downstream_pre_cx_timeout counterenvoy_listener_admin_downstream_pre_cx_timeout{} 0# TYPE envoy_listener_admin_no_filter_chain_match counterenvoy_listener_admin_no_filter_chain_match{} 0# TYPE envoy_listener_admin_downstream_cx_destroy counterenvoy_listener_admin_downstream_cx_destroy{} 146344envoy_listener_admin_http_downstream_rq_xx{envoy_response_code_class=“2”,envoy_http_conn_manager_prefix=“admin”} 3154envoy_listener_admin_http_downstream_rq_xx{envoy_response_code_class=“4”,envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_cluster_upstream_flow_control_paused_reading_total counterenvoy_cluster_upstream_flow_control_paused_reading_total{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_membership_change counterenvoy_cluster_membership_change{envoy_cluster_name=“hawkeye”} 1# TYPE envoy_cluster_ext_authz_denied counterenvoy_cluster_ext_authz_denied{envoy_cluster_name=“hawkeye”} 15# TYPE envoy_cluster_upstream_rq_completed counterenvoy_cluster_upstream_rq_completed{envoy_cluster_name=“hawkeye”} 255# TYPE envoy_cluster_upstream_rq_pending_failure_eject counterenvoy_cluster_upstream_rq_pending_failure_eject{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_connect_attempts_exceeded counterenvoy_cluster_upstream_cx_connect_attempts_exceeded{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_timeout counterenvoy_cluster_upstream_rq_timeout{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq counterenvoy_cluster_upstream_rq{envoy_response_code=“204”,envoy_cluster_name=“hawkeye”} 2# TYPE envoy_cluster_upstream_cx_connect_timeout counterenvoy_cluster_upstream_cx_connect_timeout{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_none_healthy counterenvoy_cluster_upstream_cx_none_healthy{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_pending_total counterenvoy_cluster_upstream_rq_pending_total{envoy_cluster_name=“hawkeye”} 6# TYPE envoy_cluster_internal_upstream_rq_completed counterenvoy_cluster_internal_upstream_rq_completed{envoy_cluster_name=“hawkeye”} 15envoy_cluster_upstream_rq{envoy_response_code=“200”,envoy_cluster_name=“hawkeye”} 209envoy_cluster_upstream_rq{envoy_response_code=“503”,envoy_cluster_name=“hawkeye”} 29# TYPE envoy_cluster_lb_local_cluster_not_ok counterenvoy_cluster_lb_local_cluster_not_ok{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_zone_routing_sampled counterenvoy_cluster_lb_zone_routing_sampled{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_connect_fail counterenvoy_cluster_upstream_cx_connect_fail{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_retry_success counterenvoy_cluster_upstream_rq_retry_success{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_bind_errors counterenvoy_cluster_bind_errors{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_total counterenvoy_cluster_upstream_cx_total{envoy_cluster_name=“hawkeye”} 6# TYPE envoy_cluster_lb_zone_number_differs counterenvoy_cluster_lb_zone_number_differs{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_original_dst_host_invalid counterenvoy_cluster_original_dst_host_invalid{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_zone_no_capacity_left counterenvoy_cluster_lb_zone_no_capacity_left{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_max_requests counterenvoy_cluster_upstream_cx_max_requests{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_per_try_timeout counterenvoy_cluster_upstream_rq_per_try_timeout{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_retry_overflow counterenvoy_cluster_upstream_rq_retry_overflow{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_external_upstream_rq counterenvoy_cluster_external_upstream_rq{envoy_response_code=“204”,envoy_cluster_name=“hawkeye”} 2envoy_cluster_external_upstream_rq{envoy_response_code=“503”,envoy_cluster_name=“hawkeye”} 29# TYPE envoy_cluster_upstream_cx_rx_bytes_total counterenvoy_cluster_upstream_cx_rx_bytes_total{envoy_cluster_name=“hawkeye”} 122326# TYPE envoy_cluster_upstream_cx_http1_total counterenvoy_cluster_upstream_cx_http1_total{envoy_cluster_name=“hawkeye”} 6# TYPE envoy_cluster_upstream_rq_pending_overflow counterenvoy_cluster_upstream_rq_pending_overflow{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_zone_routing_cross_zone counterenvoy_cluster_lb_zone_routing_cross_zone{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_subsets_created counterenvoy_cluster_lb_subsets_created{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_flow_control_backed_up_total counterenvoy_cluster_upstream_flow_control_backed_up_total{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_flow_control_drained_total counterenvoy_cluster_upstream_flow_control_drained_total{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_external_upstream_rq_xx counterenvoy_cluster_external_upstream_rq_xx{envoy_response_code_class=“2”,envoy_cluster_name=“hawkeye”} 211# TYPE envoy_cluster_upstream_rq_cancelled counterenvoy_cluster_upstream_rq_cancelled{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_subsets_removed counterenvoy_cluster_lb_subsets_removed{envoy_cluster_name=“hawkeye”} 0envoy_cluster_upstream_rq{envoy_response_code=“401”,envoy_cluster_name=“hawkeye”} 15# TYPE envoy_cluster_retry_or_shadow_abandoned counterenvoy_cluster_retry_or_shadow_abandoned{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_tx_bytes_total counterenvoy_cluster_upstream_cx_tx_bytes_total{envoy_cluster_name=“hawkeye”} 179523# TYPE envoy_cluster_lb_zone_cluster_too_small counterenvoy_cluster_lb_zone_cluster_too_small{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_external_upstream_rq_completed counterenvoy_cluster_external_upstream_rq_completed{envoy_cluster_name=“hawkeye”} 240# TYPE envoy_cluster_internal_upstream_rq_xx counterenvoy_cluster_internal_upstream_rq_xx{envoy_response_code_class=“4”,envoy_cluster_name=“hawkeye”} 15# TYPE envoy_cluster_lb_recalculate_zone_structures counterenvoy_cluster_lb_recalculate_zone_structures{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_destroy_with_active_rq counterenvoy_cluster_upstream_cx_destroy_with_active_rq{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_subsets_fallback counterenvoy_cluster_lb_subsets_fallback{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_xx counterenvoy_cluster_upstream_rq_xx{envoy_response_code_class=“5”,envoy_cluster_name=“hawkeye”} 29# TYPE envoy_cluster_upstream_rq_total counterenvoy_cluster_upstream_rq_total{envoy_cluster_name=“hawkeye”} 240# TYPE envoy_cluster_update_no_rebuild counterenvoy_cluster_update_no_rebuild{envoy_cluster_name=“hawkeye”} 18890# TYPE envoy_cluster_upstream_cx_destroy counterenvoy_cluster_upstream_cx_destroy{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_destroy_local counterenvoy_cluster_upstream_cx_destroy_local{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_rx_reset counterenvoy_cluster_upstream_rq_rx_reset{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_destroy_remote_with_active_rq counterenvoy_cluster_upstream_cx_destroy_remote_with_active_rq{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_flow_control_resumed_reading_total counterenvoy_cluster_upstream_flow_control_resumed_reading_total{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_update_attempt counterenvoy_cluster_update_attempt{envoy_cluster_name=“hawkeye”} 18891# TYPE envoy_cluster_upstream_rq_maintenance_mode counterenvoy_cluster_upstream_rq_maintenance_mode{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_update_failure counterenvoy_cluster_update_failure{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_ext_authz_ok counterenvoy_cluster_ext_authz_ok{envoy_cluster_name=“hawkeye”} 460envoy_cluster_external_upstream_rq_xx{envoy_response_code_class=“5”,envoy_cluster_name=“hawkeye”} 29# TYPE envoy_cluster_internal_upstream_rq counterenvoy_cluster_internal_upstream_rq{envoy_response_code=“401”,envoy_cluster_name=“hawkeye”} 15# TYPE envoy_cluster_update_empty counterenvoy_cluster_update_empty{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_zone_routing_all_directly counterenvoy_cluster_lb_zone_routing_all_directly{envoy_cluster_name=“hawkeye”} 0envoy_cluster_upstream_rq_xx{envoy_response_code_class=“2”,envoy_cluster_name=“hawkeye”} 211# TYPE envoy_cluster_upstream_cx_http2_total counterenvoy_cluster_upstream_cx_http2_total{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_destroy_remote counterenvoy_cluster_upstream_cx_destroy_remote{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_retry counterenvoy_cluster_upstream_rq_retry{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_destroy_local_with_active_rq counterenvoy_cluster_upstream_cx_destroy_local_with_active_rq{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_overflow counterenvoy_cluster_upstream_cx_overflow{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_protocol_error counterenvoy_cluster_upstream_cx_protocol_error{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_tx_reset counterenvoy_cluster_upstream_rq_tx_reset{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_healthy_panic counterenvoy_cluster_lb_healthy_panic{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_idle_timeout counterenvoy_cluster_upstream_cx_idle_timeout{envoy_cluster_name=“hawkeye”} 0envoy_cluster_upstream_rq_xx{envoy_response_code_class=“4”,envoy_cluster_name=“hawkeye”} 15envoy_cluster_external_upstream_rq{envoy_response_code=“200”,envoy_cluster_name=“hawkeye”} 209# TYPE envoy_cluster_lb_subsets_selected counterenvoy_cluster_lb_subsets_selected{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_update_success counterenvoy_cluster_update_success{envoy_cluster_name=“hawkeye”} 18891# TYPE envoy_cluster_upstream_cx_close_notify counterenvoy_cluster_upstream_cx_close_notify{envoy_cluster_name=“hawkeye”} 0envoy_cluster_upstream_cx_close_notify{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_tx_reset{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_local_cluster_not_ok{envoy_cluster_name=“ext-authz”} 0envoy_cluster_update_no_rebuild{envoy_cluster_name=“ext-authz”} 18890envoy_cluster_upstream_rq{envoy_response_code=“401”,envoy_cluster_name=“ext-authz”} 15envoy_cluster_upstream_cx_overflow{envoy_cluster_name=“ext-authz”} 0envoy_cluster_internal_upstream_rq{envoy_response_code=“200”,envoy_cluster_name=“ext-authz”} 460envoy_cluster_upstream_rq_xx{envoy_response_code_class=“4”,envoy_cluster_name=“ext-authz”} 15envoy_cluster_upstream_flow_control_paused_reading_total{envoy_cluster_name=“ext-authz”} 0envoy_cluster_internal_upstream_rq_xx{envoy_response_code_class=“2”,envoy_cluster_name=“ext-authz”} 460envoy_cluster_upstream_cx_tx_bytes_total{envoy_cluster_name=“ext-authz”} 142288envoy_cluster_update_empty{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_cancelled{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_destroy_remote{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_timeout{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_retry{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_protocol_error{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_destroy_local{envoy_cluster_name=“ext-authz”} 0envoy_cluster_update_attempt{envoy_cluster_name=“ext-authz”} 18891envoy_cluster_upstream_rq_retry_overflow{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_idle_timeout{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_zone_routing_sampled{envoy_cluster_name=“ext-authz”} 0envoy_cluster_original_dst_host_invalid{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_flow_control_resumed_reading_total{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_pending_failure_eject{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_per_try_timeout{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_max_requests{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_http2_total{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_zone_no_capacity_left{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_http1_total{envoy_cluster_name=“ext-authz”} 4envoy_cluster_upstream_rq_xx{envoy_response_code_class=“2”,envoy_cluster_name=“ext-authz”} 460envoy_cluster_upstream_rq{envoy_response_code=“200”,envoy_cluster_name=“ext-authz”} 460envoy_cluster_update_success{envoy_cluster_name=“ext-authz”} 18891envoy_cluster_lb_subsets_fallback{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_healthy_panic{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_destroy{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_connect_fail{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_connect_attempts_exceeded{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_total{envoy_cluster_name=“ext-authz”} 4envoy_cluster_upstream_cx_rx_bytes_total{envoy_cluster_name=“ext-authz”} 80016envoy_cluster_internal_upstream_rq_completed{envoy_cluster_name=“ext-authz”} 475envoy_cluster_lb_zone_number_differs{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_zone_routing_all_directly{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_pending_total{envoy_cluster_name=“ext-authz”} 4envoy_cluster_lb_subsets_created{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_retry_success{envoy_cluster_name=“ext-authz”} 0envoy_cluster_internal_upstream_rq_xx{envoy_response_code_class=“4”,envoy_cluster_name=“ext-authz”} 15envoy_cluster_upstream_rq_maintenance_mode{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_zone_routing_cross_zone{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_completed{envoy_cluster_name=“ext-authz”} 475envoy_cluster_upstream_flow_control_drained_total{envoy_cluster_name=“ext-authz”} 0envoy_cluster_membership_change{envoy_cluster_name=“ext-authz”} 1envoy_cluster_upstream_cx_none_healthy{envoy_cluster_name=“ext-authz”} 0envoy_cluster_bind_errors{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_rx_reset{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_destroy_remote_with_active_rq{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_flow_control_backed_up_total{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_connect_timeout{envoy_cluster_name=“ext-authz”} 0envoy_cluster_update_failure{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_subsets_removed{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_destroy_with_active_rq{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_subsets_selected{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_total{envoy_cluster_name=“ext-authz”} 475envoy_cluster_internal_upstream_rq{envoy_response_code=“401”,envoy_cluster_name=“ext-authz”} 15envoy_cluster_lb_recalculate_zone_structures{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_zone_cluster_too_small{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_rq_pending_overflow{envoy_cluster_name=“ext-authz”} 0envoy_cluster_retry_or_shadow_abandoned{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_destroy_local_with_active_rq{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_connect_timeout{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_pending_failure_eject{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_flow_control_paused_reading_total{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_flow_control_drained_total{envoy_cluster_name=“sso”} 0envoy_cluster_lb_local_cluster_not_ok{envoy_cluster_name=“sso”} 0envoy_cluster_lb_subsets_created{envoy_cluster_name=“sso”} 0envoy_cluster_lb_subsets_selected{envoy_cluster_name=“sso”} 0envoy_cluster_lb_zone_routing_cross_zone{envoy_cluster_name=“sso”} 0envoy_cluster_external_upstream_rq{envoy_response_code=“405”,envoy_cluster_name=“sso”} 1envoy_cluster_upstream_rq_timeout{envoy_cluster_name=“sso”} 0envoy_cluster_external_upstream_rq_xx{envoy_response_code_class=“4”,envoy_cluster_name=“sso”} 8envoy_cluster_external_upstream_rq_xx{envoy_response_code_class=“2”,envoy_cluster_name=“sso”} 13envoy_cluster_upstream_cx_overflow{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_per_try_timeout{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_max_requests{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_destroy_remote_with_active_rq{envoy_cluster_name=“sso”} 0envoy_cluster_retry_or_shadow_abandoned{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_close_notify{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_idle_timeout{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq{envoy_response_code=“415”,envoy_cluster_name=“sso”} 1envoy_cluster_upstream_cx_destroy_with_active_rq{envoy_cluster_name=“sso”} 0envoy_cluster_lb_zone_cluster_too_small{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_xx{envoy_response_code_class=“4”,envoy_cluster_name=“sso”} 8envoy_cluster_upstream_rq{envoy_response_code=“401”,envoy_cluster_name=“sso”} 6envoy_cluster_upstream_rq{envoy_response_code=“405”,envoy_cluster_name=“sso”} 1envoy_cluster_upstream_flow_control_backed_up_total{envoy_cluster_name=“sso”} 0envoy_cluster_external_upstream_rq{envoy_response_code=“401”,envoy_cluster_name=“sso”} 6envoy_cluster_external_upstream_rq{envoy_response_code=“415”,envoy_cluster_name=“sso”} 1envoy_cluster_upstream_rq_retry{envoy_cluster_name=“sso”} 0envoy_cluster_lb_zone_no_capacity_left{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_http1_total{envoy_cluster_name=“sso”} 7envoy_cluster_upstream_rq_total{envoy_cluster_name=“sso”} 21envoy_cluster_upstream_cx_protocol_error{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_tx_reset{envoy_cluster_name=“sso”} 0envoy_cluster_update_success{envoy_cluster_name=“sso”} 18891envoy_cluster_upstream_rq_completed{envoy_cluster_name=“sso”} 21envoy_cluster_external_upstream_rq{envoy_response_code=“200”,envoy_cluster_name=“sso”} 13envoy_cluster_upstream_cx_destroy{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_destroy_local{envoy_cluster_name=“sso”} 0envoy_cluster_lb_recalculate_zone_structures{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_tx_bytes_total{envoy_cluster_name=“sso”} 13072envoy_cluster_upstream_rq_pending_overflow{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_total{envoy_cluster_name=“sso”} 7envoy_cluster_lb_subsets_fallback{envoy_cluster_name=“sso”} 0envoy_cluster_original_dst_host_invalid{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_pending_total{envoy_cluster_name=“sso”} 7envoy_cluster_upstream_rq_cancelled{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_maintenance_mode{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_retry_success{envoy_cluster_name=“sso”} 0envoy_cluster_lb_healthy_panic{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_http2_total{envoy_cluster_name=“sso”} 0envoy_cluster_update_failure{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_connect_fail{envoy_cluster_name=“sso”} 0envoy_cluster_update_attempt{envoy_cluster_name=“sso”} 18891envoy_cluster_upstream_flow_control_resumed_reading_total{envoy_cluster_name=“sso”} 0envoy_cluster_update_empty{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_destroy_remote{envoy_cluster_name=“sso”} 0envoy_cluster_update_no_rebuild{envoy_cluster_name=“sso”} 18890envoy_cluster_bind_errors{envoy_cluster_name=“sso”} 0envoy_cluster_lb_subsets_removed{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_connect_attempts_exceeded{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_retry_overflow{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_xx{envoy_response_code_class=“2”,envoy_cluster_name=“sso”} 13envoy_cluster_lb_zone_number_differs{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_rx_bytes_total{envoy_cluster_name=“sso”} 12934envoy_cluster_lb_zone_routing_sampled{envoy_cluster_name=“sso”} 0envoy_cluster_lb_zone_routing_all_directly{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_destroy_local_with_active_rq{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_rx_reset{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_none_healthy{envoy_cluster_name=“sso”} 0envoy_cluster_membership_change{envoy_cluster_name=“sso”} 1envoy_cluster_external_upstream_rq_completed{envoy_cluster_name=“sso”} 21envoy_cluster_upstream_rq{envoy_response_code=“200”,envoy_cluster_name=“sso”} 13# TYPE envoy_http_downstream_rq_too_large counterenvoy_http_downstream_rq_too_large{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_protocol_error counterenvoy_http_downstream_cx_protocol_error{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_rq_timeout counterenvoy_http_downstream_rq_timeout{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_runtime_load_error counterenvoy_runtime_load_error{} 0# TYPE envoy_runtime_override_dir_not_exists counterenvoy_runtime_override_dir_not_exists{} 0# TYPE envoy_http_no_cluster counterenvoy_http_no_cluster{envoy_http_conn_manager_prefix=“async-client”} 0# TYPE envoy_server_watchdog_miss counterenvoy_server_watchdog_miss{} 0# TYPE envoy_http_downstream_rq_xx counterenvoy_http_downstream_rq_xx{envoy_response_code_class=“3”,envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_cluster_manager_cluster_removed counterenvoy_cluster_manager_cluster_removed{} 0# TYPE envoy_http_downstream_cx_upgrades_total counterenvoy_http_downstream_cx_upgrades_total{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_cluster_manager_update_merge_cancelled counterenvoy_cluster_manager_update_merge_cancelled{} 0# TYPE envoy_http_downstream_cx_overload_disable_keepalive counterenvoy_http_downstream_cx_overload_disable_keepalive{envoy_http_conn_manager_prefix=“admin”} 0envoy_http_downstream_rq_xx{envoy_response_code_class=“1”,envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_destroy counterenvoy_http_downstream_cx_destroy{envoy_http_conn_manager_prefix=“admin”} 146344envoy_http_downstream_rq_xx{envoy_response_code_class=“5”,envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_tx_bytes_total counterenvoy_http_downstream_cx_tx_bytes_total{envoy_http_conn_manager_prefix=“admin”} 155797820# TYPE envoy_http_downstream_cx_drain_close counterenvoy_http_downstream_cx_drain_close{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_destroy_local_active_rq counterenvoy_http_downstream_cx_destroy_local_active_rq{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_destroy_active_rq counterenvoy_http_downstream_cx_destroy_active_rq{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_destroy_local counterenvoy_http_downstream_cx_destroy_local{envoy_http_conn_manager_prefix=“admin”} 0envoy_http_downstream_rq_xx{envoy_response_code_class=“2”,envoy_http_conn_manager_prefix=“admin”} 3154# TYPE envoy_http_downstream_rq_http1_total counterenvoy_http_downstream_rq_http1_total{envoy_http_conn_manager_prefix=“admin”} 3155# TYPE envoy_http_rq_total counterenvoy_http_rq_total{envoy_http_conn_manager_prefix=“async-client”} 475# TYPE envoy_http_downstream_cx_total counterenvoy_http_downstream_cx_total{envoy_http_conn_manager_prefix=“admin”} 146346# TYPE envoy_runtime_load_success counterenvoy_runtime_load_success{} 0# TYPE envoy_filesystem_reopen_failed counterenvoy_filesystem_reopen_failed{} 0# TYPE envoy_http_downstream_rq_total counterenvoy_http_downstream_rq_total{envoy_http_conn_manager_prefix=“admin”} 3155# TYPE envoy_http_downstream_rq_rx_reset counterenvoy_http_downstream_rq_rx_reset{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_cluster_manager_cluster_modified counterenvoy_cluster_manager_cluster_modified{} 0# TYPE envoy_http_downstream_rq_idle_timeout counterenvoy_http_downstream_rq_idle_timeout{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_destroy_remote_active_rq counterenvoy_http_downstream_cx_destroy_remote_active_rq{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_ssl_total counterenvoy_http_downstream_cx_ssl_total{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_delayed_close_timeout counterenvoy_http_downstream_cx_delayed_close_timeout{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_cluster_manager_update_out_of_merge_window counterenvoy_cluster_manager_update_out_of_merge_window{} 0# TYPE envoy_http_downstream_flow_control_resumed_reading_total counterenvoy_http_downstream_flow_control_resumed_reading_total{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_listener_manager_listener_added counterenvoy_listener_manager_listener_added{} 1# TYPE envoy_http_downstream_rq_overload_close counterenvoy_http_downstream_rq_overload_close{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_http2_total counterenvoy_http_downstream_cx_http2_total{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_listener_manager_listener_create_failure counterenvoy_listener_manager_listener_create_failure{} 0# TYPE envoy_stats_overflow counterenvoy_stats_overflow{} 0# TYPE envoy_listener_manager_listener_create_success counterenvoy_listener_manager_listener_create_success{} 16# TYPE envoy_http_downstream_cx_http1_total counterenvoy_http_downstream_cx_http1_total{envoy_http_conn_manager_prefix=“admin”} 2# TYPE envoy_http_no_route counterenvoy_http_no_route{envoy_http_conn_manager_prefix=“async-client”} 0# TYPE envoy_cluster_manager_cluster_updated counterenvoy_cluster_manager_cluster_updated{} 0# TYPE envoy_http_downstream_cx_destroy_remote counterenvoy_http_downstream_cx_destroy_remote{envoy_http_conn_manager_prefix=“admin”} 146344# TYPE envoy_http_downstream_rq_non_relative_path counterenvoy_http_downstream_rq_non_relative_path{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_rs_too_large counterenvoy_http_rs_too_large{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_rq_tx_reset counterenvoy_http_downstream_rq_tx_reset{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_server_watchdog_mega_miss counterenvoy_server_watchdog_mega_miss{} 0# TYPE envoy_http_downstream_flow_control_paused_reading_total counterenvoy_http_downstream_flow_control_paused_reading_total{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_rx_bytes_total counterenvoy_http_downstream_cx_rx_bytes_total{envoy_http_conn_manager_prefix=“admin”} 795620# TYPE envoy_http_downstream_rq_completed counterenvoy_http_downstream_rq_completed{envoy_http_conn_manager_prefix=“admin”} 3154# TYPE envoy_listener_manager_listener_removed counterenvoy_listener_manager_listener_removed{} 0envoy_http_downstream_rq_xx{envoy_response_code_class=“4”,envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_rq_direct_response counterenvoy_http_rq_direct_response{envoy_http_conn_manager_prefix=“async-client”} 0# TYPE envoy_filesystem_write_completed counterenvoy_filesystem_write_completed{} 3366# TYPE envoy_http_downstream_rq_ws_on_non_ws_route counterenvoy_http_downstream_rq_ws_on_non_ws_route{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_cluster_manager_cluster_updated_via_merge counterenvoy_cluster_manager_cluster_updated_via_merge{} 0# TYPE envoy_filesystem_flushed_by_timer counterenvoy_filesystem_flushed_by_timer{} 18495# TYPE envoy_filesystem_write_buffered counterenvoy_filesystem_write_buffered{} 3669# TYPE envoy_runtime_override_dir_exists counterenvoy_runtime_override_dir_exists{} 0# TYPE envoy_cluster_manager_cluster_added counterenvoy_cluster_manager_cluster_added{} 4# TYPE envoy_listener_manager_listener_modified counterenvoy_listener_manager_listener_modified{} 0# TYPE envoy_http_downstream_rq_http2_total counterenvoy_http_downstream_rq_http2_total{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_rq_response_before_rq_complete counterenvoy_http_downstream_rq_response_before_rq_complete{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_idle_timeout counterenvoy_http_downstream_cx_idle_timeout{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_rq_redirect counterenvoy_http_rq_redirect{envoy_http_conn_manager_prefix=“async-client”} 0# TYPE envoy_listener_http_downstream_rq_xx counterenvoy_listener_http_downstream_rq_xx{envoy_response_code_class=“1”,envoy_http_conn_manager_prefix=“ingress_http”,envoy_listener_address=“0.0.0.0_8000”} 0envoy_listener_http_downstream_rq_xx{envoy_response_code_class=“2”,envoy_http_conn_manager_prefix=“ingress_http”,envoy_listener_address=“0.0.0.0_8000”} 456envoy_listener_http_downstream_rq_xx{envoy_response_code_class=“4”,envoy_http_conn_manager_prefix=“ingress_http”,envoy_listener_address=“0.0.0.0_8000”} 30# TYPE envoy_listener_downstream_pre_cx_timeout counterenvoy_listener_downstream_pre_cx_timeout{envoy_listener_address=“0.0.0.0_8000”} 0# TYPE envoy_listener_no_filter_chain_match counterenvoy_listener_no_filter_chain_match{envoy_listener_address=“0.0.0.0_8000”} 0# TYPE envoy_listener_downstream_cx_total counterenvoy_listener_downstream_cx_total{envoy_listener_address=“0.0.0.0_8000”} 147370envoy_listener_http_downstream_rq_xx{envoy_response_code_class=“5”,envoy_http_conn_manager_prefix=“ingress_http”,envoy_listener_address=“0.0.0.0_8000”} 29envoy_listener_http_downstream_rq_xx{envoy_response_code_class=“3”,envoy_http_conn_manager_prefix=“ingress_http”,envoy_listener_address=“0.0.0.0_8000”} 0# TYPE envoy_listener_downstream_cx_destroy counterenvoy_listener_downstream_cx_destroy{envoy_listener_address=“0.0.0.0_8000”} 147369# TYPE envoy_listener_http_downstream_rq_completed counterenvoy_listener_http_downstream_rq_completed{envoy_http_conn_manager_prefix=“ingress_http”,envoy_listener_address=“0.0.0.0_8000”} 515envoy_http_downstream_cx_destroy{envoy_http_conn_manager_prefix=“ingress_http”} 147369envoy_http_downstream_rq_http1_total{envoy_http_conn_manager_prefix=“ingress_http”} 515envoy_http_downstream_cx_destroy_local_active_rq{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_flow_control_resumed_reading_total{envoy_http_conn_manager_prefix=“ingress_http”} 0# TYPE envoy_http_tracing_health_check counterenvoy_http_tracing_health_check{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_response_before_rq_complete{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_protocol_error{envoy_http_conn_manager_prefix=“ingress_http”} 2envoy_http_downstream_cx_destroy_remote{envoy_http_conn_manager_prefix=“ingress_http”} 147367envoy_http_no_route{envoy_http_conn_manager_prefix=“ingress_http”} 7envoy_http_rq_redirect{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_http1_total{envoy_http_conn_manager_prefix=“ingress_http”} 41# TYPE envoy_http_tracing_random_sampling counterenvoy_http_tracing_random_sampling{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_total{envoy_http_conn_manager_prefix=“ingress_http”} 147370envoy_http_downstream_cx_destroy_remote_active_rq{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_rs_too_large{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_idle_timeout{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_idle_timeout{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_rx_bytes_total{envoy_http_conn_manager_prefix=“ingress_http”} 306987envoy_http_downstream_rq_xx{envoy_response_code_class=“1”,envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_ws_on_non_ws_route{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_xx{envoy_response_code_class=“3”,envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_overload_disable_keepalive{envoy_http_conn_manager_prefix=“ingress_http”} 0# TYPE envoy_http_tracing_service_forced counterenvoy_http_tracing_service_forced{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_drain_close{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_tx_bytes_total{envoy_http_conn_manager_prefix=“ingress_http”} 227287envoy_http_downstream_cx_delayed_close_timeout{envoy_http_conn_manager_prefix=“ingress_http”} 2envoy_http_downstream_flow_control_paused_reading_total{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_timeout{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_rx_reset{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_destroy_local{envoy_http_conn_manager_prefix=“ingress_http”} 2# TYPE envoy_http_tracing_not_traceable counterenvoy_http_tracing_not_traceable{envoy_http_conn_manager_prefix=“ingress_http”} 0# TYPE envoy_http_cors_origin_invalid counterenvoy_http_cors_origin_invalid{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_no_cluster{envoy_http_conn_manager_prefix=“ingress_http”} 0# TYPE envoy_http_cors_origin_valid counterenvoy_http_cors_origin_valid{envoy_http_conn_manager_prefix=“ingress_http”} 485envoy_http_downstream_rq_completed{envoy_http_conn_manager_prefix=“ingress_http”} 515envoy_http_rq_total{envoy_http_conn_manager_prefix=“ingress_http”} 268envoy_http_downstream_rq_tx_reset{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_total{envoy_http_conn_manager_prefix=“ingress_http”} 515envoy_http_downstream_rq_overload_close{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_http2_total{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_destroy_active_rq{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_http2_total{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_upgrades_total{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_non_relative_path{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_xx{envoy_response_code_class=“4”,envoy_http_conn_manager_prefix=“ingress_http”} 30envoy_http_downstream_rq_xx{envoy_response_code_class=“5”,envoy_http_conn_manager_prefix=“ingress_http”} 29envoy_http_rq_direct_response{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_ssl_total{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_too_large{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_rq_xx{envoy_response_code_class=“2”,envoy_http_conn_manager_prefix=“ingress_http”} 456# TYPE envoy_http_tracing_client_enabled counterenvoy_http_tracing_client_enabled{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_cluster_upstream_cx_protocol_error{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_flow_control_paused_reading_total{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_http2_total{envoy_cluster_name=“cost”} 0envoy_cluster_lb_subsets_removed{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_http1_total{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_close_notify{envoy_cluster_name=“cost”} 0envoy_cluster_lb_zone_cluster_too_small{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_max_requests{envoy_cluster_name=“cost”} 0envoy_cluster_membership_change{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_destroy_local{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_cancelled{envoy_cluster_name=“cost”} 0envoy_cluster_update_no_rebuild{envoy_cluster_name=“cost”} 18872envoy_cluster_upstream_rq_timeout{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_rx_bytes_total{envoy_cluster_name=“cost”} 0envoy_cluster_lb_zone_no_capacity_left{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_destroy_local_with_active_rq{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_total{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_per_try_timeout{envoy_cluster_name=“cost”} 0envoy_cluster_bind_errors{envoy_cluster_name=“cost”} 0envoy_cluster_update_success{envoy_cluster_name=“cost”} 18872envoy_cluster_upstream_rq_retry{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_tx_reset{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_retry_success{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_connect_attempts_exceeded{envoy_cluster_name=“cost”} 0envoy_cluster_update_empty{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_destroy_remote{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_tx_bytes_total{envoy_cluster_name=“cost”} 0envoy_cluster_original_dst_host_invalid{envoy_cluster_name=“cost”} 0envoy_cluster_update_failure{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_pending_overflow{envoy_cluster_name=“cost”} 0envoy_cluster_update_attempt{envoy_cluster_name=“cost”} 18872envoy_cluster_upstream_cx_connect_timeout{envoy_cluster_name=“cost”} 0envoy_cluster_lb_zone_routing_all_directly{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_none_healthy{envoy_cluster_name=“cost”} 0envoy_cluster_retry_or_shadow_abandoned{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_flow_control_resumed_reading_total{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_connect_fail{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_retry_overflow{envoy_cluster_name=“cost”} 0envoy_cluster_lb_zone_routing_cross_zone{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_pending_total{envoy_cluster_name=“cost”} 0envoy_cluster_lb_subsets_created{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_maintenance_mode{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_completed{envoy_cluster_name=“cost”} 0envoy_cluster_lb_healthy_panic{envoy_cluster_name=“cost”} 0envoy_cluster_lb_zone_routing_sampled{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_flow_control_drained_total{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_destroy_remote_with_active_rq{envoy_cluster_name=“cost”} 0envoy_cluster_lb_local_cluster_not_ok{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_flow_control_backed_up_total{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_rx_reset{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_destroy_with_active_rq{envoy_cluster_name=“cost”} 0envoy_cluster_lb_subsets_fallback{envoy_cluster_name=“cost”} 0envoy_cluster_lb_zone_number_differs{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_idle_timeout{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_overflow{envoy_cluster_name=“cost”} 0envoy_cluster_lb_subsets_selected{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_total{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_destroy{envoy_cluster_name=“cost”} 0envoy_cluster_lb_recalculate_zone_structures{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_pending_failure_eject{envoy_cluster_name=“cost”} 0# TYPE envoy_listener_admin_downstream_pre_cx_active gaugeenvoy_listener_admin_downstream_pre_cx_active{} 0# TYPE envoy_listener_admin_downstream_cx_active gaugeenvoy_listener_admin_downstream_cx_active{} 2# TYPE envoy_cluster_upstream_cx_rx_bytes_buffered gaugeenvoy_cluster_upstream_cx_rx_bytes_buffered{envoy_cluster_name=“hawkeye”} 3402# TYPE envoy_cluster_membership_healthy gaugeenvoy_cluster_membership_healthy{envoy_cluster_name=“hawkeye”} 1# TYPE envoy_cluster_circuit_breakers_high_cx_open gaugeenvoy_cluster_circuit_breakers_high_cx_open{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_circuit_breakers_default_rq_pending_open gaugeenvoy_cluster_circuit_breakers_default_rq_pending_open{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_tx_bytes_buffered gaugeenvoy_cluster_upstream_cx_tx_bytes_buffered{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_circuit_breakers_high_rq_retry_open gaugeenvoy_cluster_circuit_breakers_high_rq_retry_open{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_lb_subsets_active gaugeenvoy_cluster_lb_subsets_active{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_circuit_breakers_default_cx_open gaugeenvoy_cluster_circuit_breakers_default_cx_open{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_max_host_weight gaugeenvoy_cluster_max_host_weight{envoy_cluster_name=“hawkeye”} 1# TYPE envoy_cluster_circuit_breakers_default_rq_retry_open gaugeenvoy_cluster_circuit_breakers_default_rq_retry_open{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_version gaugeenvoy_cluster_version{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_membership_total gaugeenvoy_cluster_membership_total{envoy_cluster_name=“hawkeye”} 1# TYPE envoy_cluster_circuit_breakers_high_rq_pending_open gaugeenvoy_cluster_circuit_breakers_high_rq_pending_open{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_circuit_breakers_default_rq_open gaugeenvoy_cluster_circuit_breakers_default_rq_open{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_circuit_breakers_high_rq_open gaugeenvoy_cluster_circuit_breakers_high_rq_open{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_cx_active gaugeenvoy_cluster_upstream_cx_active{envoy_cluster_name=“hawkeye”} 3# TYPE envoy_cluster_upstream_rq_pending_active gaugeenvoy_cluster_upstream_rq_pending_active{envoy_cluster_name=“hawkeye”} 0# TYPE envoy_cluster_upstream_rq_active gaugeenvoy_cluster_upstream_rq_active{envoy_cluster_name=“hawkeye”} 0envoy_cluster_membership_healthy{envoy_cluster_name=“ext-authz”} 1envoy_cluster_circuit_breakers_default_rq_pending_open{envoy_cluster_name=“ext-authz”} 0envoy_cluster_circuit_breakers_default_rq_open{envoy_cluster_name=“ext-authz”} 0envoy_cluster_membership_total{envoy_cluster_name=“ext-authz”} 1envoy_cluster_circuit_breakers_default_rq_retry_open{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_active{envoy_cluster_name=“ext-authz”} 4envoy_cluster_version{envoy_cluster_name=“ext-authz”} 0envoy_cluster_circuit_breakers_high_rq_pending_open{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_rx_bytes_buffered{envoy_cluster_name=“ext-authz”} 714envoy_cluster_upstream_rq_pending_active{envoy_cluster_name=“ext-authz”} 0envoy_cluster_circuit_breakers_high_cx_open{envoy_cluster_name=“ext-authz”} 0envoy_cluster_circuit_breakers_high_rq_retry_open{envoy_cluster_name=“ext-authz”} 0envoy_cluster_max_host_weight{envoy_cluster_name=“ext-authz”} 1envoy_cluster_upstream_rq_active{envoy_cluster_name=“ext-authz”} 0envoy_cluster_circuit_breakers_high_rq_open{envoy_cluster_name=“ext-authz”} 0envoy_cluster_upstream_cx_tx_bytes_buffered{envoy_cluster_name=“ext-authz”} 0envoy_cluster_circuit_breakers_default_cx_open{envoy_cluster_name=“ext-authz”} 0envoy_cluster_lb_subsets_active{envoy_cluster_name=“ext-authz”} 0envoy_cluster_circuit_breakers_default_rq_open{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_pending_active{envoy_cluster_name=“sso”} 0envoy_cluster_membership_healthy{envoy_cluster_name=“sso”} 1envoy_cluster_circuit_breakers_high_rq_pending_open{envoy_cluster_name=“sso”} 0envoy_cluster_circuit_breakers_high_rq_open{envoy_cluster_name=“sso”} 0envoy_cluster_circuit_breakers_high_rq_retry_open{envoy_cluster_name=“sso”} 0envoy_cluster_version{envoy_cluster_name=“sso”} 0envoy_cluster_circuit_breakers_high_cx_open{envoy_cluster_name=“sso”} 0envoy_cluster_membership_total{envoy_cluster_name=“sso”} 1envoy_cluster_upstream_cx_active{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_tx_bytes_buffered{envoy_cluster_name=“sso”} 0envoy_cluster_circuit_breakers_default_rq_pending_open{envoy_cluster_name=“sso”} 0envoy_cluster_lb_subsets_active{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_cx_rx_bytes_buffered{envoy_cluster_name=“sso”} 0envoy_cluster_circuit_breakers_default_cx_open{envoy_cluster_name=“sso”} 0envoy_cluster_upstream_rq_active{envoy_cluster_name=“sso”} 0envoy_cluster_max_host_weight{envoy_cluster_name=“sso”} 1envoy_cluster_circuit_breakers_default_rq_retry_open{envoy_cluster_name=“sso”} 0# TYPE envoy_filesystem_write_total_buffered gaugeenvoy_filesystem_write_total_buffered{} 0# TYPE envoy_http_downstream_cx_http1_active gaugeenvoy_http_downstream_cx_http1_active{envoy_http_conn_manager_prefix=“admin”} 2# TYPE envoy_listener_manager_total_listeners_warming gaugeenvoy_listener_manager_total_listeners_warming{} 0# TYPE envoy_runtime_num_keys gaugeenvoy_runtime_num_keys{} 0# TYPE envoy_http_downstream_cx_rx_bytes_buffered gaugeenvoy_http_downstream_cx_rx_bytes_buffered{envoy_http_conn_manager_prefix=“admin”} 845# TYPE envoy_runtime_admin_overrides_active gaugeenvoy_runtime_admin_overrides_active{} 0# TYPE envoy_server_version gaugeenvoy_server_version{} 3653592# TYPE envoy_cluster_manager_active_clusters gaugeenvoy_cluster_manager_active_clusters{} 4# TYPE envoy_server_live gaugeenvoy_server_live{} 1# TYPE envoy_http_downstream_cx_ssl_active gaugeenvoy_http_downstream_cx_ssl_active{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_http2_active gaugeenvoy_http_downstream_cx_http2_active{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_tx_bytes_buffered gaugeenvoy_http_downstream_cx_tx_bytes_buffered{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_cx_upgrades_active gaugeenvoy_http_downstream_cx_upgrades_active{envoy_http_conn_manager_prefix=“admin”} 0# TYPE envoy_http_downstream_rq_active gaugeenvoy_http_downstream_rq_active{envoy_http_conn_manager_prefix=“admin”} 1# TYPE envoy_listener_manager_total_listeners_active gaugeenvoy_listener_manager_total_listeners_active{} 1# TYPE envoy_server_parent_connections gaugeenvoy_server_parent_connections{} 0# TYPE envoy_cluster_manager_warming_clusters gaugeenvoy_cluster_manager_warming_clusters{} 0# TYPE envoy_http_downstream_cx_active gaugeenvoy_http_downstream_cx_active{envoy_http_conn_manager_prefix=“admin”} 2# TYPE envoy_listener_manager_total_listeners_draining gaugeenvoy_listener_manager_total_listeners_draining{} 0# TYPE envoy_server_total_connections gaugeenvoy_server_total_connections{} 1# TYPE envoy_server_concurrency gaugeenvoy_server_concurrency{} 16# TYPE envoy_server_memory_allocated gaugeenvoy_server_memory_allocated{} 4216000# TYPE envoy_server_hot_restart_epoch gaugeenvoy_server_hot_restart_epoch{} 0# TYPE envoy_server_uptime gaugeenvoy_server_uptime{} 94576# TYPE envoy_server_memory_heap_size gaugeenvoy_server_memory_heap_size{} 6291456# TYPE envoy_server_days_until_first_cert_expiring gaugeenvoy_server_days_until_first_cert_expiring{} 2147483647# TYPE envoy_listener_downstream_cx_active gaugeenvoy_listener_downstream_cx_active{envoy_listener_address=“0.0.0.0_8000”} 1# TYPE envoy_listener_downstream_pre_cx_active gaugeenvoy_listener_downstream_pre_cx_active{envoy_listener_address=“0.0.0.0_8000”} 0envoy_http_downstream_cx_tx_bytes_buffered{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_upgrades_active{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_ssl_active{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_active{envoy_http_conn_manager_prefix=“ingress_http”} 1envoy_http_downstream_cx_http1_active{envoy_http_conn_manager_prefix=“ingress_http”} 1envoy_http_downstream_cx_http2_active{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_http_downstream_cx_rx_bytes_buffered{envoy_http_conn_manager_prefix=“ingress_http”} 403envoy_http_downstream_rq_active{envoy_http_conn_manager_prefix=“ingress_http”} 0envoy_cluster_upstream_rq_pending_active{envoy_cluster_name=“cost”} 0envoy_cluster_circuit_breakers_default_cx_open{envoy_cluster_name=“cost”} 0envoy_cluster_circuit_breakers_default_rq_pending_open{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_rq_active{envoy_cluster_name=“cost”} 0envoy_cluster_circuit_breakers_high_rq_pending_open{envoy_cluster_name=“cost”} 0envoy_cluster_circuit_breakers_default_rq_open{envoy_cluster_name=“cost”} 0envoy_cluster_max_host_weight{envoy_cluster_name=“cost”} 1envoy_cluster_membership_total{envoy_cluster_name=“cost”} 0envoy_cluster_circuit_breakers_high_cx_open{envoy_cluster_name=“cost”} 0envoy_cluster_circuit_breakers_default_rq_retry_open{envoy_cluster_name=“cost”} 0envoy_cluster_membership_healthy{envoy_cluster_name=“cost”} 0envoy_cluster_version{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_active{envoy_cluster_name=“cost”} 0envoy_cluster_circuit_breakers_high_rq_retry_open{envoy_cluster_name=“cost”} 0envoy_cluster_circuit_breakers_high_rq_open{envoy_cluster_name=“cost”} 0envoy_cluster_lb_subsets_active{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_tx_bytes_buffered{envoy_cluster_name=“cost”} 0envoy_cluster_upstream_cx_rx_bytes_buffered{envoy_cluster_name=“cost”} 0配置prometheus 采集envoy由于我实际测试过程中,envoy是部署在k8s当中,所以,利用prometheus对pod 自动发现的能力,没有在prometheus做静态配置。自动发现的好处,就是当pod hpa的时候,不需要去更改配置文件。要采集envoy metrics,在 envoy deployment当中要加入如下注解:kind: DeploymentapiVersion: apps/v1metadata: name: gateway labels: app: gatewayspec: replicas: 2 selector: matchLabels: app: gateway template: metadata: labels: app: gateway annotations: prometheus.io/scrape: ’true’ prometheus.io/path: ‘/stats/prometheus’ prometheus.io/port: ‘9000’ spec: volumes: - name: config configMap: name: gateway-cm containers: - name: gateway image: ’envoyproxy/envoy:v1.9.0’ env: - name: ‘CPUS’ value: ‘1’ - name: ‘SERVICE_NAME’ value: ‘-gateway’ resources: limits: cpu: ‘1’ memory: 1Gi requests: cpu: ‘1’ memory: 1Gi volumeMounts: - name: config mountPath: /etc/envoy/ imagePullPolicy: Always 注意如下的注解: annotations: prometheus.io/scrape: ’true’ prometheus.io/path: ‘/stats/prometheus’ prometheus.io/port: ‘9000’然后查看prometheus的管理界面,查询一下metrics:prometheus已经成功采集metrics。grafana展示grafana dashbord中,已经有两个做好的模板。大家引入就可以了。具体是envoy global看板(7253)和 Envoy Service Dashboard(7250)。最后效果如下:
...