本博客是深入研究Envoy Proxy和Istio.io 以及它如何实现更优雅的方式来连接和管理微服务系列文章的一部分。

这是接下来几个部分的想法(将在发布时更新链接):

  • 断路器(第一部分)
  • 重试/超时(第二部分)
  • 分布式跟踪(第三部分)
  • Prometheus的指标收集(第四部分)
  • rate limiter(第五部分)

第四部分 - 使用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.0port_value: 9000

envoy 启动成功以后,访问localhost:9000/stats/prometheus,可以返回类似下面的参数:

# TYPE envoy_listener_admin_http_downstream_rq_completed counter
envoy_listener_admin_http_downstream_rq_completed{envoy_http_conn_manager_prefix="admin"} 3154
# TYPE envoy_listener_admin_http_downstream_rq_xx counter
envoy_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 counter
envoy_listener_admin_downstream_cx_total{} 146346
envoy_listener_admin_http_downstream_rq_xx{envoy_response_code_class="5",envoy_http_conn_manager_prefix="admin"} 0
envoy_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 counter
envoy_listener_admin_downstream_pre_cx_timeout{} 0
# TYPE envoy_listener_admin_no_filter_chain_match counter
envoy_listener_admin_no_filter_chain_match{} 0
# TYPE envoy_listener_admin_downstream_cx_destroy counter
envoy_listener_admin_downstream_cx_destroy{} 146344
envoy_listener_admin_http_downstream_rq_xx{envoy_response_code_class="2",envoy_http_conn_manager_prefix="admin"} 3154
envoy_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 counter
envoy_cluster_upstream_flow_control_paused_reading_total{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_membership_change counter
envoy_cluster_membership_change{envoy_cluster_name="hawkeye"} 1
# TYPE envoy_cluster_ext_authz_denied counter
envoy_cluster_ext_authz_denied{envoy_cluster_name="hawkeye"} 15
# TYPE envoy_cluster_upstream_rq_completed counter
envoy_cluster_upstream_rq_completed{envoy_cluster_name="hawkeye"} 255
# TYPE envoy_cluster_upstream_rq_pending_failure_eject counter
envoy_cluster_upstream_rq_pending_failure_eject{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_connect_attempts_exceeded counter
envoy_cluster_upstream_cx_connect_attempts_exceeded{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_timeout counter
envoy_cluster_upstream_rq_timeout{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq counter
envoy_cluster_upstream_rq{envoy_response_code="204",envoy_cluster_name="hawkeye"} 2
# TYPE envoy_cluster_upstream_cx_connect_timeout counter
envoy_cluster_upstream_cx_connect_timeout{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_none_healthy counter
envoy_cluster_upstream_cx_none_healthy{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_pending_total counter
envoy_cluster_upstream_rq_pending_total{envoy_cluster_name="hawkeye"} 6
# TYPE envoy_cluster_internal_upstream_rq_completed counter
envoy_cluster_internal_upstream_rq_completed{envoy_cluster_name="hawkeye"} 15
envoy_cluster_upstream_rq{envoy_response_code="200",envoy_cluster_name="hawkeye"} 209
envoy_cluster_upstream_rq{envoy_response_code="503",envoy_cluster_name="hawkeye"} 29
# TYPE envoy_cluster_lb_local_cluster_not_ok counter
envoy_cluster_lb_local_cluster_not_ok{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_zone_routing_sampled counter
envoy_cluster_lb_zone_routing_sampled{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_connect_fail counter
envoy_cluster_upstream_cx_connect_fail{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_retry_success counter
envoy_cluster_upstream_rq_retry_success{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_bind_errors counter
envoy_cluster_bind_errors{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_total counter
envoy_cluster_upstream_cx_total{envoy_cluster_name="hawkeye"} 6
# TYPE envoy_cluster_lb_zone_number_differs counter
envoy_cluster_lb_zone_number_differs{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_original_dst_host_invalid counter
envoy_cluster_original_dst_host_invalid{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_zone_no_capacity_left counter
envoy_cluster_lb_zone_no_capacity_left{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_max_requests counter
envoy_cluster_upstream_cx_max_requests{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_per_try_timeout counter
envoy_cluster_upstream_rq_per_try_timeout{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_retry_overflow counter
envoy_cluster_upstream_rq_retry_overflow{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_external_upstream_rq counter
envoy_cluster_external_upstream_rq{envoy_response_code="204",envoy_cluster_name="hawkeye"} 2
envoy_cluster_external_upstream_rq{envoy_response_code="503",envoy_cluster_name="hawkeye"} 29
# TYPE envoy_cluster_upstream_cx_rx_bytes_total counter
envoy_cluster_upstream_cx_rx_bytes_total{envoy_cluster_name="hawkeye"} 122326
# TYPE envoy_cluster_upstream_cx_http1_total counter
envoy_cluster_upstream_cx_http1_total{envoy_cluster_name="hawkeye"} 6
# TYPE envoy_cluster_upstream_rq_pending_overflow counter
envoy_cluster_upstream_rq_pending_overflow{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_zone_routing_cross_zone counter
envoy_cluster_lb_zone_routing_cross_zone{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_subsets_created counter
envoy_cluster_lb_subsets_created{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_flow_control_backed_up_total counter
envoy_cluster_upstream_flow_control_backed_up_total{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_flow_control_drained_total counter
envoy_cluster_upstream_flow_control_drained_total{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_external_upstream_rq_xx counter
envoy_cluster_external_upstream_rq_xx{envoy_response_code_class="2",envoy_cluster_name="hawkeye"} 211
# TYPE envoy_cluster_upstream_rq_cancelled counter
envoy_cluster_upstream_rq_cancelled{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_subsets_removed counter
envoy_cluster_lb_subsets_removed{envoy_cluster_name="hawkeye"} 0
envoy_cluster_upstream_rq{envoy_response_code="401",envoy_cluster_name="hawkeye"} 15
# TYPE envoy_cluster_retry_or_shadow_abandoned counter
envoy_cluster_retry_or_shadow_abandoned{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_tx_bytes_total counter
envoy_cluster_upstream_cx_tx_bytes_total{envoy_cluster_name="hawkeye"} 179523
# TYPE envoy_cluster_lb_zone_cluster_too_small counter
envoy_cluster_lb_zone_cluster_too_small{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_external_upstream_rq_completed counter
envoy_cluster_external_upstream_rq_completed{envoy_cluster_name="hawkeye"} 240
# TYPE envoy_cluster_internal_upstream_rq_xx counter
envoy_cluster_internal_upstream_rq_xx{envoy_response_code_class="4",envoy_cluster_name="hawkeye"} 15
# TYPE envoy_cluster_lb_recalculate_zone_structures counter
envoy_cluster_lb_recalculate_zone_structures{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_destroy_with_active_rq counter
envoy_cluster_upstream_cx_destroy_with_active_rq{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_subsets_fallback counter
envoy_cluster_lb_subsets_fallback{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_xx counter
envoy_cluster_upstream_rq_xx{envoy_response_code_class="5",envoy_cluster_name="hawkeye"} 29
# TYPE envoy_cluster_upstream_rq_total counter
envoy_cluster_upstream_rq_total{envoy_cluster_name="hawkeye"} 240
# TYPE envoy_cluster_update_no_rebuild counter
envoy_cluster_update_no_rebuild{envoy_cluster_name="hawkeye"} 18890
# TYPE envoy_cluster_upstream_cx_destroy counter
envoy_cluster_upstream_cx_destroy{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_destroy_local counter
envoy_cluster_upstream_cx_destroy_local{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_rx_reset counter
envoy_cluster_upstream_rq_rx_reset{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_destroy_remote_with_active_rq counter
envoy_cluster_upstream_cx_destroy_remote_with_active_rq{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_flow_control_resumed_reading_total counter
envoy_cluster_upstream_flow_control_resumed_reading_total{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_update_attempt counter
envoy_cluster_update_attempt{envoy_cluster_name="hawkeye"} 18891
# TYPE envoy_cluster_upstream_rq_maintenance_mode counter
envoy_cluster_upstream_rq_maintenance_mode{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_update_failure counter
envoy_cluster_update_failure{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_ext_authz_ok counter
envoy_cluster_ext_authz_ok{envoy_cluster_name="hawkeye"} 460
envoy_cluster_external_upstream_rq_xx{envoy_response_code_class="5",envoy_cluster_name="hawkeye"} 29
# TYPE envoy_cluster_internal_upstream_rq counter
envoy_cluster_internal_upstream_rq{envoy_response_code="401",envoy_cluster_name="hawkeye"} 15
# TYPE envoy_cluster_update_empty counter
envoy_cluster_update_empty{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_zone_routing_all_directly counter
envoy_cluster_lb_zone_routing_all_directly{envoy_cluster_name="hawkeye"} 0
envoy_cluster_upstream_rq_xx{envoy_response_code_class="2",envoy_cluster_name="hawkeye"} 211
# TYPE envoy_cluster_upstream_cx_http2_total counter
envoy_cluster_upstream_cx_http2_total{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_destroy_remote counter
envoy_cluster_upstream_cx_destroy_remote{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_retry counter
envoy_cluster_upstream_rq_retry{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_destroy_local_with_active_rq counter
envoy_cluster_upstream_cx_destroy_local_with_active_rq{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_overflow counter
envoy_cluster_upstream_cx_overflow{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_protocol_error counter
envoy_cluster_upstream_cx_protocol_error{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_tx_reset counter
envoy_cluster_upstream_rq_tx_reset{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_healthy_panic counter
envoy_cluster_lb_healthy_panic{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_idle_timeout counter
envoy_cluster_upstream_cx_idle_timeout{envoy_cluster_name="hawkeye"} 0
envoy_cluster_upstream_rq_xx{envoy_response_code_class="4",envoy_cluster_name="hawkeye"} 15
envoy_cluster_external_upstream_rq{envoy_response_code="200",envoy_cluster_name="hawkeye"} 209
# TYPE envoy_cluster_lb_subsets_selected counter
envoy_cluster_lb_subsets_selected{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_update_success counter
envoy_cluster_update_success{envoy_cluster_name="hawkeye"} 18891
# TYPE envoy_cluster_upstream_cx_close_notify counter
envoy_cluster_upstream_cx_close_notify{envoy_cluster_name="hawkeye"} 0
envoy_cluster_upstream_cx_close_notify{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_tx_reset{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_local_cluster_not_ok{envoy_cluster_name="ext-authz"} 0
envoy_cluster_update_no_rebuild{envoy_cluster_name="ext-authz"} 18890
envoy_cluster_upstream_rq{envoy_response_code="401",envoy_cluster_name="ext-authz"} 15
envoy_cluster_upstream_cx_overflow{envoy_cluster_name="ext-authz"} 0
envoy_cluster_internal_upstream_rq{envoy_response_code="200",envoy_cluster_name="ext-authz"} 460
envoy_cluster_upstream_rq_xx{envoy_response_code_class="4",envoy_cluster_name="ext-authz"} 15
envoy_cluster_upstream_flow_control_paused_reading_total{envoy_cluster_name="ext-authz"} 0
envoy_cluster_internal_upstream_rq_xx{envoy_response_code_class="2",envoy_cluster_name="ext-authz"} 460
envoy_cluster_upstream_cx_tx_bytes_total{envoy_cluster_name="ext-authz"} 142288
envoy_cluster_update_empty{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_cancelled{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_destroy_remote{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_timeout{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_retry{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_protocol_error{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_destroy_local{envoy_cluster_name="ext-authz"} 0
envoy_cluster_update_attempt{envoy_cluster_name="ext-authz"} 18891
envoy_cluster_upstream_rq_retry_overflow{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_idle_timeout{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_zone_routing_sampled{envoy_cluster_name="ext-authz"} 0
envoy_cluster_original_dst_host_invalid{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_flow_control_resumed_reading_total{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_pending_failure_eject{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_per_try_timeout{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_max_requests{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_http2_total{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_zone_no_capacity_left{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_http1_total{envoy_cluster_name="ext-authz"} 4
envoy_cluster_upstream_rq_xx{envoy_response_code_class="2",envoy_cluster_name="ext-authz"} 460
envoy_cluster_upstream_rq{envoy_response_code="200",envoy_cluster_name="ext-authz"} 460
envoy_cluster_update_success{envoy_cluster_name="ext-authz"} 18891
envoy_cluster_lb_subsets_fallback{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_healthy_panic{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_destroy{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_connect_fail{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_connect_attempts_exceeded{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_total{envoy_cluster_name="ext-authz"} 4
envoy_cluster_upstream_cx_rx_bytes_total{envoy_cluster_name="ext-authz"} 80016
envoy_cluster_internal_upstream_rq_completed{envoy_cluster_name="ext-authz"} 475
envoy_cluster_lb_zone_number_differs{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_zone_routing_all_directly{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_pending_total{envoy_cluster_name="ext-authz"} 4
envoy_cluster_lb_subsets_created{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_retry_success{envoy_cluster_name="ext-authz"} 0
envoy_cluster_internal_upstream_rq_xx{envoy_response_code_class="4",envoy_cluster_name="ext-authz"} 15
envoy_cluster_upstream_rq_maintenance_mode{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_zone_routing_cross_zone{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_completed{envoy_cluster_name="ext-authz"} 475
envoy_cluster_upstream_flow_control_drained_total{envoy_cluster_name="ext-authz"} 0
envoy_cluster_membership_change{envoy_cluster_name="ext-authz"} 1
envoy_cluster_upstream_cx_none_healthy{envoy_cluster_name="ext-authz"} 0
envoy_cluster_bind_errors{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_rx_reset{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_destroy_remote_with_active_rq{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_flow_control_backed_up_total{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_connect_timeout{envoy_cluster_name="ext-authz"} 0
envoy_cluster_update_failure{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_subsets_removed{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_destroy_with_active_rq{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_subsets_selected{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_total{envoy_cluster_name="ext-authz"} 475
envoy_cluster_internal_upstream_rq{envoy_response_code="401",envoy_cluster_name="ext-authz"} 15
envoy_cluster_lb_recalculate_zone_structures{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_zone_cluster_too_small{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_rq_pending_overflow{envoy_cluster_name="ext-authz"} 0
envoy_cluster_retry_or_shadow_abandoned{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_destroy_local_with_active_rq{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_connect_timeout{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_pending_failure_eject{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_flow_control_paused_reading_total{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_flow_control_drained_total{envoy_cluster_name="sso"} 0
envoy_cluster_lb_local_cluster_not_ok{envoy_cluster_name="sso"} 0
envoy_cluster_lb_subsets_created{envoy_cluster_name="sso"} 0
envoy_cluster_lb_subsets_selected{envoy_cluster_name="sso"} 0
envoy_cluster_lb_zone_routing_cross_zone{envoy_cluster_name="sso"} 0
envoy_cluster_external_upstream_rq{envoy_response_code="405",envoy_cluster_name="sso"} 1
envoy_cluster_upstream_rq_timeout{envoy_cluster_name="sso"} 0
envoy_cluster_external_upstream_rq_xx{envoy_response_code_class="4",envoy_cluster_name="sso"} 8
envoy_cluster_external_upstream_rq_xx{envoy_response_code_class="2",envoy_cluster_name="sso"} 13
envoy_cluster_upstream_cx_overflow{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_per_try_timeout{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_max_requests{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_destroy_remote_with_active_rq{envoy_cluster_name="sso"} 0
envoy_cluster_retry_or_shadow_abandoned{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_close_notify{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_idle_timeout{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq{envoy_response_code="415",envoy_cluster_name="sso"} 1
envoy_cluster_upstream_cx_destroy_with_active_rq{envoy_cluster_name="sso"} 0
envoy_cluster_lb_zone_cluster_too_small{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_xx{envoy_response_code_class="4",envoy_cluster_name="sso"} 8
envoy_cluster_upstream_rq{envoy_response_code="401",envoy_cluster_name="sso"} 6
envoy_cluster_upstream_rq{envoy_response_code="405",envoy_cluster_name="sso"} 1
envoy_cluster_upstream_flow_control_backed_up_total{envoy_cluster_name="sso"} 0
envoy_cluster_external_upstream_rq{envoy_response_code="401",envoy_cluster_name="sso"} 6
envoy_cluster_external_upstream_rq{envoy_response_code="415",envoy_cluster_name="sso"} 1
envoy_cluster_upstream_rq_retry{envoy_cluster_name="sso"} 0
envoy_cluster_lb_zone_no_capacity_left{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_http1_total{envoy_cluster_name="sso"} 7
envoy_cluster_upstream_rq_total{envoy_cluster_name="sso"} 21
envoy_cluster_upstream_cx_protocol_error{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_tx_reset{envoy_cluster_name="sso"} 0
envoy_cluster_update_success{envoy_cluster_name="sso"} 18891
envoy_cluster_upstream_rq_completed{envoy_cluster_name="sso"} 21
envoy_cluster_external_upstream_rq{envoy_response_code="200",envoy_cluster_name="sso"} 13
envoy_cluster_upstream_cx_destroy{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_destroy_local{envoy_cluster_name="sso"} 0
envoy_cluster_lb_recalculate_zone_structures{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_tx_bytes_total{envoy_cluster_name="sso"} 13072
envoy_cluster_upstream_rq_pending_overflow{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_total{envoy_cluster_name="sso"} 7
envoy_cluster_lb_subsets_fallback{envoy_cluster_name="sso"} 0
envoy_cluster_original_dst_host_invalid{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_pending_total{envoy_cluster_name="sso"} 7
envoy_cluster_upstream_rq_cancelled{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_maintenance_mode{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_retry_success{envoy_cluster_name="sso"} 0
envoy_cluster_lb_healthy_panic{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_http2_total{envoy_cluster_name="sso"} 0
envoy_cluster_update_failure{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_connect_fail{envoy_cluster_name="sso"} 0
envoy_cluster_update_attempt{envoy_cluster_name="sso"} 18891
envoy_cluster_upstream_flow_control_resumed_reading_total{envoy_cluster_name="sso"} 0
envoy_cluster_update_empty{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_destroy_remote{envoy_cluster_name="sso"} 0
envoy_cluster_update_no_rebuild{envoy_cluster_name="sso"} 18890
envoy_cluster_bind_errors{envoy_cluster_name="sso"} 0
envoy_cluster_lb_subsets_removed{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_connect_attempts_exceeded{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_retry_overflow{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_xx{envoy_response_code_class="2",envoy_cluster_name="sso"} 13
envoy_cluster_lb_zone_number_differs{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_rx_bytes_total{envoy_cluster_name="sso"} 12934
envoy_cluster_lb_zone_routing_sampled{envoy_cluster_name="sso"} 0
envoy_cluster_lb_zone_routing_all_directly{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_destroy_local_with_active_rq{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_rx_reset{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_none_healthy{envoy_cluster_name="sso"} 0
envoy_cluster_membership_change{envoy_cluster_name="sso"} 1
envoy_cluster_external_upstream_rq_completed{envoy_cluster_name="sso"} 21
envoy_cluster_upstream_rq{envoy_response_code="200",envoy_cluster_name="sso"} 13
# TYPE envoy_http_downstream_rq_too_large counter
envoy_http_downstream_rq_too_large{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_protocol_error counter
envoy_http_downstream_cx_protocol_error{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_rq_timeout counter
envoy_http_downstream_rq_timeout{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_runtime_load_error counter
envoy_runtime_load_error{} 0
# TYPE envoy_runtime_override_dir_not_exists counter
envoy_runtime_override_dir_not_exists{} 0
# TYPE envoy_http_no_cluster counter
envoy_http_no_cluster{envoy_http_conn_manager_prefix="async-client"} 0
# TYPE envoy_server_watchdog_miss counter
envoy_server_watchdog_miss{} 0
# TYPE envoy_http_downstream_rq_xx counter
envoy_http_downstream_rq_xx{envoy_response_code_class="3",envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_cluster_manager_cluster_removed counter
envoy_cluster_manager_cluster_removed{} 0
# TYPE envoy_http_downstream_cx_upgrades_total counter
envoy_http_downstream_cx_upgrades_total{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_cluster_manager_update_merge_cancelled counter
envoy_cluster_manager_update_merge_cancelled{} 0
# TYPE envoy_http_downstream_cx_overload_disable_keepalive counter
envoy_http_downstream_cx_overload_disable_keepalive{envoy_http_conn_manager_prefix="admin"} 0
envoy_http_downstream_rq_xx{envoy_response_code_class="1",envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_destroy counter
envoy_http_downstream_cx_destroy{envoy_http_conn_manager_prefix="admin"} 146344
envoy_http_downstream_rq_xx{envoy_response_code_class="5",envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_tx_bytes_total counter
envoy_http_downstream_cx_tx_bytes_total{envoy_http_conn_manager_prefix="admin"} 155797820
# TYPE envoy_http_downstream_cx_drain_close counter
envoy_http_downstream_cx_drain_close{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_destroy_local_active_rq counter
envoy_http_downstream_cx_destroy_local_active_rq{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_destroy_active_rq counter
envoy_http_downstream_cx_destroy_active_rq{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_destroy_local counter
envoy_http_downstream_cx_destroy_local{envoy_http_conn_manager_prefix="admin"} 0
envoy_http_downstream_rq_xx{envoy_response_code_class="2",envoy_http_conn_manager_prefix="admin"} 3154
# TYPE envoy_http_downstream_rq_http1_total counter
envoy_http_downstream_rq_http1_total{envoy_http_conn_manager_prefix="admin"} 3155
# TYPE envoy_http_rq_total counter
envoy_http_rq_total{envoy_http_conn_manager_prefix="async-client"} 475
# TYPE envoy_http_downstream_cx_total counter
envoy_http_downstream_cx_total{envoy_http_conn_manager_prefix="admin"} 146346
# TYPE envoy_runtime_load_success counter
envoy_runtime_load_success{} 0
# TYPE envoy_filesystem_reopen_failed counter
envoy_filesystem_reopen_failed{} 0
# TYPE envoy_http_downstream_rq_total counter
envoy_http_downstream_rq_total{envoy_http_conn_manager_prefix="admin"} 3155
# TYPE envoy_http_downstream_rq_rx_reset counter
envoy_http_downstream_rq_rx_reset{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_cluster_manager_cluster_modified counter
envoy_cluster_manager_cluster_modified{} 0
# TYPE envoy_http_downstream_rq_idle_timeout counter
envoy_http_downstream_rq_idle_timeout{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_destroy_remote_active_rq counter
envoy_http_downstream_cx_destroy_remote_active_rq{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_ssl_total counter
envoy_http_downstream_cx_ssl_total{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_delayed_close_timeout counter
envoy_http_downstream_cx_delayed_close_timeout{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_cluster_manager_update_out_of_merge_window counter
envoy_cluster_manager_update_out_of_merge_window{} 0
# TYPE envoy_http_downstream_flow_control_resumed_reading_total counter
envoy_http_downstream_flow_control_resumed_reading_total{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_listener_manager_listener_added counter
envoy_listener_manager_listener_added{} 1
# TYPE envoy_http_downstream_rq_overload_close counter
envoy_http_downstream_rq_overload_close{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_http2_total counter
envoy_http_downstream_cx_http2_total{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_listener_manager_listener_create_failure counter
envoy_listener_manager_listener_create_failure{} 0
# TYPE envoy_stats_overflow counter
envoy_stats_overflow{} 0
# TYPE envoy_listener_manager_listener_create_success counter
envoy_listener_manager_listener_create_success{} 16
# TYPE envoy_http_downstream_cx_http1_total counter
envoy_http_downstream_cx_http1_total{envoy_http_conn_manager_prefix="admin"} 2
# TYPE envoy_http_no_route counter
envoy_http_no_route{envoy_http_conn_manager_prefix="async-client"} 0
# TYPE envoy_cluster_manager_cluster_updated counter
envoy_cluster_manager_cluster_updated{} 0
# TYPE envoy_http_downstream_cx_destroy_remote counter
envoy_http_downstream_cx_destroy_remote{envoy_http_conn_manager_prefix="admin"} 146344
# TYPE envoy_http_downstream_rq_non_relative_path counter
envoy_http_downstream_rq_non_relative_path{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_rs_too_large counter
envoy_http_rs_too_large{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_rq_tx_reset counter
envoy_http_downstream_rq_tx_reset{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_server_watchdog_mega_miss counter
envoy_server_watchdog_mega_miss{} 0
# TYPE envoy_http_downstream_flow_control_paused_reading_total counter
envoy_http_downstream_flow_control_paused_reading_total{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_rx_bytes_total counter
envoy_http_downstream_cx_rx_bytes_total{envoy_http_conn_manager_prefix="admin"} 795620
# TYPE envoy_http_downstream_rq_completed counter
envoy_http_downstream_rq_completed{envoy_http_conn_manager_prefix="admin"} 3154
# TYPE envoy_listener_manager_listener_removed counter
envoy_listener_manager_listener_removed{} 0
envoy_http_downstream_rq_xx{envoy_response_code_class="4",envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_rq_direct_response counter
envoy_http_rq_direct_response{envoy_http_conn_manager_prefix="async-client"} 0
# TYPE envoy_filesystem_write_completed counter
envoy_filesystem_write_completed{} 3366
# TYPE envoy_http_downstream_rq_ws_on_non_ws_route counter
envoy_http_downstream_rq_ws_on_non_ws_route{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_cluster_manager_cluster_updated_via_merge counter
envoy_cluster_manager_cluster_updated_via_merge{} 0
# TYPE envoy_filesystem_flushed_by_timer counter
envoy_filesystem_flushed_by_timer{} 18495
# TYPE envoy_filesystem_write_buffered counter
envoy_filesystem_write_buffered{} 3669
# TYPE envoy_runtime_override_dir_exists counter
envoy_runtime_override_dir_exists{} 0
# TYPE envoy_cluster_manager_cluster_added counter
envoy_cluster_manager_cluster_added{} 4
# TYPE envoy_listener_manager_listener_modified counter
envoy_listener_manager_listener_modified{} 0
# TYPE envoy_http_downstream_rq_http2_total counter
envoy_http_downstream_rq_http2_total{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_rq_response_before_rq_complete counter
envoy_http_downstream_rq_response_before_rq_complete{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_idle_timeout counter
envoy_http_downstream_cx_idle_timeout{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_rq_redirect counter
envoy_http_rq_redirect{envoy_http_conn_manager_prefix="async-client"} 0
# TYPE envoy_listener_http_downstream_rq_xx counter
envoy_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"} 0
envoy_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"} 456
envoy_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 counter
envoy_listener_downstream_pre_cx_timeout{envoy_listener_address="0.0.0.0_8000"} 0
# TYPE envoy_listener_no_filter_chain_match counter
envoy_listener_no_filter_chain_match{envoy_listener_address="0.0.0.0_8000"} 0
# TYPE envoy_listener_downstream_cx_total counter
envoy_listener_downstream_cx_total{envoy_listener_address="0.0.0.0_8000"} 147370
envoy_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"} 29
envoy_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 counter
envoy_listener_downstream_cx_destroy{envoy_listener_address="0.0.0.0_8000"} 147369
# TYPE envoy_listener_http_downstream_rq_completed counter
envoy_listener_http_downstream_rq_completed{envoy_http_conn_manager_prefix="ingress_http",envoy_listener_address="0.0.0.0_8000"} 515
envoy_http_downstream_cx_destroy{envoy_http_conn_manager_prefix="ingress_http"} 147369
envoy_http_downstream_rq_http1_total{envoy_http_conn_manager_prefix="ingress_http"} 515
envoy_http_downstream_cx_destroy_local_active_rq{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_flow_control_resumed_reading_total{envoy_http_conn_manager_prefix="ingress_http"} 0
# TYPE envoy_http_tracing_health_check counter
envoy_http_tracing_health_check{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_response_before_rq_complete{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_protocol_error{envoy_http_conn_manager_prefix="ingress_http"} 2
envoy_http_downstream_cx_destroy_remote{envoy_http_conn_manager_prefix="ingress_http"} 147367
envoy_http_no_route{envoy_http_conn_manager_prefix="ingress_http"} 7
envoy_http_rq_redirect{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_http1_total{envoy_http_conn_manager_prefix="ingress_http"} 41
# TYPE envoy_http_tracing_random_sampling counter
envoy_http_tracing_random_sampling{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_total{envoy_http_conn_manager_prefix="ingress_http"} 147370
envoy_http_downstream_cx_destroy_remote_active_rq{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_rs_too_large{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_idle_timeout{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_idle_timeout{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_rx_bytes_total{envoy_http_conn_manager_prefix="ingress_http"} 306987
envoy_http_downstream_rq_xx{envoy_response_code_class="1",envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_ws_on_non_ws_route{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_xx{envoy_response_code_class="3",envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_overload_disable_keepalive{envoy_http_conn_manager_prefix="ingress_http"} 0
# TYPE envoy_http_tracing_service_forced counter
envoy_http_tracing_service_forced{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_drain_close{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_tx_bytes_total{envoy_http_conn_manager_prefix="ingress_http"} 227287
envoy_http_downstream_cx_delayed_close_timeout{envoy_http_conn_manager_prefix="ingress_http"} 2
envoy_http_downstream_flow_control_paused_reading_total{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_timeout{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_rx_reset{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_destroy_local{envoy_http_conn_manager_prefix="ingress_http"} 2
# TYPE envoy_http_tracing_not_traceable counter
envoy_http_tracing_not_traceable{envoy_http_conn_manager_prefix="ingress_http"} 0
# TYPE envoy_http_cors_origin_invalid counter
envoy_http_cors_origin_invalid{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_no_cluster{envoy_http_conn_manager_prefix="ingress_http"} 0
# TYPE envoy_http_cors_origin_valid counter
envoy_http_cors_origin_valid{envoy_http_conn_manager_prefix="ingress_http"} 485
envoy_http_downstream_rq_completed{envoy_http_conn_manager_prefix="ingress_http"} 515
envoy_http_rq_total{envoy_http_conn_manager_prefix="ingress_http"} 268
envoy_http_downstream_rq_tx_reset{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_total{envoy_http_conn_manager_prefix="ingress_http"} 515
envoy_http_downstream_rq_overload_close{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_http2_total{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_destroy_active_rq{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_http2_total{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_upgrades_total{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_non_relative_path{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_xx{envoy_response_code_class="4",envoy_http_conn_manager_prefix="ingress_http"} 30
envoy_http_downstream_rq_xx{envoy_response_code_class="5",envoy_http_conn_manager_prefix="ingress_http"} 29
envoy_http_rq_direct_response{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_ssl_total{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_too_large{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_rq_xx{envoy_response_code_class="2",envoy_http_conn_manager_prefix="ingress_http"} 456
# TYPE envoy_http_tracing_client_enabled counter
envoy_http_tracing_client_enabled{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_cluster_upstream_cx_protocol_error{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_flow_control_paused_reading_total{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_http2_total{envoy_cluster_name="cost"} 0
envoy_cluster_lb_subsets_removed{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_http1_total{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_close_notify{envoy_cluster_name="cost"} 0
envoy_cluster_lb_zone_cluster_too_small{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_max_requests{envoy_cluster_name="cost"} 0
envoy_cluster_membership_change{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_destroy_local{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_cancelled{envoy_cluster_name="cost"} 0
envoy_cluster_update_no_rebuild{envoy_cluster_name="cost"} 18872
envoy_cluster_upstream_rq_timeout{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_rx_bytes_total{envoy_cluster_name="cost"} 0
envoy_cluster_lb_zone_no_capacity_left{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_destroy_local_with_active_rq{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_total{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_per_try_timeout{envoy_cluster_name="cost"} 0
envoy_cluster_bind_errors{envoy_cluster_name="cost"} 0
envoy_cluster_update_success{envoy_cluster_name="cost"} 18872
envoy_cluster_upstream_rq_retry{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_tx_reset{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_retry_success{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_connect_attempts_exceeded{envoy_cluster_name="cost"} 0
envoy_cluster_update_empty{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_destroy_remote{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_tx_bytes_total{envoy_cluster_name="cost"} 0
envoy_cluster_original_dst_host_invalid{envoy_cluster_name="cost"} 0
envoy_cluster_update_failure{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_pending_overflow{envoy_cluster_name="cost"} 0
envoy_cluster_update_attempt{envoy_cluster_name="cost"} 18872
envoy_cluster_upstream_cx_connect_timeout{envoy_cluster_name="cost"} 0
envoy_cluster_lb_zone_routing_all_directly{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_none_healthy{envoy_cluster_name="cost"} 0
envoy_cluster_retry_or_shadow_abandoned{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_flow_control_resumed_reading_total{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_connect_fail{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_retry_overflow{envoy_cluster_name="cost"} 0
envoy_cluster_lb_zone_routing_cross_zone{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_pending_total{envoy_cluster_name="cost"} 0
envoy_cluster_lb_subsets_created{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_maintenance_mode{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_completed{envoy_cluster_name="cost"} 0
envoy_cluster_lb_healthy_panic{envoy_cluster_name="cost"} 0
envoy_cluster_lb_zone_routing_sampled{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_flow_control_drained_total{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_destroy_remote_with_active_rq{envoy_cluster_name="cost"} 0
envoy_cluster_lb_local_cluster_not_ok{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_flow_control_backed_up_total{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_rx_reset{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_destroy_with_active_rq{envoy_cluster_name="cost"} 0
envoy_cluster_lb_subsets_fallback{envoy_cluster_name="cost"} 0
envoy_cluster_lb_zone_number_differs{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_idle_timeout{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_overflow{envoy_cluster_name="cost"} 0
envoy_cluster_lb_subsets_selected{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_total{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_destroy{envoy_cluster_name="cost"} 0
envoy_cluster_lb_recalculate_zone_structures{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_pending_failure_eject{envoy_cluster_name="cost"} 0
# TYPE envoy_listener_admin_downstream_pre_cx_active gauge
envoy_listener_admin_downstream_pre_cx_active{} 0
# TYPE envoy_listener_admin_downstream_cx_active gauge
envoy_listener_admin_downstream_cx_active{} 2
# TYPE envoy_cluster_upstream_cx_rx_bytes_buffered gauge
envoy_cluster_upstream_cx_rx_bytes_buffered{envoy_cluster_name="hawkeye"} 3402
# TYPE envoy_cluster_membership_healthy gauge
envoy_cluster_membership_healthy{envoy_cluster_name="hawkeye"} 1
# TYPE envoy_cluster_circuit_breakers_high_cx_open gauge
envoy_cluster_circuit_breakers_high_cx_open{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_circuit_breakers_default_rq_pending_open gauge
envoy_cluster_circuit_breakers_default_rq_pending_open{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_tx_bytes_buffered gauge
envoy_cluster_upstream_cx_tx_bytes_buffered{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_circuit_breakers_high_rq_retry_open gauge
envoy_cluster_circuit_breakers_high_rq_retry_open{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_lb_subsets_active gauge
envoy_cluster_lb_subsets_active{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_circuit_breakers_default_cx_open gauge
envoy_cluster_circuit_breakers_default_cx_open{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_max_host_weight gauge
envoy_cluster_max_host_weight{envoy_cluster_name="hawkeye"} 1
# TYPE envoy_cluster_circuit_breakers_default_rq_retry_open gauge
envoy_cluster_circuit_breakers_default_rq_retry_open{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_version gauge
envoy_cluster_version{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_membership_total gauge
envoy_cluster_membership_total{envoy_cluster_name="hawkeye"} 1
# TYPE envoy_cluster_circuit_breakers_high_rq_pending_open gauge
envoy_cluster_circuit_breakers_high_rq_pending_open{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_circuit_breakers_default_rq_open gauge
envoy_cluster_circuit_breakers_default_rq_open{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_circuit_breakers_high_rq_open gauge
envoy_cluster_circuit_breakers_high_rq_open{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_cx_active gauge
envoy_cluster_upstream_cx_active{envoy_cluster_name="hawkeye"} 3
# TYPE envoy_cluster_upstream_rq_pending_active gauge
envoy_cluster_upstream_rq_pending_active{envoy_cluster_name="hawkeye"} 0
# TYPE envoy_cluster_upstream_rq_active gauge
envoy_cluster_upstream_rq_active{envoy_cluster_name="hawkeye"} 0
envoy_cluster_membership_healthy{envoy_cluster_name="ext-authz"} 1
envoy_cluster_circuit_breakers_default_rq_pending_open{envoy_cluster_name="ext-authz"} 0
envoy_cluster_circuit_breakers_default_rq_open{envoy_cluster_name="ext-authz"} 0
envoy_cluster_membership_total{envoy_cluster_name="ext-authz"} 1
envoy_cluster_circuit_breakers_default_rq_retry_open{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_active{envoy_cluster_name="ext-authz"} 4
envoy_cluster_version{envoy_cluster_name="ext-authz"} 0
envoy_cluster_circuit_breakers_high_rq_pending_open{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_rx_bytes_buffered{envoy_cluster_name="ext-authz"} 714
envoy_cluster_upstream_rq_pending_active{envoy_cluster_name="ext-authz"} 0
envoy_cluster_circuit_breakers_high_cx_open{envoy_cluster_name="ext-authz"} 0
envoy_cluster_circuit_breakers_high_rq_retry_open{envoy_cluster_name="ext-authz"} 0
envoy_cluster_max_host_weight{envoy_cluster_name="ext-authz"} 1
envoy_cluster_upstream_rq_active{envoy_cluster_name="ext-authz"} 0
envoy_cluster_circuit_breakers_high_rq_open{envoy_cluster_name="ext-authz"} 0
envoy_cluster_upstream_cx_tx_bytes_buffered{envoy_cluster_name="ext-authz"} 0
envoy_cluster_circuit_breakers_default_cx_open{envoy_cluster_name="ext-authz"} 0
envoy_cluster_lb_subsets_active{envoy_cluster_name="ext-authz"} 0
envoy_cluster_circuit_breakers_default_rq_open{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_pending_active{envoy_cluster_name="sso"} 0
envoy_cluster_membership_healthy{envoy_cluster_name="sso"} 1
envoy_cluster_circuit_breakers_high_rq_pending_open{envoy_cluster_name="sso"} 0
envoy_cluster_circuit_breakers_high_rq_open{envoy_cluster_name="sso"} 0
envoy_cluster_circuit_breakers_high_rq_retry_open{envoy_cluster_name="sso"} 0
envoy_cluster_version{envoy_cluster_name="sso"} 0
envoy_cluster_circuit_breakers_high_cx_open{envoy_cluster_name="sso"} 0
envoy_cluster_membership_total{envoy_cluster_name="sso"} 1
envoy_cluster_upstream_cx_active{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_tx_bytes_buffered{envoy_cluster_name="sso"} 0
envoy_cluster_circuit_breakers_default_rq_pending_open{envoy_cluster_name="sso"} 0
envoy_cluster_lb_subsets_active{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_cx_rx_bytes_buffered{envoy_cluster_name="sso"} 0
envoy_cluster_circuit_breakers_default_cx_open{envoy_cluster_name="sso"} 0
envoy_cluster_upstream_rq_active{envoy_cluster_name="sso"} 0
envoy_cluster_max_host_weight{envoy_cluster_name="sso"} 1
envoy_cluster_circuit_breakers_default_rq_retry_open{envoy_cluster_name="sso"} 0
# TYPE envoy_filesystem_write_total_buffered gauge
envoy_filesystem_write_total_buffered{} 0
# TYPE envoy_http_downstream_cx_http1_active gauge
envoy_http_downstream_cx_http1_active{envoy_http_conn_manager_prefix="admin"} 2
# TYPE envoy_listener_manager_total_listeners_warming gauge
envoy_listener_manager_total_listeners_warming{} 0
# TYPE envoy_runtime_num_keys gauge
envoy_runtime_num_keys{} 0
# TYPE envoy_http_downstream_cx_rx_bytes_buffered gauge
envoy_http_downstream_cx_rx_bytes_buffered{envoy_http_conn_manager_prefix="admin"} 845
# TYPE envoy_runtime_admin_overrides_active gauge
envoy_runtime_admin_overrides_active{} 0
# TYPE envoy_server_version gauge
envoy_server_version{} 3653592
# TYPE envoy_cluster_manager_active_clusters gauge
envoy_cluster_manager_active_clusters{} 4
# TYPE envoy_server_live gauge
envoy_server_live{} 1
# TYPE envoy_http_downstream_cx_ssl_active gauge
envoy_http_downstream_cx_ssl_active{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_http2_active gauge
envoy_http_downstream_cx_http2_active{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_tx_bytes_buffered gauge
envoy_http_downstream_cx_tx_bytes_buffered{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_cx_upgrades_active gauge
envoy_http_downstream_cx_upgrades_active{envoy_http_conn_manager_prefix="admin"} 0
# TYPE envoy_http_downstream_rq_active gauge
envoy_http_downstream_rq_active{envoy_http_conn_manager_prefix="admin"} 1
# TYPE envoy_listener_manager_total_listeners_active gauge
envoy_listener_manager_total_listeners_active{} 1
# TYPE envoy_server_parent_connections gauge
envoy_server_parent_connections{} 0
# TYPE envoy_cluster_manager_warming_clusters gauge
envoy_cluster_manager_warming_clusters{} 0
# TYPE envoy_http_downstream_cx_active gauge
envoy_http_downstream_cx_active{envoy_http_conn_manager_prefix="admin"} 2
# TYPE envoy_listener_manager_total_listeners_draining gauge
envoy_listener_manager_total_listeners_draining{} 0
# TYPE envoy_server_total_connections gauge
envoy_server_total_connections{} 1
# TYPE envoy_server_concurrency gauge
envoy_server_concurrency{} 16
# TYPE envoy_server_memory_allocated gauge
envoy_server_memory_allocated{} 4216000
# TYPE envoy_server_hot_restart_epoch gauge
envoy_server_hot_restart_epoch{} 0
# TYPE envoy_server_uptime gauge
envoy_server_uptime{} 94576
# TYPE envoy_server_memory_heap_size gauge
envoy_server_memory_heap_size{} 6291456
# TYPE envoy_server_days_until_first_cert_expiring gauge
envoy_server_days_until_first_cert_expiring{} 2147483647
# TYPE envoy_listener_downstream_cx_active gauge
envoy_listener_downstream_cx_active{envoy_listener_address="0.0.0.0_8000"} 1
# TYPE envoy_listener_downstream_pre_cx_active gauge
envoy_listener_downstream_pre_cx_active{envoy_listener_address="0.0.0.0_8000"} 0
envoy_http_downstream_cx_tx_bytes_buffered{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_upgrades_active{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_ssl_active{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_active{envoy_http_conn_manager_prefix="ingress_http"} 1
envoy_http_downstream_cx_http1_active{envoy_http_conn_manager_prefix="ingress_http"} 1
envoy_http_downstream_cx_http2_active{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_http_downstream_cx_rx_bytes_buffered{envoy_http_conn_manager_prefix="ingress_http"} 403
envoy_http_downstream_rq_active{envoy_http_conn_manager_prefix="ingress_http"} 0
envoy_cluster_upstream_rq_pending_active{envoy_cluster_name="cost"} 0
envoy_cluster_circuit_breakers_default_cx_open{envoy_cluster_name="cost"} 0
envoy_cluster_circuit_breakers_default_rq_pending_open{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_rq_active{envoy_cluster_name="cost"} 0
envoy_cluster_circuit_breakers_high_rq_pending_open{envoy_cluster_name="cost"} 0
envoy_cluster_circuit_breakers_default_rq_open{envoy_cluster_name="cost"} 0
envoy_cluster_max_host_weight{envoy_cluster_name="cost"} 1
envoy_cluster_membership_total{envoy_cluster_name="cost"} 0
envoy_cluster_circuit_breakers_high_cx_open{envoy_cluster_name="cost"} 0
envoy_cluster_circuit_breakers_default_rq_retry_open{envoy_cluster_name="cost"} 0
envoy_cluster_membership_healthy{envoy_cluster_name="cost"} 0
envoy_cluster_version{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_active{envoy_cluster_name="cost"} 0
envoy_cluster_circuit_breakers_high_rq_retry_open{envoy_cluster_name="cost"} 0
envoy_cluster_circuit_breakers_high_rq_open{envoy_cluster_name="cost"} 0
envoy_cluster_lb_subsets_active{envoy_cluster_name="cost"} 0
envoy_cluster_upstream_cx_tx_bytes_buffered{envoy_cluster_name="cost"} 0
envoy_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: Deployment
apiVersion: apps/v1
metadata:name: gatewaylabels:app: gateway
spec:replicas: 2selector:matchLabels:app: gatewaytemplate:metadata:labels:app: gatewayannotations:prometheus.io/scrape: 'true'prometheus.io/path: '/stats/prometheus'prometheus.io/port: '9000'spec:volumes:- name: configconfigMap:name: gateway-cmcontainers:- name: gatewayimage: 'envoyproxy/envoy:v1.9.0'env:- name: 'CPUS'value: '1'- name: 'SERVICE_NAME'value: '-gateway'resources:limits:cpu: '1'memory: 1Girequests:cpu: '1'memory: 1GivolumeMounts:- name: configmountPath: /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)。

最后效果如下:

使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集相关推荐

  1. fsmc同步通信设置_微服务模式-同步与异步

    通过优锐课的Ange的指导下了解同步和异步的不同类型的微服务模式,以及每种服务的优势和取舍. 微服务是一种架构范例.在这种架构风格中,小型且独立的组件可以作为一个系统协同工作.尽管其操作复杂性较高,但 ...

  2. 技术分享 | 微服务模式下如何高效进行API测试

    导读:微服务架构下,API 测试的最大挑战来自于庞大的测试用例数量,以及微服务之间的相互耦合.基于这种挑战,如何进行高效的API测试,选择什么样的方式就比较重要,此文主要是采用契约测试的方法来对微服务 ...

  3. 微服务模式系列之九:独享数据库

    译者评论: 微服务模式中最为头疼的问题就是--数据问题,因为数据会散布在多个微服务之间,这通常意味着数据被分散到多个数据库中,这时微服务必须自行保证跨微服务的数据一致性,而无法利用数据库本身的机制解决 ...

  4. 【微服务模式】MS大使模式

    创建代表消费者服务或应用程序发送网络请求的辅助服务.大使服务可以被认为是与客户端位于同一位置的进程外代理. 此模式可用于以与语言无关的方式卸载常见的客户端连接任务,例如监控.日志记录.路由.安全性(如 ...

  5. envoy重试_具有Envoy代理的微服务模式,第二部分:超时和重试

    envoy重试 该博客是系列文章的一部分,该系列文章更深入地介绍了Envoy Proxy和Istio.io ,以及它如何实现一种更优雅的连接和管理微服务的方式. 跟随我@christianposta ...

  6. 使用Envoy代理的微服务模式,第二部分:超时和重试

    该博客是系列文章的一部分,该系列文章更深入地介绍了Envoy Proxy和Istio.io ,以及它如何实现更优雅的连接和管理微服务的方式. 跟随我@christianposta ,紧跟这些博客文章的 ...

  7. 微服务模式:Sidecar

    合理设计的微服务应遵循单一职责原则,因此分离应该被架构中的其他服务重用的通用功能很重要.Sidecar模式提倡通过识别每个服务中的通用功能来增强模块性,将它们组合到库中,或将它们移到单独的服务中. 顾 ...

  8. 微服务模式下,实现前后端多资源服务调用

    Micro Services 首先,我先解释下,文章标题的意思: 咋看起来特别像是一个标题党????,可能是我没想好怎么表达,其实白话文就是:在微服务场景下,肯定会有很多子服务API,那多个前端项目如 ...

  9. SpringCloud(八) 微服务安全实战 Prometheus配置grafana可见性监控,ELK日志,pinpoint追踪(Tracing,Metrics,Logging)

    Metrics:按照时间维度聚合各个参数,以数字形式呈现出来(次高 -> 通过prometheus实现UI呈现) Logging:描述离散的,不连续的事件,以文字的形式呈现(重要 -> 通 ...

最新文章

  1. VSTO进行时––开发日志之二(VSTO Development diary II)
  2. c c 语言程序设计同步,第一部分C语言程序设计C语言程序设计同步练习答案.PDF...
  3. python 子线程coredump_python多线程备份mysql数据工具:mysqlpdump使用方法
  4. P7323-[WC2021]括号路径【并查集,启发式合并】
  5. Jenkins 与 Kubernetes 的 CI 与 CD Git + Maven + Docker+Kubectl
  6. 《大话软件工程—需求分析与软件设计》,给出了分析与设计过程中需要的理论、方法、工具和标准
  7. Auto 和 Decltye 的区别
  8. KindleDrip:从邮件地址到信用卡盗刷的严重漏洞,值$1.8万奖金
  9. 【SICP练习】31 练习1.37
  10. python饼状图显示其比例_python可视化:matplotlib绘制的饼状图你了解吗?
  11. 为你的简书和 GitHub 设定个性域名 1
  12. USB无线网卡和PCI-E无线网卡如何选择?
  13. 使用SVM模型对京东评价进行情感分析---【大白话版】
  14. 基于 Next.js实现在线Excel
  15. 抽奖系统小程序,多方式真实展示抽奖功能
  16. Jackknife 刀切法
  17. jdk,jre,ide概念辨析
  18. 实战案例讲解:用户画像如何应用?
  19. Velodyne Lidar将被纳入罗素2000指数
  20. 英语不好,能不能学软件编程?不懂英文能学编程吗

热门文章

  1. C#开发微信门户及应用(27)-公众号模板消息管理
  2. asp.net调试技巧
  3. 阿里巴巴合伙人闻佳:创新背后的文化与组织
  4. 分布式压测系列之Jmeter4.0
  5. saltstack 任务管理和集群(三)
  6. jquery梳理之常用选择器
  7. Centos 7 安装 memcached
  8. codeforecs Gym 100286B Blind Walk
  9. mysql 主从同步,双主同步,如果服务器意外挂机,不同步怎么办
  10. 关于研究网站开发还是应用程序的思考