grpc 1.73.0 → 1.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +116 -53
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +18 -6
- data/include/grpc/event_engine/event_engine.h +74 -17
- data/include/grpc/grpc_posix.h +20 -1
- data/include/grpc/impl/channel_arg_names.h +2 -4
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/support/json.h +24 -0
- data/src/core/call/client_call.cc +4 -4
- data/src/core/call/filter_fusion.h +1230 -0
- data/src/core/call/interception_chain.h +7 -11
- data/src/core/call/metadata.cc +22 -0
- data/src/core/call/metadata.h +24 -2
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +274 -192
- data/src/core/channelz/channelz.h +224 -72
- data/src/core/channelz/channelz_registry.cc +2 -163
- data/src/core/channelz/channelz_registry.h +37 -6
- data/src/core/channelz/property_list.cc +353 -0
- data/src/core/channelz/property_list.h +204 -0
- data/src/core/channelz/v2tov1/convert.cc +683 -0
- data/src/core/channelz/v2tov1/convert.h +58 -0
- data/src/core/channelz/v2tov1/legacy_api.cc +425 -0
- data/src/core/channelz/v2tov1/legacy_api.h +32 -0
- data/src/core/channelz/v2tov1/property_list.cc +118 -0
- data/src/core/channelz/v2tov1/property_list.h +52 -0
- data/src/core/channelz/ztrace_collector.h +3 -2
- data/src/core/client_channel/backup_poller.cc +17 -2
- data/src/core/client_channel/client_channel.cc +17 -28
- data/src/core/client_channel/client_channel_filter.cc +24 -33
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_internal.h +2 -1
- data/src/core/client_channel/config_selector.h +8 -2
- data/src/core/client_channel/dynamic_filters.cc +5 -6
- data/src/core/client_channel/dynamic_filters.h +1 -1
- data/src/core/client_channel/global_subchannel_pool.cc +4 -1
- data/src/core/client_channel/load_balanced_call_destination.cc +6 -5
- data/src/core/client_channel/retry_filter.cc +21 -27
- data/src/core/client_channel/retry_filter.h +10 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
- data/src/core/client_channel/retry_interceptor.cc +30 -44
- data/src/core/client_channel/retry_interceptor.h +18 -17
- data/src/core/client_channel/retry_throttle.cc +46 -61
- data/src/core/client_channel/retry_throttle.h +17 -39
- data/src/core/client_channel/subchannel.cc +57 -25
- data/src/core/client_channel/subchannel.h +10 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +4 -1
- data/src/core/config/core_configuration.h +23 -0
- data/src/core/credentials/call/call_creds_registry.h +125 -0
- data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
- data/src/core/credentials/call/jwt_util.cc +70 -0
- data/src/core/credentials/call/jwt_util.h +32 -0
- data/src/core/credentials/transport/alts/alts_credentials.cc +5 -0
- data/src/core/credentials/transport/alts/check_gcp_environment_windows.cc +2 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +4 -2
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +1 -2
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +8 -3
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +29 -24
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +19 -8
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +96 -54
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +15 -2
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/tls/spiffe_utils.cc +371 -0
- data/src/core/credentials/transport/tls/spiffe_utils.h +171 -0
- data/src/core/credentials/transport/tls/ssl_utils.cc +11 -10
- data/src/core/credentials/transport/tls/ssl_utils.h +4 -2
- data/src/core/credentials/transport/tls/tls_credentials.cc +2 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +11 -26
- data/src/core/credentials/transport/tls/tls_security_connector.h +12 -12
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -2
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -6
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -6
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +8 -8
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -6
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- data/src/core/ext/filters/message_size/message_size_filter.cc +4 -4
- data/src/core/ext/filters/rbac/rbac_filter.cc +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +165 -117
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +23 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +99 -6
- data/src/core/ext/transport/chttp2/transport/frame.h +40 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +290 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1233 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +712 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +11 -38
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +65 -51
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +61 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +142 -0
- data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
- data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +121 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +76 -0
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
- data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +152 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +197 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +607 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +254 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +41 -13
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +4959 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +1111 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +108 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +1072 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +230 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c +716 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.h +227 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +133 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
- data/src/core/filter/auth/auth_filters.h +2 -27
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- data/src/core/filter/fused_filters.cc +154 -0
- data/src/core/handshaker/handshaker.cc +23 -14
- data/src/core/handshaker/handshaker.h +3 -0
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +7 -6
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +965 -0
- data/src/core/handshaker/security/secure_endpoint.cc +98 -38
- data/src/core/handshaker/security/secure_endpoint.h +8 -0
- data/src/core/handshaker/security/security_handshaker.cc +4 -1
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
- data/src/core/lib/channel/channel_args.cc +15 -0
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/channel_stack.cc +22 -23
- data/src/core/lib/channel/channel_stack.h +9 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
- data/src/core/lib/channel/promise_based_filter.cc +15 -25
- data/src/core/lib/channel/promise_based_filter.h +11 -10
- data/src/core/lib/debug/trace_impl.h +0 -1
- data/src/core/lib/event_engine/ares_resolver.cc +165 -46
- data/src/core/lib/event_engine/ares_resolver.h +51 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +12 -6
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +2 -4
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +263 -0
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.h +107 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +31 -3
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +14 -6
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
- data/src/core/lib/event_engine/event_engine.cc +7 -0
- data/src/core/lib/event_engine/extensions/channelz.h +10 -6
- data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +139 -169
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +17 -19
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +90 -131
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +13 -13
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -23
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +11 -23
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +3 -2
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +30 -19
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +3 -4
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +147 -94
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +435 -229
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +78 -50
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +46 -38
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +11 -171
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
- data/src/core/lib/event_engine/shim.cc +9 -0
- data/src/core/lib/event_engine/shim.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +6 -1
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
- data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
- data/src/core/lib/experiments/experiments.cc +165 -99
- data/src/core/lib/experiments/experiments.h +65 -52
- data/src/core/lib/iomgr/combiner.cc +1 -1
- data/src/core/lib/iomgr/endpoint.cc +4 -3
- data/src/core/lib/iomgr/endpoint.h +7 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
- data/src/core/lib/iomgr/exec_ctx.h +3 -9
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +15 -9
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +3 -2
- data/src/core/lib/promise/arena_promise.h +23 -7
- data/src/core/lib/promise/detail/promise_factory.h +10 -0
- data/src/core/lib/promise/detail/promise_like.h +118 -11
- data/src/core/lib/promise/detail/promise_variant.h +50 -0
- data/src/core/lib/promise/detail/seq_state.h +687 -548
- data/src/core/lib/promise/if.h +20 -0
- data/src/core/lib/promise/inter_activity_latch.h +147 -0
- data/src/core/lib/promise/inter_activity_mutex.h +547 -0
- data/src/core/lib/promise/loop.h +65 -3
- data/src/core/lib/promise/map.h +24 -0
- data/src/core/lib/promise/match_promise.h +103 -0
- data/src/core/lib/promise/mpsc.cc +425 -0
- data/src/core/lib/promise/mpsc.h +490 -0
- data/src/core/lib/promise/party.cc +55 -6
- data/src/core/lib/promise/party.h +68 -3
- data/src/core/lib/promise/poll.h +10 -0
- data/src/core/lib/promise/race.h +31 -0
- data/src/core/lib/promise/seq.h +4 -1
- data/src/core/lib/promise/status_flag.h +7 -0
- data/src/core/lib/promise/try_seq.h +4 -1
- data/src/core/lib/promise/wait_set.cc +28 -0
- data/src/core/lib/promise/wait_set.h +86 -0
- data/src/core/lib/resource_quota/arena.h +19 -0
- data/src/core/lib/resource_quota/memory_quota.cc +90 -3
- data/src/core/lib/resource_quota/memory_quota.h +20 -9
- data/src/core/lib/resource_quota/periodic_update.cc +14 -0
- data/src/core/lib/resource_quota/periodic_update.h +8 -0
- data/src/core/lib/resource_quota/resource_quota.cc +15 -4
- data/src/core/lib/resource_quota/resource_quota.h +3 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/slice/slice.h +5 -0
- data/src/core/lib/surface/call.cc +5 -5
- data/src/core/lib/surface/call.h +6 -5
- data/src/core/lib/surface/channel_create.cc +88 -13
- data/src/core/lib/surface/channel_create.h +4 -0
- data/src/core/lib/surface/channel_init.cc +164 -47
- data/src/core/lib/surface/channel_init.h +64 -1
- data/src/core/lib/surface/completion_queue.cc +2 -4
- data/src/core/lib/surface/filter_stack_call.cc +19 -10
- data/src/core/lib/surface/init.cc +6 -15
- data/src/core/lib/surface/legacy_channel.cc +3 -5
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +110 -0
- data/src/core/lib/transport/promise_endpoint.h +307 -0
- data/src/core/load_balancing/child_policy_handler.cc +2 -4
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/endpoint_list.cc +29 -2
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +3 -3
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -1
- data/src/core/load_balancing/health_check_client.cc +1 -5
- data/src/core/load_balancing/lb_policy.h +1 -3
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +15 -5
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +5 -3
- data/src/core/net/socket_mutator.cc +19 -0
- data/src/core/net/socket_mutator.h +25 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +6 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +2 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +8 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -1
- data/src/core/resolver/xds/xds_config.cc +6 -3
- data/src/core/resolver/xds/xds_config.h +9 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +22 -7
- data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +31 -11
- data/src/core/server/server.cc +84 -13
- data/src/core/server/server.h +21 -2
- data/src/core/server/server_call_tracer_filter.cc +0 -66
- data/src/core/server/server_call_tracer_filter.h +64 -0
- data/src/core/server/server_config_selector_filter.cc +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +63 -25
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_channel_arg_filter.cc +3 -60
- data/src/core/service_config/service_config_channel_arg_filter.h +82 -0
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/telemetry/call_tracer.cc +20 -14
- data/src/core/telemetry/call_tracer.h +22 -17
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/metrics.h +8 -8
- data/src/core/telemetry/stats_data.cc +369 -343
- data/src/core/telemetry/stats_data.h +341 -244
- data/src/core/telemetry/tcp_tracer.h +1 -1
- data/src/core/transport/auth_context.cc +20 -0
- data/src/core/transport/auth_context.h +4 -0
- data/src/core/transport/auth_context_comparator_registry.h +69 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
- data/src/core/tsi/fake_transport_security.cc +17 -0
- data/src/core/tsi/ssl_transport_security.cc +205 -32
- data/src/core/tsi/ssl_transport_security.h +19 -10
- data/src/core/tsi/ssl_transport_security_utils.cc +21 -0
- data/src/core/tsi/ssl_transport_security_utils.h +4 -0
- data/src/core/tsi/transport_security_grpc.cc +8 -0
- data/src/core/tsi/transport_security_grpc.h +15 -0
- data/src/core/util/backoff.cc +1 -5
- data/src/core/util/backoff.h +1 -0
- data/src/core/util/down_cast.h +1 -1
- data/src/core/util/function_signature.h +15 -1
- data/src/core/util/http_client/httpcli.cc +12 -5
- data/src/core/util/http_client/httpcli.h +4 -1
- data/src/core/util/http_client/httpcli_security_connector.cc +3 -1
- data/src/core/util/latent_see.cc +178 -146
- data/src/core/util/latent_see.h +249 -189
- data/src/core/util/log.cc +4 -0
- data/src/core/util/memory_usage.h +268 -0
- data/src/core/util/per_cpu.cc +2 -0
- data/src/core/util/per_cpu.h +7 -0
- data/src/core/util/shared_bit_gen.h +20 -0
- data/src/core/util/single_set_ptr.h +7 -4
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +144 -2
- data/src/core/util/wait_for_single_owner.cc +31 -0
- data/src/core/util/wait_for_single_owner.h +24 -0
- data/src/core/util/windows/directory_reader.cc +1 -0
- data/src/core/util/windows/thd.cc +1 -3
- data/src/core/util/work_serializer.cc +1 -1
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +32 -5
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +5 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
- data/src/core/xds/grpc/xds_certificate_provider.cc +5 -6
- data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
- data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_filter.h +7 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
- data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
- data/src/core/xds/grpc/xds_server_grpc.h +10 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
- data/src/core/xds/xds_client/xds_client.cc +26 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -8
- data/src/ruby/ext/grpc/rb_channel.c +70 -557
- data/src/ruby/ext/grpc/rb_channel.h +0 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
- data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
- data/src/ruby/ext/grpc/rb_grpc.c +9 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/ext/grpc/rb_loader.c +0 -4
- data/src/ruby/ext/grpc/rb_server.c +31 -50
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/core_spec.rb +22 -0
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
- data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
- data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
- data/third_party/abseil-cpp/absl/base/config.h +20 -129
- data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
- data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
- data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
- data/third_party/abseil-cpp/absl/base/options.h +3 -80
- data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
- data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
- data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
- data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
- data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
- data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
- data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/third_party/abseil-cpp/absl/log/check.h +2 -1
- data/third_party/abseil-cpp/absl/log/globals.h +4 -5
- data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
- data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
- data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
- data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
- data/third_party/abseil-cpp/absl/log/log.h +48 -35
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
- data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- data/third_party/abseil-cpp/absl/random/random.h +88 -53
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
- data/third_party/abseil-cpp/absl/status/status.cc +4 -8
- data/third_party/abseil-cpp/absl/status/status.h +8 -8
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
- data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
- data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
- data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
- data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
- data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
- data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
- data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
- data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
- data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- data/third_party/abseil-cpp/absl/time/time.h +20 -15
- data/third_party/abseil-cpp/absl/types/optional.h +7 -747
- data/third_party/abseil-cpp/absl/types/span.h +13 -11
- data/third_party/abseil-cpp/absl/types/variant.h +5 -784
- data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
- data/third_party/cares/cares/include/ares.h +925 -460
- data/third_party/cares/cares/include/ares_dns.h +86 -71
- data/third_party/cares/cares/include/ares_dns_record.h +1118 -0
- data/third_party/cares/cares/include/ares_nameser.h +215 -189
- data/third_party/cares/cares/include/ares_version.h +37 -14
- data/third_party/cares/cares/src/lib/ares_addrinfo2hostent.c +305 -0
- data/third_party/cares/cares/src/lib/ares_addrinfo_localhost.c +245 -0
- data/third_party/cares/cares/src/lib/ares_android.c +216 -164
- data/third_party/cares/cares/src/lib/ares_android.h +25 -14
- data/third_party/cares/cares/src/lib/ares_cancel.c +68 -44
- data/third_party/cares/cares/src/lib/ares_close_sockets.c +137 -0
- data/third_party/cares/cares/src/lib/ares_conn.c +511 -0
- data/third_party/cares/cares/src/lib/ares_conn.h +196 -0
- data/third_party/cares/cares/src/lib/ares_cookie.c +461 -0
- data/third_party/cares/cares/src/lib/ares_data.c +93 -181
- data/third_party/cares/cares/src/lib/ares_data.h +50 -39
- data/third_party/cares/cares/src/lib/ares_destroy.c +127 -89
- data/third_party/cares/cares/src/lib/ares_free_hostent.c +35 -24
- data/third_party/cares/cares/src/lib/ares_free_string.c +24 -16
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +45 -38
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +549 -663
- data/third_party/cares/cares/src/lib/ares_getenv.c +25 -15
- data/third_party/cares/cares/src/lib/ares_getenv.h +26 -18
- data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +163 -221
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +222 -223
- data/third_party/cares/cares/src/lib/ares_getnameinfo.c +328 -338
- data/third_party/cares/cares/src/lib/ares_hosts_file.c +952 -0
- data/third_party/cares/cares/src/lib/ares_inet_net_pton.h +25 -19
- data/third_party/cares/cares/src/lib/ares_init.c +425 -2091
- data/third_party/cares/cares/src/lib/ares_ipv6.h +63 -33
- data/third_party/cares/cares/src/lib/ares_library_init.c +110 -54
- data/third_party/cares/cares/src/lib/ares_metrics.c +261 -0
- data/third_party/cares/cares/src/lib/ares_options.c +418 -332
- data/third_party/cares/cares/src/lib/ares_parse_into_addrinfo.c +179 -0
- data/third_party/cares/cares/src/lib/ares_private.h +558 -356
- data/third_party/cares/cares/src/lib/ares_process.c +1224 -1369
- data/third_party/cares/cares/src/lib/ares_qcache.c +430 -0
- data/third_party/cares/cares/src/lib/ares_query.c +126 -121
- data/third_party/cares/cares/src/lib/ares_search.c +564 -262
- data/third_party/cares/cares/src/lib/ares_send.c +264 -93
- data/third_party/cares/cares/src/lib/ares_set_socket_functions.c +588 -0
- data/third_party/cares/cares/src/lib/ares_setup.h +115 -111
- data/third_party/cares/cares/src/lib/ares_socket.c +425 -0
- data/third_party/cares/cares/src/lib/ares_socket.h +163 -0
- data/third_party/cares/cares/src/lib/ares_sortaddrinfo.c +447 -0
- data/third_party/cares/cares/src/lib/ares_strerror.c +83 -48
- data/third_party/cares/cares/src/lib/ares_sysconfig.c +639 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_files.c +839 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_mac.c +373 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_win.c +621 -0
- data/third_party/cares/cares/src/lib/ares_timeout.c +136 -73
- data/third_party/cares/cares/src/lib/ares_update_servers.c +1362 -0
- data/third_party/cares/cares/src/lib/ares_version.c +29 -4
- data/third_party/cares/cares/src/lib/config-dos.h +88 -89
- data/third_party/cares/cares/src/lib/config-win32.h +122 -77
- data/third_party/cares/cares/src/lib/dsa/ares_array.c +394 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable.c +447 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable.h +174 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_asvp.c +224 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_dict.c +228 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_strvp.c +210 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_szvp.c +188 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_vpstr.c +186 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_vpvp.c +194 -0
- data/third_party/cares/cares/src/lib/dsa/ares_llist.c +382 -0
- data/third_party/cares/cares/src/lib/dsa/ares_slist.c +479 -0
- data/third_party/cares/cares/src/lib/dsa/ares_slist.h +207 -0
- data/third_party/cares/cares/src/lib/event/ares_event.h +191 -0
- data/third_party/cares/cares/src/lib/event/ares_event_configchg.c +743 -0
- data/third_party/cares/cares/src/lib/event/ares_event_epoll.c +192 -0
- data/third_party/cares/cares/src/lib/event/ares_event_kqueue.c +248 -0
- data/third_party/cares/cares/src/lib/event/ares_event_poll.c +140 -0
- data/third_party/cares/cares/src/lib/event/ares_event_select.c +159 -0
- data/third_party/cares/cares/src/lib/event/ares_event_thread.c +567 -0
- data/third_party/cares/cares/src/lib/event/ares_event_wake_pipe.c +166 -0
- data/third_party/cares/cares/src/lib/event/ares_event_win32.c +978 -0
- data/third_party/cares/cares/src/lib/event/ares_event_win32.h +161 -0
- data/third_party/cares/cares/src/lib/include/ares_array.h +276 -0
- data/third_party/cares/cares/src/lib/include/ares_buf.h +732 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_asvp.h +130 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_dict.h +123 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_strvp.h +130 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_szvp.h +118 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_vpstr.h +111 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_vpvp.h +128 -0
- data/third_party/cares/cares/src/lib/include/ares_llist.h +239 -0
- data/third_party/cares/cares/src/lib/include/ares_mem.h +38 -0
- data/third_party/cares/cares/src/lib/include/ares_str.h +244 -0
- data/third_party/cares/cares/src/lib/inet_net_pton.c +202 -157
- data/third_party/cares/cares/src/lib/inet_ntop.c +87 -69
- data/third_party/cares/cares/src/lib/legacy/ares_create_query.c +78 -0
- data/third_party/cares/cares/src/lib/legacy/ares_expand_name.c +99 -0
- data/third_party/cares/cares/src/lib/legacy/ares_expand_string.c +107 -0
- data/third_party/cares/cares/src/lib/legacy/ares_fds.c +80 -0
- data/third_party/cares/cares/src/lib/legacy/ares_getsock.c +85 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_a_reply.c +107 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_aaaa_reply.c +109 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_caa_reply.c +137 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_mx_reply.c +110 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_naptr_reply.c +132 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_ns_reply.c +154 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_ptr_reply.c +213 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_soa_reply.c +115 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_srv_reply.c +114 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_txt_reply.c +144 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_uri_reply.c +113 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_mapping.c +982 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_multistring.c +307 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_multistring.h +72 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_name.c +673 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_parse.c +1329 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_private.h +273 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_record.c +1661 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_write.c +1229 -0
- data/third_party/cares/cares/src/lib/str/ares_buf.c +1498 -0
- data/third_party/cares/cares/src/lib/str/ares_str.c +508 -0
- data/third_party/cares/cares/src/lib/str/ares_strsplit.c +90 -0
- data/third_party/cares/cares/src/lib/str/ares_strsplit.h +51 -0
- data/third_party/cares/cares/src/lib/thirdparty/apple/dnsinfo.h +122 -0
- data/third_party/cares/cares/src/lib/util/ares_iface_ips.c +628 -0
- data/third_party/cares/cares/src/lib/util/ares_iface_ips.h +139 -0
- data/third_party/cares/cares/src/lib/util/ares_math.c +158 -0
- data/third_party/cares/cares/src/lib/util/ares_math.h +45 -0
- data/third_party/cares/cares/src/lib/util/ares_rand.c +389 -0
- data/third_party/cares/cares/src/lib/util/ares_rand.h +36 -0
- data/third_party/cares/cares/src/lib/util/ares_threads.c +614 -0
- data/third_party/cares/cares/src/lib/util/ares_threads.h +60 -0
- data/third_party/cares/cares/src/lib/util/ares_time.h +48 -0
- data/third_party/cares/cares/src/lib/util/ares_timeval.c +95 -0
- data/third_party/cares/cares/src/lib/util/ares_uri.c +1626 -0
- data/third_party/cares/cares/src/lib/util/ares_uri.h +252 -0
- data/third_party/cares/cares/src/lib/windows_port.c +16 -9
- metadata +192 -68
- data/src/core/lib/event_engine/forkable.cc +0 -105
- data/src/core/lib/event_engine/forkable.h +0 -67
- data/src/core/lib/iomgr/python_util.h +0 -46
- data/src/core/util/ring_buffer.h +0 -122
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
- data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
- data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
- data/third_party/cares/cares/include/ares_rules.h +0 -125
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +0 -266
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +0 -240
- data/third_party/cares/cares/src/lib/ares__close_sockets.c +0 -61
- data/third_party/cares/cares/src/lib/ares__get_hostent.c +0 -260
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +0 -229
- data/third_party/cares/cares/src/lib/ares__read_line.c +0 -73
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +0 -258
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +0 -507
- data/third_party/cares/cares/src/lib/ares__timeval.c +0 -111
- data/third_party/cares/cares/src/lib/ares_create_query.c +0 -197
- data/third_party/cares/cares/src/lib/ares_expand_name.c +0 -311
- data/third_party/cares/cares/src/lib/ares_expand_string.c +0 -67
- data/third_party/cares/cares/src/lib/ares_fds.c +0 -59
- data/third_party/cares/cares/src/lib/ares_getsock.c +0 -66
- data/third_party/cares/cares/src/lib/ares_iphlpapi.h +0 -221
- data/third_party/cares/cares/src/lib/ares_llist.c +0 -63
- data/third_party/cares/cares/src/lib/ares_llist.h +0 -39
- data/third_party/cares/cares/src/lib/ares_mkquery.c +0 -24
- data/third_party/cares/cares/src/lib/ares_nowarn.c +0 -260
- data/third_party/cares/cares/src/lib/ares_nowarn.h +0 -61
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +0 -90
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +0 -92
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +0 -199
- data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +0 -164
- data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +0 -183
- data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +0 -177
- data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +0 -228
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +0 -179
- data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +0 -168
- data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +0 -214
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +0 -184
- data/third_party/cares/cares/src/lib/ares_platform.c +0 -11042
- data/third_party/cares/cares/src/lib/ares_platform.h +0 -43
- data/third_party/cares/cares/src/lib/ares_rand.c +0 -279
- data/third_party/cares/cares/src/lib/ares_strcasecmp.c +0 -66
- data/third_party/cares/cares/src/lib/ares_strcasecmp.h +0 -30
- data/third_party/cares/cares/src/lib/ares_strdup.c +0 -42
- data/third_party/cares/cares/src/lib/ares_strdup.h +0 -24
- data/third_party/cares/cares/src/lib/ares_strsplit.c +0 -94
- data/third_party/cares/cares/src/lib/ares_strsplit.h +0 -42
- data/third_party/cares/cares/src/lib/ares_writev.c +0 -79
- data/third_party/cares/cares/src/lib/ares_writev.h +0 -36
- data/third_party/cares/cares/src/lib/bitncmp.c +0 -59
- data/third_party/cares/cares/src/lib/bitncmp.h +0 -26
- data/third_party/cares/cares/src/lib/setup_once.h +0 -554
- data/third_party/cares/cares/src/tools/ares_getopt.h +0 -53
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright
|
1
|
+
// Copyright 2025 gRPC authors.
|
2
2
|
//
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
// you may not use this file except in compliance with the License.
|
@@ -30,58 +30,58 @@
|
|
30
30
|
|
31
31
|
namespace grpc_core {
|
32
32
|
class GlobalStatsCollector;
|
33
|
+
class Http2GlobalStatsCollector;
|
33
34
|
class Http2StatsCollector;
|
34
|
-
class
|
35
|
-
class
|
35
|
+
class HistogramCollector_80_10_64;
|
36
|
+
class Histogram_80_10_64 {
|
36
37
|
public:
|
37
38
|
static int BucketFor(int value);
|
38
39
|
const uint64_t* buckets() const { return buckets_; }
|
39
|
-
size_t bucket_count() const { return
|
40
|
+
size_t bucket_count() const { return 10; }
|
40
41
|
void Increment(int value) {
|
41
|
-
++buckets_[
|
42
|
+
++buckets_[Histogram_80_10_64::BucketFor(value)];
|
42
43
|
}
|
43
|
-
friend
|
44
|
-
|
45
|
-
const Histogram_16777216_20_64& right);
|
44
|
+
friend Histogram_80_10_64 operator-(const Histogram_80_10_64& left,
|
45
|
+
const Histogram_80_10_64& right);
|
46
46
|
|
47
47
|
private:
|
48
|
-
friend class
|
49
|
-
uint64_t buckets_[
|
48
|
+
friend class HistogramCollector_80_10_64;
|
49
|
+
uint64_t buckets_[10]{};
|
50
50
|
};
|
51
|
-
class
|
51
|
+
class HistogramCollector_80_10_64 {
|
52
52
|
public:
|
53
53
|
void Increment(int value) {
|
54
|
-
buckets_[
|
54
|
+
buckets_[Histogram_80_10_64::BucketFor(value)].fetch_add(
|
55
55
|
1, std::memory_order_relaxed);
|
56
56
|
}
|
57
|
-
void Collect(
|
57
|
+
void Collect(Histogram_80_10_64* result) const;
|
58
58
|
|
59
59
|
private:
|
60
|
-
std::atomic<uint64_t> buckets_[
|
60
|
+
std::atomic<uint64_t> buckets_[10]{};
|
61
61
|
};
|
62
|
-
class
|
63
|
-
class
|
62
|
+
class HistogramCollector_100_20_64;
|
63
|
+
class Histogram_100_20_64 {
|
64
64
|
public:
|
65
65
|
static int BucketFor(int value);
|
66
66
|
const uint64_t* buckets() const { return buckets_; }
|
67
67
|
size_t bucket_count() const { return 20; }
|
68
68
|
void Increment(int value) {
|
69
|
-
++buckets_[
|
69
|
+
++buckets_[Histogram_100_20_64::BucketFor(value)];
|
70
70
|
}
|
71
|
-
friend
|
72
|
-
|
71
|
+
friend Histogram_100_20_64 operator-(const Histogram_100_20_64& left,
|
72
|
+
const Histogram_100_20_64& right);
|
73
73
|
|
74
74
|
private:
|
75
|
-
friend class
|
75
|
+
friend class HistogramCollector_100_20_64;
|
76
76
|
uint64_t buckets_[20]{};
|
77
77
|
};
|
78
|
-
class
|
78
|
+
class HistogramCollector_100_20_64 {
|
79
79
|
public:
|
80
80
|
void Increment(int value) {
|
81
|
-
buckets_[
|
81
|
+
buckets_[Histogram_100_20_64::BucketFor(value)].fetch_add(
|
82
82
|
1, std::memory_order_relaxed);
|
83
83
|
}
|
84
|
-
void Collect(
|
84
|
+
void Collect(Histogram_100_20_64* result) const;
|
85
85
|
|
86
86
|
private:
|
87
87
|
std::atomic<uint64_t> buckets_[20]{};
|
@@ -140,6 +140,61 @@ class HistogramCollector_65536_26_64 {
|
|
140
140
|
private:
|
141
141
|
std::atomic<uint64_t> buckets_[26]{};
|
142
142
|
};
|
143
|
+
class HistogramCollector_100000_20_64;
|
144
|
+
class Histogram_100000_20_64 {
|
145
|
+
public:
|
146
|
+
static int BucketFor(int value);
|
147
|
+
const uint64_t* buckets() const { return buckets_; }
|
148
|
+
size_t bucket_count() const { return 20; }
|
149
|
+
void Increment(int value) {
|
150
|
+
++buckets_[Histogram_100000_20_64::BucketFor(value)];
|
151
|
+
}
|
152
|
+
friend Histogram_100000_20_64 operator-(const Histogram_100000_20_64& left,
|
153
|
+
const Histogram_100000_20_64& right);
|
154
|
+
|
155
|
+
private:
|
156
|
+
friend class HistogramCollector_100000_20_64;
|
157
|
+
uint64_t buckets_[20]{};
|
158
|
+
};
|
159
|
+
class HistogramCollector_100000_20_64 {
|
160
|
+
public:
|
161
|
+
void Increment(int value) {
|
162
|
+
buckets_[Histogram_100000_20_64::BucketFor(value)].fetch_add(
|
163
|
+
1, std::memory_order_relaxed);
|
164
|
+
}
|
165
|
+
void Collect(Histogram_100000_20_64* result) const;
|
166
|
+
|
167
|
+
private:
|
168
|
+
std::atomic<uint64_t> buckets_[20]{};
|
169
|
+
};
|
170
|
+
class HistogramCollector_1800000_40_64;
|
171
|
+
class Histogram_1800000_40_64 {
|
172
|
+
public:
|
173
|
+
static int BucketFor(int value);
|
174
|
+
const uint64_t* buckets() const { return buckets_; }
|
175
|
+
size_t bucket_count() const { return 40; }
|
176
|
+
void Increment(int value) {
|
177
|
+
++buckets_[Histogram_1800000_40_64::BucketFor(value)];
|
178
|
+
}
|
179
|
+
friend Histogram_1800000_40_64 operator-(
|
180
|
+
const Histogram_1800000_40_64& left,
|
181
|
+
const Histogram_1800000_40_64& right);
|
182
|
+
|
183
|
+
private:
|
184
|
+
friend class HistogramCollector_1800000_40_64;
|
185
|
+
uint64_t buckets_[40]{};
|
186
|
+
};
|
187
|
+
class HistogramCollector_1800000_40_64 {
|
188
|
+
public:
|
189
|
+
void Increment(int value) {
|
190
|
+
buckets_[Histogram_1800000_40_64::BucketFor(value)].fetch_add(
|
191
|
+
1, std::memory_order_relaxed);
|
192
|
+
}
|
193
|
+
void Collect(Histogram_1800000_40_64* result) const;
|
194
|
+
|
195
|
+
private:
|
196
|
+
std::atomic<uint64_t> buckets_[40]{};
|
197
|
+
};
|
143
198
|
class Histogram_16777216_8_8 {
|
144
199
|
public:
|
145
200
|
static int BucketFor(int value);
|
@@ -158,29 +213,30 @@ class Histogram_16777216_8_8 {
|
|
158
213
|
private:
|
159
214
|
uint8_t buckets_[8]{};
|
160
215
|
};
|
161
|
-
class
|
162
|
-
class
|
216
|
+
class HistogramCollector_16777216_20_64;
|
217
|
+
class Histogram_16777216_20_64 {
|
163
218
|
public:
|
164
219
|
static int BucketFor(int value);
|
165
220
|
const uint64_t* buckets() const { return buckets_; }
|
166
221
|
size_t bucket_count() const { return 20; }
|
167
222
|
void Increment(int value) {
|
168
|
-
++buckets_[
|
223
|
+
++buckets_[Histogram_16777216_20_64::BucketFor(value)];
|
169
224
|
}
|
170
|
-
friend
|
171
|
-
|
225
|
+
friend Histogram_16777216_20_64 operator-(
|
226
|
+
const Histogram_16777216_20_64& left,
|
227
|
+
const Histogram_16777216_20_64& right);
|
172
228
|
|
173
229
|
private:
|
174
|
-
friend class
|
230
|
+
friend class HistogramCollector_16777216_20_64;
|
175
231
|
uint64_t buckets_[20]{};
|
176
232
|
};
|
177
|
-
class
|
233
|
+
class HistogramCollector_16777216_20_64 {
|
178
234
|
public:
|
179
235
|
void Increment(int value) {
|
180
|
-
buckets_[
|
236
|
+
buckets_[Histogram_16777216_20_64::BucketFor(value)].fetch_add(
|
181
237
|
1, std::memory_order_relaxed);
|
182
238
|
}
|
183
|
-
void Collect(
|
239
|
+
void Collect(Histogram_16777216_20_64* result) const;
|
184
240
|
|
185
241
|
private:
|
186
242
|
std::atomic<uint64_t> buckets_[20]{};
|
@@ -213,61 +269,6 @@ class HistogramCollector_16777216_50_64 {
|
|
213
269
|
private:
|
214
270
|
std::atomic<uint64_t> buckets_[50]{};
|
215
271
|
};
|
216
|
-
class HistogramCollector_80_10_64;
|
217
|
-
class Histogram_80_10_64 {
|
218
|
-
public:
|
219
|
-
static int BucketFor(int value);
|
220
|
-
const uint64_t* buckets() const { return buckets_; }
|
221
|
-
size_t bucket_count() const { return 10; }
|
222
|
-
void Increment(int value) {
|
223
|
-
++buckets_[Histogram_80_10_64::BucketFor(value)];
|
224
|
-
}
|
225
|
-
friend Histogram_80_10_64 operator-(const Histogram_80_10_64& left,
|
226
|
-
const Histogram_80_10_64& right);
|
227
|
-
|
228
|
-
private:
|
229
|
-
friend class HistogramCollector_80_10_64;
|
230
|
-
uint64_t buckets_[10]{};
|
231
|
-
};
|
232
|
-
class HistogramCollector_80_10_64 {
|
233
|
-
public:
|
234
|
-
void Increment(int value) {
|
235
|
-
buckets_[Histogram_80_10_64::BucketFor(value)].fetch_add(
|
236
|
-
1, std::memory_order_relaxed);
|
237
|
-
}
|
238
|
-
void Collect(Histogram_80_10_64* result) const;
|
239
|
-
|
240
|
-
private:
|
241
|
-
std::atomic<uint64_t> buckets_[10]{};
|
242
|
-
};
|
243
|
-
class HistogramCollector_1800000_40_64;
|
244
|
-
class Histogram_1800000_40_64 {
|
245
|
-
public:
|
246
|
-
static int BucketFor(int value);
|
247
|
-
const uint64_t* buckets() const { return buckets_; }
|
248
|
-
size_t bucket_count() const { return 40; }
|
249
|
-
void Increment(int value) {
|
250
|
-
++buckets_[Histogram_1800000_40_64::BucketFor(value)];
|
251
|
-
}
|
252
|
-
friend Histogram_1800000_40_64 operator-(
|
253
|
-
const Histogram_1800000_40_64& left,
|
254
|
-
const Histogram_1800000_40_64& right);
|
255
|
-
|
256
|
-
private:
|
257
|
-
friend class HistogramCollector_1800000_40_64;
|
258
|
-
uint64_t buckets_[40]{};
|
259
|
-
};
|
260
|
-
class HistogramCollector_1800000_40_64 {
|
261
|
-
public:
|
262
|
-
void Increment(int value) {
|
263
|
-
buckets_[Histogram_1800000_40_64::BucketFor(value)].fetch_add(
|
264
|
-
1, std::memory_order_relaxed);
|
265
|
-
}
|
266
|
-
void Collect(Histogram_1800000_40_64* result) const;
|
267
|
-
|
268
|
-
private:
|
269
|
-
std::atomic<uint64_t> buckets_[40]{};
|
270
|
-
};
|
271
272
|
struct GlobalStats {
|
272
273
|
enum class Counter {
|
273
274
|
kClientCallsCreated,
|
@@ -283,13 +284,6 @@ struct GlobalStats {
|
|
283
284
|
kSyscallRead,
|
284
285
|
kTcpReadAlloc8k,
|
285
286
|
kTcpReadAlloc64k,
|
286
|
-
kHttp2SettingsWrites,
|
287
|
-
kHttp2PingsSent,
|
288
|
-
kHttp2WritesBegun,
|
289
|
-
kHttp2TransportStalls,
|
290
|
-
kHttp2StreamStalls,
|
291
|
-
kHttp2HpackHits,
|
292
|
-
kHttp2HpackMisses,
|
293
287
|
kCqPluckCreates,
|
294
288
|
kCqNextCreates,
|
295
289
|
kCqCallbackCreates,
|
@@ -316,22 +310,6 @@ struct GlobalStats {
|
|
316
310
|
kTcpReadSize,
|
317
311
|
kTcpReadOffer,
|
318
312
|
kTcpReadOfferIovSize,
|
319
|
-
kHttp2SendMessageSize,
|
320
|
-
kHttp2MetadataSize,
|
321
|
-
kHttp2HpackEntryLifetime,
|
322
|
-
kHttp2HeaderTableSize,
|
323
|
-
kHttp2InitialWindowSize,
|
324
|
-
kHttp2MaxConcurrentStreams,
|
325
|
-
kHttp2MaxFrameSize,
|
326
|
-
kHttp2MaxHeaderListSize,
|
327
|
-
kHttp2PreferredReceiveCryptoMessageSize,
|
328
|
-
kHttp2StreamRemoteWindowUpdate,
|
329
|
-
kHttp2TransportRemoteWindowUpdate,
|
330
|
-
kHttp2TransportWindowUpdatePeriod,
|
331
|
-
kHttp2StreamWindowUpdatePeriod,
|
332
|
-
kHttp2WriteTargetSize,
|
333
|
-
kHttp2WriteDataFrameSize,
|
334
|
-
kHttp2ReadDataFrameSize,
|
335
313
|
kWrrSubchannelListSize,
|
336
314
|
kWrrSubchannelReadySize,
|
337
315
|
kWorkSerializerRunTimeMs,
|
@@ -376,13 +354,6 @@ struct GlobalStats {
|
|
376
354
|
uint64_t syscall_read;
|
377
355
|
uint64_t tcp_read_alloc_8k;
|
378
356
|
uint64_t tcp_read_alloc_64k;
|
379
|
-
uint64_t http2_settings_writes;
|
380
|
-
uint64_t http2_pings_sent;
|
381
|
-
uint64_t http2_writes_begun;
|
382
|
-
uint64_t http2_transport_stalls;
|
383
|
-
uint64_t http2_stream_stalls;
|
384
|
-
uint64_t http2_hpack_hits;
|
385
|
-
uint64_t http2_hpack_misses;
|
386
357
|
uint64_t cq_pluck_creates;
|
387
358
|
uint64_t cq_next_creates;
|
388
359
|
uint64_t cq_callback_creates;
|
@@ -409,22 +380,6 @@ struct GlobalStats {
|
|
409
380
|
Histogram_16777216_20_64 tcp_read_size;
|
410
381
|
Histogram_16777216_20_64 tcp_read_offer;
|
411
382
|
Histogram_80_10_64 tcp_read_offer_iov_size;
|
412
|
-
Histogram_16777216_20_64 http2_send_message_size;
|
413
|
-
Histogram_65536_26_64 http2_metadata_size;
|
414
|
-
Histogram_1800000_40_64 http2_hpack_entry_lifetime;
|
415
|
-
Histogram_16777216_20_64 http2_header_table_size;
|
416
|
-
Histogram_16777216_50_64 http2_initial_window_size;
|
417
|
-
Histogram_16777216_20_64 http2_max_concurrent_streams;
|
418
|
-
Histogram_16777216_50_64 http2_max_frame_size;
|
419
|
-
Histogram_16777216_20_64 http2_max_header_list_size;
|
420
|
-
Histogram_16777216_20_64 http2_preferred_receive_crypto_message_size;
|
421
|
-
Histogram_16777216_20_64 http2_stream_remote_window_update;
|
422
|
-
Histogram_16777216_20_64 http2_transport_remote_window_update;
|
423
|
-
Histogram_100000_20_64 http2_transport_window_update_period;
|
424
|
-
Histogram_100000_20_64 http2_stream_window_update_period;
|
425
|
-
Histogram_16777216_50_64 http2_write_target_size;
|
426
|
-
Histogram_16777216_50_64 http2_write_data_frame_size;
|
427
|
-
Histogram_16777216_50_64 http2_read_data_frame_size;
|
428
383
|
Histogram_10000_20_64 wrr_subchannel_list_size;
|
429
384
|
Histogram_10000_20_64 wrr_subchannel_ready_size;
|
430
385
|
Histogram_100000_20_64 work_serializer_run_time_ms;
|
@@ -497,34 +452,6 @@ class GlobalStatsCollector {
|
|
497
452
|
void IncrementTcpReadAlloc64k() {
|
498
453
|
data_.this_cpu().tcp_read_alloc_64k.fetch_add(1, std::memory_order_relaxed);
|
499
454
|
}
|
500
|
-
void IncrementHttp2SettingsWrites() {
|
501
|
-
data_.this_cpu().http2_settings_writes.fetch_add(1,
|
502
|
-
std::memory_order_relaxed);
|
503
|
-
}
|
504
|
-
void IncrementHttp2PingsSent() {
|
505
|
-
data_.this_cpu().http2_pings_sent.fetch_add(1, std::memory_order_relaxed);
|
506
|
-
}
|
507
|
-
|
508
|
-
private:
|
509
|
-
void IncrementHttp2WritesBegun() {
|
510
|
-
data_.this_cpu().http2_writes_begun.fetch_add(1, std::memory_order_relaxed);
|
511
|
-
}
|
512
|
-
|
513
|
-
public:
|
514
|
-
void IncrementHttp2TransportStalls() {
|
515
|
-
data_.this_cpu().http2_transport_stalls.fetch_add(
|
516
|
-
1, std::memory_order_relaxed);
|
517
|
-
}
|
518
|
-
void IncrementHttp2StreamStalls() {
|
519
|
-
data_.this_cpu().http2_stream_stalls.fetch_add(1,
|
520
|
-
std::memory_order_relaxed);
|
521
|
-
}
|
522
|
-
void IncrementHttp2HpackHits() {
|
523
|
-
data_.this_cpu().http2_hpack_hits.fetch_add(1, std::memory_order_relaxed);
|
524
|
-
}
|
525
|
-
void IncrementHttp2HpackMisses() {
|
526
|
-
data_.this_cpu().http2_hpack_misses.fetch_add(1, std::memory_order_relaxed);
|
527
|
-
}
|
528
455
|
void IncrementCqPluckCreates() {
|
529
456
|
data_.this_cpu().cq_pluck_creates.fetch_add(1, std::memory_order_relaxed);
|
530
457
|
}
|
@@ -599,64 +526,11 @@ class GlobalStatsCollector {
|
|
599
526
|
void IncrementTcpReadOfferIovSize(int value) {
|
600
527
|
data_.this_cpu().tcp_read_offer_iov_size.Increment(value);
|
601
528
|
}
|
602
|
-
void
|
603
|
-
data_.this_cpu().
|
529
|
+
void IncrementWrrSubchannelListSize(int value) {
|
530
|
+
data_.this_cpu().wrr_subchannel_list_size.Increment(value);
|
604
531
|
}
|
605
|
-
void
|
606
|
-
data_.this_cpu().
|
607
|
-
}
|
608
|
-
void IncrementHttp2HpackEntryLifetime(int value) {
|
609
|
-
data_.this_cpu().http2_hpack_entry_lifetime.Increment(value);
|
610
|
-
}
|
611
|
-
void IncrementHttp2HeaderTableSize(int value) {
|
612
|
-
data_.this_cpu().http2_header_table_size.Increment(value);
|
613
|
-
}
|
614
|
-
void IncrementHttp2InitialWindowSize(int value) {
|
615
|
-
data_.this_cpu().http2_initial_window_size.Increment(value);
|
616
|
-
}
|
617
|
-
void IncrementHttp2MaxConcurrentStreams(int value) {
|
618
|
-
data_.this_cpu().http2_max_concurrent_streams.Increment(value);
|
619
|
-
}
|
620
|
-
void IncrementHttp2MaxFrameSize(int value) {
|
621
|
-
data_.this_cpu().http2_max_frame_size.Increment(value);
|
622
|
-
}
|
623
|
-
void IncrementHttp2MaxHeaderListSize(int value) {
|
624
|
-
data_.this_cpu().http2_max_header_list_size.Increment(value);
|
625
|
-
}
|
626
|
-
void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
|
627
|
-
data_.this_cpu().http2_preferred_receive_crypto_message_size.Increment(
|
628
|
-
value);
|
629
|
-
}
|
630
|
-
void IncrementHttp2StreamRemoteWindowUpdate(int value) {
|
631
|
-
data_.this_cpu().http2_stream_remote_window_update.Increment(value);
|
632
|
-
}
|
633
|
-
void IncrementHttp2TransportRemoteWindowUpdate(int value) {
|
634
|
-
data_.this_cpu().http2_transport_remote_window_update.Increment(value);
|
635
|
-
}
|
636
|
-
void IncrementHttp2TransportWindowUpdatePeriod(int value) {
|
637
|
-
data_.this_cpu().http2_transport_window_update_period.Increment(value);
|
638
|
-
}
|
639
|
-
void IncrementHttp2StreamWindowUpdatePeriod(int value) {
|
640
|
-
data_.this_cpu().http2_stream_window_update_period.Increment(value);
|
641
|
-
}
|
642
|
-
|
643
|
-
private:
|
644
|
-
void IncrementHttp2WriteTargetSize(int value) {
|
645
|
-
data_.this_cpu().http2_write_target_size.Increment(value);
|
646
|
-
}
|
647
|
-
|
648
|
-
public:
|
649
|
-
void IncrementHttp2WriteDataFrameSize(int value) {
|
650
|
-
data_.this_cpu().http2_write_data_frame_size.Increment(value);
|
651
|
-
}
|
652
|
-
void IncrementHttp2ReadDataFrameSize(int value) {
|
653
|
-
data_.this_cpu().http2_read_data_frame_size.Increment(value);
|
654
|
-
}
|
655
|
-
void IncrementWrrSubchannelListSize(int value) {
|
656
|
-
data_.this_cpu().wrr_subchannel_list_size.Increment(value);
|
657
|
-
}
|
658
|
-
void IncrementWrrSubchannelReadySize(int value) {
|
659
|
-
data_.this_cpu().wrr_subchannel_ready_size.Increment(value);
|
532
|
+
void IncrementWrrSubchannelReadySize(int value) {
|
533
|
+
data_.this_cpu().wrr_subchannel_ready_size.Increment(value);
|
660
534
|
}
|
661
535
|
void IncrementWorkSerializerRunTimeMs(int value) {
|
662
536
|
data_.this_cpu().work_serializer_run_time_ms.Increment(value);
|
@@ -715,6 +589,7 @@ class GlobalStatsCollector {
|
|
715
589
|
}
|
716
590
|
|
717
591
|
private:
|
592
|
+
friend class Http2GlobalStatsCollector;
|
718
593
|
friend class Http2StatsCollector;
|
719
594
|
struct Data {
|
720
595
|
std::atomic<uint64_t> client_calls_created{0};
|
@@ -730,13 +605,6 @@ class GlobalStatsCollector {
|
|
730
605
|
std::atomic<uint64_t> syscall_read{0};
|
731
606
|
std::atomic<uint64_t> tcp_read_alloc_8k{0};
|
732
607
|
std::atomic<uint64_t> tcp_read_alloc_64k{0};
|
733
|
-
std::atomic<uint64_t> http2_settings_writes{0};
|
734
|
-
std::atomic<uint64_t> http2_pings_sent{0};
|
735
|
-
std::atomic<uint64_t> http2_writes_begun{0};
|
736
|
-
std::atomic<uint64_t> http2_transport_stalls{0};
|
737
|
-
std::atomic<uint64_t> http2_stream_stalls{0};
|
738
|
-
std::atomic<uint64_t> http2_hpack_hits{0};
|
739
|
-
std::atomic<uint64_t> http2_hpack_misses{0};
|
740
608
|
std::atomic<uint64_t> cq_pluck_creates{0};
|
741
609
|
std::atomic<uint64_t> cq_next_creates{0};
|
742
610
|
std::atomic<uint64_t> cq_callback_creates{0};
|
@@ -760,23 +628,6 @@ class GlobalStatsCollector {
|
|
760
628
|
HistogramCollector_16777216_20_64 tcp_read_size;
|
761
629
|
HistogramCollector_16777216_20_64 tcp_read_offer;
|
762
630
|
HistogramCollector_80_10_64 tcp_read_offer_iov_size;
|
763
|
-
HistogramCollector_16777216_20_64 http2_send_message_size;
|
764
|
-
HistogramCollector_65536_26_64 http2_metadata_size;
|
765
|
-
HistogramCollector_1800000_40_64 http2_hpack_entry_lifetime;
|
766
|
-
HistogramCollector_16777216_20_64 http2_header_table_size;
|
767
|
-
HistogramCollector_16777216_50_64 http2_initial_window_size;
|
768
|
-
HistogramCollector_16777216_20_64 http2_max_concurrent_streams;
|
769
|
-
HistogramCollector_16777216_50_64 http2_max_frame_size;
|
770
|
-
HistogramCollector_16777216_20_64 http2_max_header_list_size;
|
771
|
-
HistogramCollector_16777216_20_64
|
772
|
-
http2_preferred_receive_crypto_message_size;
|
773
|
-
HistogramCollector_16777216_20_64 http2_stream_remote_window_update;
|
774
|
-
HistogramCollector_16777216_20_64 http2_transport_remote_window_update;
|
775
|
-
HistogramCollector_100000_20_64 http2_transport_window_update_period;
|
776
|
-
HistogramCollector_100000_20_64 http2_stream_window_update_period;
|
777
|
-
HistogramCollector_16777216_50_64 http2_write_target_size;
|
778
|
-
HistogramCollector_16777216_50_64 http2_write_data_frame_size;
|
779
|
-
HistogramCollector_16777216_50_64 http2_read_data_frame_size;
|
780
631
|
HistogramCollector_10000_20_64 wrr_subchannel_list_size;
|
781
632
|
HistogramCollector_10000_20_64 wrr_subchannel_ready_size;
|
782
633
|
HistogramCollector_100000_20_64 work_serializer_run_time_ms;
|
@@ -803,6 +654,189 @@ class GlobalStatsCollector {
|
|
803
654
|
inline GlobalStatsCollector& global_stats() {
|
804
655
|
return *NoDestructSingleton<GlobalStatsCollector>::Get();
|
805
656
|
}
|
657
|
+
struct Http2GlobalStats {
|
658
|
+
enum class Counter {
|
659
|
+
kHttp2SettingsWrites,
|
660
|
+
kHttp2PingsSent,
|
661
|
+
kHttp2TransportStalls,
|
662
|
+
kHttp2StreamStalls,
|
663
|
+
kHttp2HpackHits,
|
664
|
+
kHttp2HpackMisses,
|
665
|
+
kHttp2WritesBegun,
|
666
|
+
COUNT
|
667
|
+
};
|
668
|
+
enum class Histogram {
|
669
|
+
kHttp2SendMessageSize,
|
670
|
+
kHttp2MetadataSize,
|
671
|
+
kHttp2HpackEntryLifetime,
|
672
|
+
kHttp2HeaderTableSize,
|
673
|
+
kHttp2InitialWindowSize,
|
674
|
+
kHttp2MaxConcurrentStreams,
|
675
|
+
kHttp2MaxFrameSize,
|
676
|
+
kHttp2MaxHeaderListSize,
|
677
|
+
kHttp2PreferredReceiveCryptoMessageSize,
|
678
|
+
kHttp2StreamRemoteWindowUpdate,
|
679
|
+
kHttp2TransportRemoteWindowUpdate,
|
680
|
+
kHttp2TransportWindowUpdatePeriod,
|
681
|
+
kHttp2StreamWindowUpdatePeriod,
|
682
|
+
kHttp2WriteDataFrameSize,
|
683
|
+
kHttp2ReadDataFrameSize,
|
684
|
+
kHttp2WriteTargetSize,
|
685
|
+
COUNT
|
686
|
+
};
|
687
|
+
Http2GlobalStats();
|
688
|
+
static const absl::string_view counter_name[static_cast<int>(Counter::COUNT)];
|
689
|
+
static const absl::string_view
|
690
|
+
histogram_name[static_cast<int>(Histogram::COUNT)];
|
691
|
+
static const absl::string_view counter_doc[static_cast<int>(Counter::COUNT)];
|
692
|
+
static const absl::string_view
|
693
|
+
histogram_doc[static_cast<int>(Histogram::COUNT)];
|
694
|
+
union {
|
695
|
+
struct {
|
696
|
+
uint64_t http2_settings_writes;
|
697
|
+
uint64_t http2_pings_sent;
|
698
|
+
uint64_t http2_transport_stalls;
|
699
|
+
uint64_t http2_stream_stalls;
|
700
|
+
uint64_t http2_hpack_hits;
|
701
|
+
uint64_t http2_hpack_misses;
|
702
|
+
uint64_t http2_writes_begun;
|
703
|
+
};
|
704
|
+
uint64_t counters[static_cast<int>(Counter::COUNT)];
|
705
|
+
};
|
706
|
+
Histogram_16777216_20_64 http2_send_message_size;
|
707
|
+
Histogram_65536_26_64 http2_metadata_size;
|
708
|
+
Histogram_1800000_40_64 http2_hpack_entry_lifetime;
|
709
|
+
Histogram_16777216_20_64 http2_header_table_size;
|
710
|
+
Histogram_16777216_50_64 http2_initial_window_size;
|
711
|
+
Histogram_16777216_20_64 http2_max_concurrent_streams;
|
712
|
+
Histogram_16777216_50_64 http2_max_frame_size;
|
713
|
+
Histogram_16777216_20_64 http2_max_header_list_size;
|
714
|
+
Histogram_16777216_20_64 http2_preferred_receive_crypto_message_size;
|
715
|
+
Histogram_16777216_20_64 http2_stream_remote_window_update;
|
716
|
+
Histogram_16777216_20_64 http2_transport_remote_window_update;
|
717
|
+
Histogram_100000_20_64 http2_transport_window_update_period;
|
718
|
+
Histogram_100000_20_64 http2_stream_window_update_period;
|
719
|
+
Histogram_16777216_50_64 http2_write_data_frame_size;
|
720
|
+
Histogram_16777216_50_64 http2_read_data_frame_size;
|
721
|
+
Histogram_16777216_50_64 http2_write_target_size;
|
722
|
+
HistogramView histogram(Histogram which) const;
|
723
|
+
std::unique_ptr<Http2GlobalStats> Diff(const Http2GlobalStats& other) const;
|
724
|
+
};
|
725
|
+
class Http2GlobalStatsCollector {
|
726
|
+
public:
|
727
|
+
std::unique_ptr<Http2GlobalStats> Collect() const;
|
728
|
+
void IncrementHttp2SettingsWrites() {
|
729
|
+
data_.this_cpu().http2_settings_writes.fetch_add(1,
|
730
|
+
std::memory_order_relaxed);
|
731
|
+
}
|
732
|
+
void IncrementHttp2PingsSent() {
|
733
|
+
data_.this_cpu().http2_pings_sent.fetch_add(1, std::memory_order_relaxed);
|
734
|
+
}
|
735
|
+
void IncrementHttp2TransportStalls() {
|
736
|
+
data_.this_cpu().http2_transport_stalls.fetch_add(
|
737
|
+
1, std::memory_order_relaxed);
|
738
|
+
}
|
739
|
+
void IncrementHttp2StreamStalls() {
|
740
|
+
data_.this_cpu().http2_stream_stalls.fetch_add(1,
|
741
|
+
std::memory_order_relaxed);
|
742
|
+
}
|
743
|
+
void IncrementHttp2HpackHits() {
|
744
|
+
data_.this_cpu().http2_hpack_hits.fetch_add(1, std::memory_order_relaxed);
|
745
|
+
}
|
746
|
+
void IncrementHttp2HpackMisses() {
|
747
|
+
data_.this_cpu().http2_hpack_misses.fetch_add(1, std::memory_order_relaxed);
|
748
|
+
}
|
749
|
+
|
750
|
+
private:
|
751
|
+
void IncrementHttp2WritesBegun() {
|
752
|
+
data_.this_cpu().http2_writes_begun.fetch_add(1, std::memory_order_relaxed);
|
753
|
+
}
|
754
|
+
|
755
|
+
public:
|
756
|
+
void IncrementHttp2SendMessageSize(int value) {
|
757
|
+
data_.this_cpu().http2_send_message_size.Increment(value);
|
758
|
+
}
|
759
|
+
void IncrementHttp2MetadataSize(int value) {
|
760
|
+
data_.this_cpu().http2_metadata_size.Increment(value);
|
761
|
+
}
|
762
|
+
void IncrementHttp2HpackEntryLifetime(int value) {
|
763
|
+
data_.this_cpu().http2_hpack_entry_lifetime.Increment(value);
|
764
|
+
}
|
765
|
+
void IncrementHttp2HeaderTableSize(int value) {
|
766
|
+
data_.this_cpu().http2_header_table_size.Increment(value);
|
767
|
+
}
|
768
|
+
void IncrementHttp2InitialWindowSize(int value) {
|
769
|
+
data_.this_cpu().http2_initial_window_size.Increment(value);
|
770
|
+
}
|
771
|
+
void IncrementHttp2MaxConcurrentStreams(int value) {
|
772
|
+
data_.this_cpu().http2_max_concurrent_streams.Increment(value);
|
773
|
+
}
|
774
|
+
void IncrementHttp2MaxFrameSize(int value) {
|
775
|
+
data_.this_cpu().http2_max_frame_size.Increment(value);
|
776
|
+
}
|
777
|
+
void IncrementHttp2MaxHeaderListSize(int value) {
|
778
|
+
data_.this_cpu().http2_max_header_list_size.Increment(value);
|
779
|
+
}
|
780
|
+
void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
|
781
|
+
data_.this_cpu().http2_preferred_receive_crypto_message_size.Increment(
|
782
|
+
value);
|
783
|
+
}
|
784
|
+
void IncrementHttp2StreamRemoteWindowUpdate(int value) {
|
785
|
+
data_.this_cpu().http2_stream_remote_window_update.Increment(value);
|
786
|
+
}
|
787
|
+
void IncrementHttp2TransportRemoteWindowUpdate(int value) {
|
788
|
+
data_.this_cpu().http2_transport_remote_window_update.Increment(value);
|
789
|
+
}
|
790
|
+
void IncrementHttp2TransportWindowUpdatePeriod(int value) {
|
791
|
+
data_.this_cpu().http2_transport_window_update_period.Increment(value);
|
792
|
+
}
|
793
|
+
void IncrementHttp2StreamWindowUpdatePeriod(int value) {
|
794
|
+
data_.this_cpu().http2_stream_window_update_period.Increment(value);
|
795
|
+
}
|
796
|
+
void IncrementHttp2WriteDataFrameSize(int value) {
|
797
|
+
data_.this_cpu().http2_write_data_frame_size.Increment(value);
|
798
|
+
}
|
799
|
+
void IncrementHttp2ReadDataFrameSize(int value) {
|
800
|
+
data_.this_cpu().http2_read_data_frame_size.Increment(value);
|
801
|
+
}
|
802
|
+
|
803
|
+
private:
|
804
|
+
void IncrementHttp2WriteTargetSize(int value) {
|
805
|
+
data_.this_cpu().http2_write_target_size.Increment(value);
|
806
|
+
}
|
807
|
+
friend class GlobalStatsCollector;
|
808
|
+
friend class Http2StatsCollector;
|
809
|
+
struct Data {
|
810
|
+
std::atomic<uint64_t> http2_settings_writes{0};
|
811
|
+
std::atomic<uint64_t> http2_pings_sent{0};
|
812
|
+
std::atomic<uint64_t> http2_transport_stalls{0};
|
813
|
+
std::atomic<uint64_t> http2_stream_stalls{0};
|
814
|
+
std::atomic<uint64_t> http2_hpack_hits{0};
|
815
|
+
std::atomic<uint64_t> http2_hpack_misses{0};
|
816
|
+
std::atomic<uint64_t> http2_writes_begun{0};
|
817
|
+
HistogramCollector_16777216_20_64 http2_send_message_size;
|
818
|
+
HistogramCollector_65536_26_64 http2_metadata_size;
|
819
|
+
HistogramCollector_1800000_40_64 http2_hpack_entry_lifetime;
|
820
|
+
HistogramCollector_16777216_20_64 http2_header_table_size;
|
821
|
+
HistogramCollector_16777216_50_64 http2_initial_window_size;
|
822
|
+
HistogramCollector_16777216_20_64 http2_max_concurrent_streams;
|
823
|
+
HistogramCollector_16777216_50_64 http2_max_frame_size;
|
824
|
+
HistogramCollector_16777216_20_64 http2_max_header_list_size;
|
825
|
+
HistogramCollector_16777216_20_64
|
826
|
+
http2_preferred_receive_crypto_message_size;
|
827
|
+
HistogramCollector_16777216_20_64 http2_stream_remote_window_update;
|
828
|
+
HistogramCollector_16777216_20_64 http2_transport_remote_window_update;
|
829
|
+
HistogramCollector_100000_20_64 http2_transport_window_update_period;
|
830
|
+
HistogramCollector_100000_20_64 http2_stream_window_update_period;
|
831
|
+
HistogramCollector_16777216_50_64 http2_write_data_frame_size;
|
832
|
+
HistogramCollector_16777216_50_64 http2_read_data_frame_size;
|
833
|
+
HistogramCollector_16777216_50_64 http2_write_target_size;
|
834
|
+
};
|
835
|
+
PerCpu<Data> data_{PerCpuOptions().SetCpusPerShard(4).SetMaxShards(32)};
|
836
|
+
};
|
837
|
+
inline Http2GlobalStatsCollector& http2_global_stats() {
|
838
|
+
return *NoDestructSingleton<Http2GlobalStatsCollector>::Get();
|
839
|
+
}
|
806
840
|
struct Http2Stats {
|
807
841
|
enum class Counter { kHttp2WritesBegun, COUNT };
|
808
842
|
enum class Histogram { kHttp2WriteTargetSize, COUNT };
|
@@ -824,13 +858,76 @@ struct Http2Stats {
|
|
824
858
|
class Http2StatsCollector {
|
825
859
|
public:
|
826
860
|
const Http2Stats& View() const { return data_; };
|
861
|
+
void IncrementHttp2SettingsWrites() {
|
862
|
+
http2_global_stats().IncrementHttp2SettingsWrites();
|
863
|
+
}
|
864
|
+
void IncrementHttp2PingsSent() {
|
865
|
+
http2_global_stats().IncrementHttp2PingsSent();
|
866
|
+
}
|
867
|
+
void IncrementHttp2TransportStalls() {
|
868
|
+
http2_global_stats().IncrementHttp2TransportStalls();
|
869
|
+
}
|
870
|
+
void IncrementHttp2StreamStalls() {
|
871
|
+
http2_global_stats().IncrementHttp2StreamStalls();
|
872
|
+
}
|
873
|
+
void IncrementHttp2HpackHits() {
|
874
|
+
http2_global_stats().IncrementHttp2HpackHits();
|
875
|
+
}
|
876
|
+
void IncrementHttp2HpackMisses() {
|
877
|
+
http2_global_stats().IncrementHttp2HpackMisses();
|
878
|
+
}
|
827
879
|
void IncrementHttp2WritesBegun() {
|
828
880
|
++data_.http2_writes_begun;
|
829
|
-
|
881
|
+
http2_global_stats().IncrementHttp2WritesBegun();
|
882
|
+
}
|
883
|
+
void IncrementHttp2SendMessageSize(int value) {
|
884
|
+
http2_global_stats().IncrementHttp2SendMessageSize(value);
|
885
|
+
}
|
886
|
+
void IncrementHttp2MetadataSize(int value) {
|
887
|
+
http2_global_stats().IncrementHttp2MetadataSize(value);
|
888
|
+
}
|
889
|
+
void IncrementHttp2HpackEntryLifetime(int value) {
|
890
|
+
http2_global_stats().IncrementHttp2HpackEntryLifetime(value);
|
891
|
+
}
|
892
|
+
void IncrementHttp2HeaderTableSize(int value) {
|
893
|
+
http2_global_stats().IncrementHttp2HeaderTableSize(value);
|
894
|
+
}
|
895
|
+
void IncrementHttp2InitialWindowSize(int value) {
|
896
|
+
http2_global_stats().IncrementHttp2InitialWindowSize(value);
|
897
|
+
}
|
898
|
+
void IncrementHttp2MaxConcurrentStreams(int value) {
|
899
|
+
http2_global_stats().IncrementHttp2MaxConcurrentStreams(value);
|
900
|
+
}
|
901
|
+
void IncrementHttp2MaxFrameSize(int value) {
|
902
|
+
http2_global_stats().IncrementHttp2MaxFrameSize(value);
|
903
|
+
}
|
904
|
+
void IncrementHttp2MaxHeaderListSize(int value) {
|
905
|
+
http2_global_stats().IncrementHttp2MaxHeaderListSize(value);
|
906
|
+
}
|
907
|
+
void IncrementHttp2PreferredReceiveCryptoMessageSize(int value) {
|
908
|
+
http2_global_stats().IncrementHttp2PreferredReceiveCryptoMessageSize(value);
|
909
|
+
}
|
910
|
+
void IncrementHttp2StreamRemoteWindowUpdate(int value) {
|
911
|
+
http2_global_stats().IncrementHttp2StreamRemoteWindowUpdate(value);
|
912
|
+
}
|
913
|
+
void IncrementHttp2TransportRemoteWindowUpdate(int value) {
|
914
|
+
http2_global_stats().IncrementHttp2TransportRemoteWindowUpdate(value);
|
915
|
+
}
|
916
|
+
void IncrementHttp2TransportWindowUpdatePeriod(int value) {
|
917
|
+
http2_global_stats().IncrementHttp2TransportWindowUpdatePeriod(value);
|
918
|
+
}
|
919
|
+
void IncrementHttp2StreamWindowUpdatePeriod(int value) {
|
920
|
+
http2_global_stats().IncrementHttp2StreamWindowUpdatePeriod(value);
|
921
|
+
}
|
922
|
+
void IncrementHttp2WriteDataFrameSize(int value) {
|
923
|
+
http2_global_stats().IncrementHttp2WriteDataFrameSize(value);
|
924
|
+
}
|
925
|
+
void IncrementHttp2ReadDataFrameSize(int value) {
|
926
|
+
http2_global_stats().IncrementHttp2ReadDataFrameSize(value);
|
830
927
|
}
|
831
928
|
void IncrementHttp2WriteTargetSize(int value) {
|
832
929
|
data_.http2_write_target_size.Increment(value);
|
833
|
-
|
930
|
+
http2_global_stats().IncrementHttp2WriteTargetSize(value);
|
834
931
|
}
|
835
932
|
|
836
933
|
private:
|