grpc 1.73.0 → 1.74.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 +38 -17
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +11 -5
- 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/interception_chain.h +7 -11
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +270 -181
- data/src/core/channelz/channelz.h +168 -55
- data/src/core/channelz/channelz_registry.cc +2 -1
- data/src/core/channelz/channelz_registry.h +24 -0
- data/src/core/channelz/property_list.cc +357 -0
- data/src/core/channelz/property_list.h +202 -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 +19 -29
- 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/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 +43 -19
- data/src/core/client_channel/subchannel.h +8 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +1 -0
- data/src/core/config/core_configuration.h +11 -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/channel_creds_registry_init.cc +1 -1
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- 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_authority_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- 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 +162 -115
- 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.h +22 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -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 +299 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -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 +1017 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
- 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 +43 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -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 +2 -4
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -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_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/writing.cc +37 -11
- 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 +984 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -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/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 +135 -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 +0 -25
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- 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 +6 -5
- data/src/core/handshaker/security/secure_endpoint.cc +70 -25
- 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.h +5 -5
- 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 +48 -2
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -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 +130 -162
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
- 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 +29 -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/posix_endpoint.cc +145 -92
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
- 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 +10 -170
- 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 +4 -0
- 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 +45 -93
- data/src/core/lib/experiments/experiments.h +21 -51
- 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/tcp_posix.cc +12 -6
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +1 -0
- 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 +50 -1
- data/src/core/lib/promise/party.h +66 -1
- 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/slice/slice.h +5 -0
- 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/filter_stack_call.cc +18 -9
- 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/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 +3 -0
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- 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 +21 -6
- 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 +83 -12
- data/src/core/server/server.h +21 -2
- 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_impl.h +1 -1
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/stats_data.cc +233 -207
- data/src/core/telemetry/stats_data.h +250 -153
- data/src/core/telemetry/tcp_tracer.h +1 -1
- 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 +2 -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/latent_see.h +8 -5
- 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 +2 -2
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +53 -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/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_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 +72 -568
- 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 +1 -1
- 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
- metadata +72 -20
- 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/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
@@ -23,14 +23,21 @@
|
|
23
23
|
#include <stddef.h>
|
24
24
|
#include <stdint.h>
|
25
25
|
|
26
|
-
#include <memory>
|
27
|
-
#include <utility>
|
28
26
|
#include <vector>
|
29
27
|
|
30
|
-
#include "src/core/telemetry/tcp_tracer.h"
|
31
|
-
|
32
28
|
namespace grpc_core {
|
33
29
|
|
30
|
+
class Arena;
|
31
|
+
|
32
|
+
using CopyContextFn = void* (*)(Arena*);
|
33
|
+
using DeleteContextFn = void (*)(void*);
|
34
|
+
|
35
|
+
void GrpcHttp2SetCopyContextFn(CopyContextFn fn);
|
36
|
+
void GrpcHttp2SetDeleteContextFn(DeleteContextFn fn);
|
37
|
+
|
38
|
+
CopyContextFn GrpcHttp2GetCopyContextFn();
|
39
|
+
DeleteContextFn GrpcHttp2GetDeleteContextFn();
|
40
|
+
|
34
41
|
/// An RPC trace context and associated information. Each RPC/stream is
|
35
42
|
/// associated with a unique \a context. A new ContextList entry is created when
|
36
43
|
/// a chunk of data stored in an outgoing buffer is going to be
|
@@ -41,25 +48,48 @@ class ContextListEntry {
|
|
41
48
|
public:
|
42
49
|
ContextListEntry(void* context, int64_t outbuf_offset,
|
43
50
|
int64_t num_traced_bytes, size_t byte_offset,
|
44
|
-
size_t stream_index
|
45
|
-
std::shared_ptr<TcpCallTracer> tcp_tracer)
|
51
|
+
size_t stream_index)
|
46
52
|
: trace_context_(context),
|
47
53
|
outbuf_offset_(outbuf_offset),
|
48
54
|
num_traced_bytes_in_chunk_(num_traced_bytes),
|
49
55
|
byte_offset_in_stream_(byte_offset),
|
50
|
-
stream_index_(stream_index)
|
51
|
-
tcp_tracer_(std::move(tcp_tracer)) {}
|
56
|
+
stream_index_(stream_index) {}
|
52
57
|
|
53
58
|
ContextListEntry() = delete;
|
59
|
+
ContextListEntry(const ContextListEntry&) = delete;
|
60
|
+
ContextListEntry& operator=(const ContextListEntry&) = delete;
|
61
|
+
|
62
|
+
ContextListEntry(ContextListEntry&& other) noexcept
|
63
|
+
: trace_context_(other.trace_context_),
|
64
|
+
outbuf_offset_(other.outbuf_offset_),
|
65
|
+
num_traced_bytes_in_chunk_(other.num_traced_bytes_in_chunk_),
|
66
|
+
byte_offset_in_stream_(other.byte_offset_in_stream_),
|
67
|
+
stream_index_(other.stream_index_) {
|
68
|
+
other.trace_context_ = nullptr;
|
69
|
+
}
|
70
|
+
ContextListEntry& operator=(ContextListEntry&& other) noexcept {
|
71
|
+
if (this != &other) {
|
72
|
+
trace_context_ = other.trace_context_;
|
73
|
+
other.trace_context_ = nullptr;
|
74
|
+
outbuf_offset_ = other.outbuf_offset_;
|
75
|
+
num_traced_bytes_in_chunk_ = other.num_traced_bytes_in_chunk_;
|
76
|
+
byte_offset_in_stream_ = other.byte_offset_in_stream_;
|
77
|
+
stream_index_ = other.stream_index_;
|
78
|
+
}
|
79
|
+
return *this;
|
80
|
+
}
|
81
|
+
|
82
|
+
~ContextListEntry() {
|
83
|
+
if (trace_context_ != nullptr) {
|
84
|
+
GrpcHttp2GetDeleteContextFn()(trace_context_);
|
85
|
+
}
|
86
|
+
}
|
54
87
|
|
55
88
|
void* TraceContext() { return trace_context_; }
|
56
89
|
int64_t OutbufOffset() { return outbuf_offset_; }
|
57
90
|
int64_t NumTracedBytesInChunk() { return num_traced_bytes_in_chunk_; }
|
58
91
|
size_t ByteOffsetInStream() { return byte_offset_in_stream_; }
|
59
92
|
size_t StreamIndex() { return stream_index_; }
|
60
|
-
std::shared_ptr<TcpCallTracer> ReleaseTcpTracer() {
|
61
|
-
return std::move(tcp_tracer_);
|
62
|
-
}
|
63
93
|
|
64
94
|
private:
|
65
95
|
void* trace_context_;
|
@@ -72,11 +102,11 @@ class ContextListEntry {
|
|
72
102
|
// Index of the current chunk in the RPC stream.
|
73
103
|
// Set to zero for the first chunk of the RPC stream.
|
74
104
|
size_t stream_index_;
|
75
|
-
std::shared_ptr<TcpCallTracer> tcp_tracer_;
|
76
105
|
};
|
77
106
|
|
78
107
|
/// A list of RPC Contexts
|
79
108
|
typedef std::vector<ContextListEntry> ContextList;
|
109
|
+
|
80
110
|
} // namespace grpc_core
|
81
111
|
|
82
112
|
#endif // GRPC_SRC_CORE_TELEMETRY_CONTEXT_LIST_ENTRY_H
|
@@ -398,13 +398,6 @@ const absl::string_view
|
|
398
398
|
"syscall_read",
|
399
399
|
"tcp_read_alloc_8k",
|
400
400
|
"tcp_read_alloc_64k",
|
401
|
-
"http2_settings_writes",
|
402
|
-
"http2_pings_sent",
|
403
|
-
"http2_writes_begun",
|
404
|
-
"http2_transport_stalls",
|
405
|
-
"http2_stream_stalls",
|
406
|
-
"http2_hpack_hits",
|
407
|
-
"http2_hpack_misses",
|
408
401
|
"cq_pluck_creates",
|
409
402
|
"cq_next_creates",
|
410
403
|
"cq_callback_creates",
|
@@ -439,15 +432,6 @@ const absl::string_view GlobalStats::counter_doc[static_cast<int>(
|
|
439
432
|
"Number of read syscalls (or equivalent - eg recvmsg) made by this process",
|
440
433
|
"Number of 8k allocations by the TCP subsystem for reading",
|
441
434
|
"Number of 64k allocations by the TCP subsystem for reading",
|
442
|
-
"Number of settings frames sent",
|
443
|
-
"Number of HTTP2 pings sent by process",
|
444
|
-
"Number of HTTP2 writes initiated",
|
445
|
-
"Number of times sending was completely stalled by the transport flow "
|
446
|
-
"control window",
|
447
|
-
"Number of times sending was completely stalled by the stream flow control "
|
448
|
-
"window",
|
449
|
-
"Number of HPACK cache hits",
|
450
|
-
"Number of HPACK cache misses (entries added but never used)",
|
451
435
|
"Number of completion queues created for cq_pluck (indicates sync api "
|
452
436
|
"usage)",
|
453
437
|
"Number of completion queues created for cq_next (indicates cq async api "
|
@@ -477,22 +461,6 @@ const absl::string_view
|
|
477
461
|
"tcp_read_size",
|
478
462
|
"tcp_read_offer",
|
479
463
|
"tcp_read_offer_iov_size",
|
480
|
-
"http2_send_message_size",
|
481
|
-
"http2_metadata_size",
|
482
|
-
"http2_hpack_entry_lifetime",
|
483
|
-
"http2_header_table_size",
|
484
|
-
"http2_initial_window_size",
|
485
|
-
"http2_max_concurrent_streams",
|
486
|
-
"http2_max_frame_size",
|
487
|
-
"http2_max_header_list_size",
|
488
|
-
"http2_preferred_receive_crypto_message_size",
|
489
|
-
"http2_stream_remote_window_update",
|
490
|
-
"http2_transport_remote_window_update",
|
491
|
-
"http2_transport_window_update_period",
|
492
|
-
"http2_stream_window_update_period",
|
493
|
-
"http2_write_target_size",
|
494
|
-
"http2_write_data_frame_size",
|
495
|
-
"http2_read_data_frame_size",
|
496
464
|
"wrr_subchannel_list_size",
|
497
465
|
"wrr_subchannel_ready_size",
|
498
466
|
"work_serializer_run_time_ms",
|
@@ -522,23 +490,6 @@ const absl::string_view GlobalStats::histogram_doc[static_cast<int>(
|
|
522
490
|
"Number of bytes received by each syscall_read",
|
523
491
|
"Number of bytes offered to each syscall_read",
|
524
492
|
"Number of byte segments offered to each syscall_read",
|
525
|
-
"Size of messages received by HTTP2 transport",
|
526
|
-
"Number of bytes consumed by metadata, according to HPACK accounting rules",
|
527
|
-
"Lifetime of HPACK entries in the cache (in milliseconds)",
|
528
|
-
"Http2 header table size received through SETTINGS frame",
|
529
|
-
"Http2 initial window size received through SETTINGS frame",
|
530
|
-
"Http2 max concurrent streams received through SETTINGS frame",
|
531
|
-
"Http2 max frame size received through SETTINGS frame",
|
532
|
-
"Http2 max header list size received through SETTINGS frame",
|
533
|
-
"Http2 preferred receive crypto message size received through SETTINGS "
|
534
|
-
"frame",
|
535
|
-
"Stream window update sent by peer",
|
536
|
-
"Transport window update sent by peer",
|
537
|
-
"Period in milliseconds at which peer sends transport window update",
|
538
|
-
"Period in milliseconds at which peer sends stream window update",
|
539
|
-
"Number of bytes targetted for http2 writes",
|
540
|
-
"Number of bytes for each data frame written",
|
541
|
-
"Number of bytes for each data frame read",
|
542
493
|
"Number of subchannels in a subchannel list at picker creation time",
|
543
494
|
"Number of READY subchannels in a subchannel list at picker creation time",
|
544
495
|
"Number of milliseconds work serializers run for",
|
@@ -575,13 +526,6 @@ GlobalStats::GlobalStats()
|
|
575
526
|
syscall_read{0},
|
576
527
|
tcp_read_alloc_8k{0},
|
577
528
|
tcp_read_alloc_64k{0},
|
578
|
-
http2_settings_writes{0},
|
579
|
-
http2_pings_sent{0},
|
580
|
-
http2_writes_begun{0},
|
581
|
-
http2_transport_stalls{0},
|
582
|
-
http2_stream_stalls{0},
|
583
|
-
http2_hpack_hits{0},
|
584
|
-
http2_hpack_misses{0},
|
585
529
|
cq_pluck_creates{0},
|
586
530
|
cq_next_creates{0},
|
587
531
|
cq_callback_creates{0},
|
@@ -621,55 +565,6 @@ HistogramView GlobalStats::histogram(Histogram which) const {
|
|
621
565
|
case Histogram::kTcpReadOfferIovSize:
|
622
566
|
return HistogramView{&Histogram_80_10_64::BucketFor, kStatsTable14, 10,
|
623
567
|
tcp_read_offer_iov_size.buckets()};
|
624
|
-
case Histogram::kHttp2SendMessageSize:
|
625
|
-
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
626
|
-
20, http2_send_message_size.buckets()};
|
627
|
-
case Histogram::kHttp2MetadataSize:
|
628
|
-
return HistogramView{&Histogram_65536_26_64::BucketFor, kStatsTable6, 26,
|
629
|
-
http2_metadata_size.buckets()};
|
630
|
-
case Histogram::kHttp2HpackEntryLifetime:
|
631
|
-
return HistogramView{&Histogram_1800000_40_64::BucketFor, kStatsTable16,
|
632
|
-
40, http2_hpack_entry_lifetime.buckets()};
|
633
|
-
case Histogram::kHttp2HeaderTableSize:
|
634
|
-
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
635
|
-
20, http2_header_table_size.buckets()};
|
636
|
-
case Histogram::kHttp2InitialWindowSize:
|
637
|
-
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
638
|
-
50, http2_initial_window_size.buckets()};
|
639
|
-
case Histogram::kHttp2MaxConcurrentStreams:
|
640
|
-
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
641
|
-
20, http2_max_concurrent_streams.buckets()};
|
642
|
-
case Histogram::kHttp2MaxFrameSize:
|
643
|
-
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
644
|
-
50, http2_max_frame_size.buckets()};
|
645
|
-
case Histogram::kHttp2MaxHeaderListSize:
|
646
|
-
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
647
|
-
20, http2_max_header_list_size.buckets()};
|
648
|
-
case Histogram::kHttp2PreferredReceiveCryptoMessageSize:
|
649
|
-
return HistogramView{
|
650
|
-
&Histogram_16777216_20_64::BucketFor, kStatsTable0, 20,
|
651
|
-
http2_preferred_receive_crypto_message_size.buckets()};
|
652
|
-
case Histogram::kHttp2StreamRemoteWindowUpdate:
|
653
|
-
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
654
|
-
20, http2_stream_remote_window_update.buckets()};
|
655
|
-
case Histogram::kHttp2TransportRemoteWindowUpdate:
|
656
|
-
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
657
|
-
20, http2_transport_remote_window_update.buckets()};
|
658
|
-
case Histogram::kHttp2TransportWindowUpdatePeriod:
|
659
|
-
return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
|
660
|
-
http2_transport_window_update_period.buckets()};
|
661
|
-
case Histogram::kHttp2StreamWindowUpdatePeriod:
|
662
|
-
return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
|
663
|
-
http2_stream_window_update_period.buckets()};
|
664
|
-
case Histogram::kHttp2WriteTargetSize:
|
665
|
-
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
666
|
-
50, http2_write_target_size.buckets()};
|
667
|
-
case Histogram::kHttp2WriteDataFrameSize:
|
668
|
-
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
669
|
-
50, http2_write_data_frame_size.buckets()};
|
670
|
-
case Histogram::kHttp2ReadDataFrameSize:
|
671
|
-
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
672
|
-
50, http2_read_data_frame_size.buckets()};
|
673
568
|
case Histogram::kWrrSubchannelListSize:
|
674
569
|
return HistogramView{&Histogram_10000_20_64::BucketFor, kStatsTable4, 20,
|
675
570
|
wrr_subchannel_list_size.buckets()};
|
@@ -733,23 +628,6 @@ HistogramView GlobalStats::histogram(Histogram which) const {
|
|
733
628
|
20, chaotic_good_tcp_write_size_control.buckets()};
|
734
629
|
}
|
735
630
|
}
|
736
|
-
const absl::string_view
|
737
|
-
Http2Stats::counter_name[static_cast<int>(Counter::COUNT)] = {
|
738
|
-
"http2_writes_begun",
|
739
|
-
};
|
740
|
-
const absl::string_view
|
741
|
-
Http2Stats::counter_doc[static_cast<int>(Counter::COUNT)] = {
|
742
|
-
"Number of HTTP2 writes initiated",
|
743
|
-
};
|
744
|
-
const absl::string_view
|
745
|
-
Http2Stats::histogram_name[static_cast<int>(Histogram::COUNT)] = {
|
746
|
-
"http2_write_target_size",
|
747
|
-
};
|
748
|
-
const absl::string_view
|
749
|
-
Http2Stats::histogram_doc[static_cast<int>(Histogram::COUNT)] = {
|
750
|
-
"Number of bytes targetted for http2 writes",
|
751
|
-
};
|
752
|
-
Http2Stats::Http2Stats() : http2_writes_begun{0} {}
|
753
631
|
std::unique_ptr<GlobalStats> GlobalStatsCollector::Collect() const {
|
754
632
|
auto result = std::make_unique<GlobalStats>();
|
755
633
|
for (const auto& data : data_) {
|
@@ -777,20 +655,6 @@ std::unique_ptr<GlobalStats> GlobalStatsCollector::Collect() const {
|
|
777
655
|
data.tcp_read_alloc_8k.load(std::memory_order_relaxed);
|
778
656
|
result->tcp_read_alloc_64k +=
|
779
657
|
data.tcp_read_alloc_64k.load(std::memory_order_relaxed);
|
780
|
-
result->http2_settings_writes +=
|
781
|
-
data.http2_settings_writes.load(std::memory_order_relaxed);
|
782
|
-
result->http2_pings_sent +=
|
783
|
-
data.http2_pings_sent.load(std::memory_order_relaxed);
|
784
|
-
result->http2_writes_begun +=
|
785
|
-
data.http2_writes_begun.load(std::memory_order_relaxed);
|
786
|
-
result->http2_transport_stalls +=
|
787
|
-
data.http2_transport_stalls.load(std::memory_order_relaxed);
|
788
|
-
result->http2_stream_stalls +=
|
789
|
-
data.http2_stream_stalls.load(std::memory_order_relaxed);
|
790
|
-
result->http2_hpack_hits +=
|
791
|
-
data.http2_hpack_hits.load(std::memory_order_relaxed);
|
792
|
-
result->http2_hpack_misses +=
|
793
|
-
data.http2_hpack_misses.load(std::memory_order_relaxed);
|
794
658
|
result->cq_pluck_creates +=
|
795
659
|
data.cq_pluck_creates.load(std::memory_order_relaxed);
|
796
660
|
result->cq_next_creates +=
|
@@ -827,32 +691,6 @@ std::unique_ptr<GlobalStats> GlobalStatsCollector::Collect() const {
|
|
827
691
|
data.tcp_read_size.Collect(&result->tcp_read_size);
|
828
692
|
data.tcp_read_offer.Collect(&result->tcp_read_offer);
|
829
693
|
data.tcp_read_offer_iov_size.Collect(&result->tcp_read_offer_iov_size);
|
830
|
-
data.http2_send_message_size.Collect(&result->http2_send_message_size);
|
831
|
-
data.http2_metadata_size.Collect(&result->http2_metadata_size);
|
832
|
-
data.http2_hpack_entry_lifetime.Collect(
|
833
|
-
&result->http2_hpack_entry_lifetime);
|
834
|
-
data.http2_header_table_size.Collect(&result->http2_header_table_size);
|
835
|
-
data.http2_initial_window_size.Collect(&result->http2_initial_window_size);
|
836
|
-
data.http2_max_concurrent_streams.Collect(
|
837
|
-
&result->http2_max_concurrent_streams);
|
838
|
-
data.http2_max_frame_size.Collect(&result->http2_max_frame_size);
|
839
|
-
data.http2_max_header_list_size.Collect(
|
840
|
-
&result->http2_max_header_list_size);
|
841
|
-
data.http2_preferred_receive_crypto_message_size.Collect(
|
842
|
-
&result->http2_preferred_receive_crypto_message_size);
|
843
|
-
data.http2_stream_remote_window_update.Collect(
|
844
|
-
&result->http2_stream_remote_window_update);
|
845
|
-
data.http2_transport_remote_window_update.Collect(
|
846
|
-
&result->http2_transport_remote_window_update);
|
847
|
-
data.http2_transport_window_update_period.Collect(
|
848
|
-
&result->http2_transport_window_update_period);
|
849
|
-
data.http2_stream_window_update_period.Collect(
|
850
|
-
&result->http2_stream_window_update_period);
|
851
|
-
data.http2_write_target_size.Collect(&result->http2_write_target_size);
|
852
|
-
data.http2_write_data_frame_size.Collect(
|
853
|
-
&result->http2_write_data_frame_size);
|
854
|
-
data.http2_read_data_frame_size.Collect(
|
855
|
-
&result->http2_read_data_frame_size);
|
856
694
|
data.wrr_subchannel_list_size.Collect(&result->wrr_subchannel_list_size);
|
857
695
|
data.wrr_subchannel_ready_size.Collect(&result->wrr_subchannel_ready_size);
|
858
696
|
data.work_serializer_run_time_ms.Collect(
|
@@ -916,15 +754,6 @@ std::unique_ptr<GlobalStats> GlobalStats::Diff(const GlobalStats& other) const {
|
|
916
754
|
result->syscall_read = syscall_read - other.syscall_read;
|
917
755
|
result->tcp_read_alloc_8k = tcp_read_alloc_8k - other.tcp_read_alloc_8k;
|
918
756
|
result->tcp_read_alloc_64k = tcp_read_alloc_64k - other.tcp_read_alloc_64k;
|
919
|
-
result->http2_settings_writes =
|
920
|
-
http2_settings_writes - other.http2_settings_writes;
|
921
|
-
result->http2_pings_sent = http2_pings_sent - other.http2_pings_sent;
|
922
|
-
result->http2_writes_begun = http2_writes_begun - other.http2_writes_begun;
|
923
|
-
result->http2_transport_stalls =
|
924
|
-
http2_transport_stalls - other.http2_transport_stalls;
|
925
|
-
result->http2_stream_stalls = http2_stream_stalls - other.http2_stream_stalls;
|
926
|
-
result->http2_hpack_hits = http2_hpack_hits - other.http2_hpack_hits;
|
927
|
-
result->http2_hpack_misses = http2_hpack_misses - other.http2_hpack_misses;
|
928
757
|
result->cq_pluck_creates = cq_pluck_creates - other.cq_pluck_creates;
|
929
758
|
result->cq_next_creates = cq_next_creates - other.cq_next_creates;
|
930
759
|
result->cq_callback_creates = cq_callback_creates - other.cq_callback_creates;
|
@@ -953,42 +782,6 @@ std::unique_ptr<GlobalStats> GlobalStats::Diff(const GlobalStats& other) const {
|
|
953
782
|
result->tcp_read_offer = tcp_read_offer - other.tcp_read_offer;
|
954
783
|
result->tcp_read_offer_iov_size =
|
955
784
|
tcp_read_offer_iov_size - other.tcp_read_offer_iov_size;
|
956
|
-
result->http2_send_message_size =
|
957
|
-
http2_send_message_size - other.http2_send_message_size;
|
958
|
-
result->http2_metadata_size = http2_metadata_size - other.http2_metadata_size;
|
959
|
-
result->http2_hpack_entry_lifetime =
|
960
|
-
http2_hpack_entry_lifetime - other.http2_hpack_entry_lifetime;
|
961
|
-
result->http2_header_table_size =
|
962
|
-
http2_header_table_size - other.http2_header_table_size;
|
963
|
-
result->http2_initial_window_size =
|
964
|
-
http2_initial_window_size - other.http2_initial_window_size;
|
965
|
-
result->http2_max_concurrent_streams =
|
966
|
-
http2_max_concurrent_streams - other.http2_max_concurrent_streams;
|
967
|
-
result->http2_max_frame_size =
|
968
|
-
http2_max_frame_size - other.http2_max_frame_size;
|
969
|
-
result->http2_max_header_list_size =
|
970
|
-
http2_max_header_list_size - other.http2_max_header_list_size;
|
971
|
-
result->http2_preferred_receive_crypto_message_size =
|
972
|
-
http2_preferred_receive_crypto_message_size -
|
973
|
-
other.http2_preferred_receive_crypto_message_size;
|
974
|
-
result->http2_stream_remote_window_update =
|
975
|
-
http2_stream_remote_window_update -
|
976
|
-
other.http2_stream_remote_window_update;
|
977
|
-
result->http2_transport_remote_window_update =
|
978
|
-
http2_transport_remote_window_update -
|
979
|
-
other.http2_transport_remote_window_update;
|
980
|
-
result->http2_transport_window_update_period =
|
981
|
-
http2_transport_window_update_period -
|
982
|
-
other.http2_transport_window_update_period;
|
983
|
-
result->http2_stream_window_update_period =
|
984
|
-
http2_stream_window_update_period -
|
985
|
-
other.http2_stream_window_update_period;
|
986
|
-
result->http2_write_target_size =
|
987
|
-
http2_write_target_size - other.http2_write_target_size;
|
988
|
-
result->http2_write_data_frame_size =
|
989
|
-
http2_write_data_frame_size - other.http2_write_data_frame_size;
|
990
|
-
result->http2_read_data_frame_size =
|
991
|
-
http2_read_data_frame_size - other.http2_read_data_frame_size;
|
992
785
|
result->wrr_subchannel_list_size =
|
993
786
|
wrr_subchannel_list_size - other.wrr_subchannel_list_size;
|
994
787
|
result->wrr_subchannel_ready_size =
|
@@ -1043,4 +836,237 @@ std::unique_ptr<GlobalStats> GlobalStats::Diff(const GlobalStats& other) const {
|
|
1043
836
|
other.chaotic_good_tcp_write_size_control;
|
1044
837
|
return result;
|
1045
838
|
}
|
839
|
+
const absl::string_view
|
840
|
+
Http2GlobalStats::counter_name[static_cast<int>(Counter::COUNT)] = {
|
841
|
+
"http2_settings_writes", "http2_pings_sent", "http2_transport_stalls",
|
842
|
+
"http2_stream_stalls", "http2_hpack_hits", "http2_hpack_misses",
|
843
|
+
"http2_writes_begun",
|
844
|
+
};
|
845
|
+
const absl::string_view
|
846
|
+
Http2GlobalStats::counter_doc[static_cast<int>(Counter::COUNT)] = {
|
847
|
+
"Number of settings frames sent",
|
848
|
+
"Number of HTTP2 pings sent by process",
|
849
|
+
"Number of times sending was completely stalled by the transport flow "
|
850
|
+
"control window",
|
851
|
+
"Number of times sending was completely stalled by the stream flow "
|
852
|
+
"control window",
|
853
|
+
"Number of HPACK cache hits",
|
854
|
+
"Number of HPACK cache misses (entries added but never used)",
|
855
|
+
"Number of HTTP2 writes initiated",
|
856
|
+
};
|
857
|
+
const absl::string_view
|
858
|
+
Http2GlobalStats::histogram_name[static_cast<int>(Histogram::COUNT)] = {
|
859
|
+
"http2_send_message_size",
|
860
|
+
"http2_metadata_size",
|
861
|
+
"http2_hpack_entry_lifetime",
|
862
|
+
"http2_header_table_size",
|
863
|
+
"http2_initial_window_size",
|
864
|
+
"http2_max_concurrent_streams",
|
865
|
+
"http2_max_frame_size",
|
866
|
+
"http2_max_header_list_size",
|
867
|
+
"http2_preferred_receive_crypto_message_size",
|
868
|
+
"http2_stream_remote_window_update",
|
869
|
+
"http2_transport_remote_window_update",
|
870
|
+
"http2_transport_window_update_period",
|
871
|
+
"http2_stream_window_update_period",
|
872
|
+
"http2_write_data_frame_size",
|
873
|
+
"http2_read_data_frame_size",
|
874
|
+
"http2_write_target_size",
|
875
|
+
};
|
876
|
+
const absl::string_view Http2GlobalStats::histogram_doc[static_cast<int>(
|
877
|
+
Histogram::COUNT)] = {
|
878
|
+
"Size of messages received by HTTP2 transport",
|
879
|
+
"Number of bytes consumed by metadata, according to HPACK accounting rules",
|
880
|
+
"Lifetime of HPACK entries in the cache (in milliseconds)",
|
881
|
+
"Http2 header table size received through SETTINGS frame",
|
882
|
+
"Http2 initial window size received through SETTINGS frame",
|
883
|
+
"Http2 max concurrent streams received through SETTINGS frame",
|
884
|
+
"Http2 max frame size received through SETTINGS frame",
|
885
|
+
"Http2 max header list size received through SETTINGS frame",
|
886
|
+
"Http2 preferred receive crypto message size received through SETTINGS "
|
887
|
+
"frame",
|
888
|
+
"Stream window update sent by peer",
|
889
|
+
"Transport window update sent by peer",
|
890
|
+
"Period in milliseconds at which peer sends transport window update",
|
891
|
+
"Period in milliseconds at which peer sends stream window update",
|
892
|
+
"Number of bytes for each data frame written",
|
893
|
+
"Number of bytes for each data frame read",
|
894
|
+
"Number of bytes targeted for http2 writes",
|
895
|
+
};
|
896
|
+
Http2GlobalStats::Http2GlobalStats()
|
897
|
+
: http2_settings_writes{0},
|
898
|
+
http2_pings_sent{0},
|
899
|
+
http2_transport_stalls{0},
|
900
|
+
http2_stream_stalls{0},
|
901
|
+
http2_hpack_hits{0},
|
902
|
+
http2_hpack_misses{0},
|
903
|
+
http2_writes_begun{0} {}
|
904
|
+
HistogramView Http2GlobalStats::histogram(Histogram which) const {
|
905
|
+
switch (which) {
|
906
|
+
default:
|
907
|
+
GPR_UNREACHABLE_CODE(return HistogramView());
|
908
|
+
case Histogram::kHttp2SendMessageSize:
|
909
|
+
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
910
|
+
20, http2_send_message_size.buckets()};
|
911
|
+
case Histogram::kHttp2MetadataSize:
|
912
|
+
return HistogramView{&Histogram_65536_26_64::BucketFor, kStatsTable6, 26,
|
913
|
+
http2_metadata_size.buckets()};
|
914
|
+
case Histogram::kHttp2HpackEntryLifetime:
|
915
|
+
return HistogramView{&Histogram_1800000_40_64::BucketFor, kStatsTable16,
|
916
|
+
40, http2_hpack_entry_lifetime.buckets()};
|
917
|
+
case Histogram::kHttp2HeaderTableSize:
|
918
|
+
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
919
|
+
20, http2_header_table_size.buckets()};
|
920
|
+
case Histogram::kHttp2InitialWindowSize:
|
921
|
+
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
922
|
+
50, http2_initial_window_size.buckets()};
|
923
|
+
case Histogram::kHttp2MaxConcurrentStreams:
|
924
|
+
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
925
|
+
20, http2_max_concurrent_streams.buckets()};
|
926
|
+
case Histogram::kHttp2MaxFrameSize:
|
927
|
+
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
928
|
+
50, http2_max_frame_size.buckets()};
|
929
|
+
case Histogram::kHttp2MaxHeaderListSize:
|
930
|
+
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
931
|
+
20, http2_max_header_list_size.buckets()};
|
932
|
+
case Histogram::kHttp2PreferredReceiveCryptoMessageSize:
|
933
|
+
return HistogramView{
|
934
|
+
&Histogram_16777216_20_64::BucketFor, kStatsTable0, 20,
|
935
|
+
http2_preferred_receive_crypto_message_size.buckets()};
|
936
|
+
case Histogram::kHttp2StreamRemoteWindowUpdate:
|
937
|
+
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
938
|
+
20, http2_stream_remote_window_update.buckets()};
|
939
|
+
case Histogram::kHttp2TransportRemoteWindowUpdate:
|
940
|
+
return HistogramView{&Histogram_16777216_20_64::BucketFor, kStatsTable0,
|
941
|
+
20, http2_transport_remote_window_update.buckets()};
|
942
|
+
case Histogram::kHttp2TransportWindowUpdatePeriod:
|
943
|
+
return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
|
944
|
+
http2_transport_window_update_period.buckets()};
|
945
|
+
case Histogram::kHttp2StreamWindowUpdatePeriod:
|
946
|
+
return HistogramView{&Histogram_100000_20_64::BucketFor, kStatsTable2, 20,
|
947
|
+
http2_stream_window_update_period.buckets()};
|
948
|
+
case Histogram::kHttp2WriteDataFrameSize:
|
949
|
+
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
950
|
+
50, http2_write_data_frame_size.buckets()};
|
951
|
+
case Histogram::kHttp2ReadDataFrameSize:
|
952
|
+
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
953
|
+
50, http2_read_data_frame_size.buckets()};
|
954
|
+
case Histogram::kHttp2WriteTargetSize:
|
955
|
+
return HistogramView{&Histogram_16777216_50_64::BucketFor, kStatsTable12,
|
956
|
+
50, http2_write_target_size.buckets()};
|
957
|
+
}
|
958
|
+
}
|
959
|
+
std::unique_ptr<Http2GlobalStats> Http2GlobalStatsCollector::Collect() const {
|
960
|
+
auto result = std::make_unique<Http2GlobalStats>();
|
961
|
+
for (const auto& data : data_) {
|
962
|
+
result->http2_settings_writes +=
|
963
|
+
data.http2_settings_writes.load(std::memory_order_relaxed);
|
964
|
+
result->http2_pings_sent +=
|
965
|
+
data.http2_pings_sent.load(std::memory_order_relaxed);
|
966
|
+
result->http2_transport_stalls +=
|
967
|
+
data.http2_transport_stalls.load(std::memory_order_relaxed);
|
968
|
+
result->http2_stream_stalls +=
|
969
|
+
data.http2_stream_stalls.load(std::memory_order_relaxed);
|
970
|
+
result->http2_hpack_hits +=
|
971
|
+
data.http2_hpack_hits.load(std::memory_order_relaxed);
|
972
|
+
result->http2_hpack_misses +=
|
973
|
+
data.http2_hpack_misses.load(std::memory_order_relaxed);
|
974
|
+
result->http2_writes_begun +=
|
975
|
+
data.http2_writes_begun.load(std::memory_order_relaxed);
|
976
|
+
data.http2_send_message_size.Collect(&result->http2_send_message_size);
|
977
|
+
data.http2_metadata_size.Collect(&result->http2_metadata_size);
|
978
|
+
data.http2_hpack_entry_lifetime.Collect(
|
979
|
+
&result->http2_hpack_entry_lifetime);
|
980
|
+
data.http2_header_table_size.Collect(&result->http2_header_table_size);
|
981
|
+
data.http2_initial_window_size.Collect(&result->http2_initial_window_size);
|
982
|
+
data.http2_max_concurrent_streams.Collect(
|
983
|
+
&result->http2_max_concurrent_streams);
|
984
|
+
data.http2_max_frame_size.Collect(&result->http2_max_frame_size);
|
985
|
+
data.http2_max_header_list_size.Collect(
|
986
|
+
&result->http2_max_header_list_size);
|
987
|
+
data.http2_preferred_receive_crypto_message_size.Collect(
|
988
|
+
&result->http2_preferred_receive_crypto_message_size);
|
989
|
+
data.http2_stream_remote_window_update.Collect(
|
990
|
+
&result->http2_stream_remote_window_update);
|
991
|
+
data.http2_transport_remote_window_update.Collect(
|
992
|
+
&result->http2_transport_remote_window_update);
|
993
|
+
data.http2_transport_window_update_period.Collect(
|
994
|
+
&result->http2_transport_window_update_period);
|
995
|
+
data.http2_stream_window_update_period.Collect(
|
996
|
+
&result->http2_stream_window_update_period);
|
997
|
+
data.http2_write_data_frame_size.Collect(
|
998
|
+
&result->http2_write_data_frame_size);
|
999
|
+
data.http2_read_data_frame_size.Collect(
|
1000
|
+
&result->http2_read_data_frame_size);
|
1001
|
+
data.http2_write_target_size.Collect(&result->http2_write_target_size);
|
1002
|
+
}
|
1003
|
+
return result;
|
1004
|
+
}
|
1005
|
+
std::unique_ptr<Http2GlobalStats> Http2GlobalStats::Diff(
|
1006
|
+
const Http2GlobalStats& other) const {
|
1007
|
+
auto result = std::make_unique<Http2GlobalStats>();
|
1008
|
+
result->http2_settings_writes =
|
1009
|
+
http2_settings_writes - other.http2_settings_writes;
|
1010
|
+
result->http2_pings_sent = http2_pings_sent - other.http2_pings_sent;
|
1011
|
+
result->http2_transport_stalls =
|
1012
|
+
http2_transport_stalls - other.http2_transport_stalls;
|
1013
|
+
result->http2_stream_stalls = http2_stream_stalls - other.http2_stream_stalls;
|
1014
|
+
result->http2_hpack_hits = http2_hpack_hits - other.http2_hpack_hits;
|
1015
|
+
result->http2_hpack_misses = http2_hpack_misses - other.http2_hpack_misses;
|
1016
|
+
result->http2_writes_begun = http2_writes_begun - other.http2_writes_begun;
|
1017
|
+
result->http2_send_message_size =
|
1018
|
+
http2_send_message_size - other.http2_send_message_size;
|
1019
|
+
result->http2_metadata_size = http2_metadata_size - other.http2_metadata_size;
|
1020
|
+
result->http2_hpack_entry_lifetime =
|
1021
|
+
http2_hpack_entry_lifetime - other.http2_hpack_entry_lifetime;
|
1022
|
+
result->http2_header_table_size =
|
1023
|
+
http2_header_table_size - other.http2_header_table_size;
|
1024
|
+
result->http2_initial_window_size =
|
1025
|
+
http2_initial_window_size - other.http2_initial_window_size;
|
1026
|
+
result->http2_max_concurrent_streams =
|
1027
|
+
http2_max_concurrent_streams - other.http2_max_concurrent_streams;
|
1028
|
+
result->http2_max_frame_size =
|
1029
|
+
http2_max_frame_size - other.http2_max_frame_size;
|
1030
|
+
result->http2_max_header_list_size =
|
1031
|
+
http2_max_header_list_size - other.http2_max_header_list_size;
|
1032
|
+
result->http2_preferred_receive_crypto_message_size =
|
1033
|
+
http2_preferred_receive_crypto_message_size -
|
1034
|
+
other.http2_preferred_receive_crypto_message_size;
|
1035
|
+
result->http2_stream_remote_window_update =
|
1036
|
+
http2_stream_remote_window_update -
|
1037
|
+
other.http2_stream_remote_window_update;
|
1038
|
+
result->http2_transport_remote_window_update =
|
1039
|
+
http2_transport_remote_window_update -
|
1040
|
+
other.http2_transport_remote_window_update;
|
1041
|
+
result->http2_transport_window_update_period =
|
1042
|
+
http2_transport_window_update_period -
|
1043
|
+
other.http2_transport_window_update_period;
|
1044
|
+
result->http2_stream_window_update_period =
|
1045
|
+
http2_stream_window_update_period -
|
1046
|
+
other.http2_stream_window_update_period;
|
1047
|
+
result->http2_write_data_frame_size =
|
1048
|
+
http2_write_data_frame_size - other.http2_write_data_frame_size;
|
1049
|
+
result->http2_read_data_frame_size =
|
1050
|
+
http2_read_data_frame_size - other.http2_read_data_frame_size;
|
1051
|
+
result->http2_write_target_size =
|
1052
|
+
http2_write_target_size - other.http2_write_target_size;
|
1053
|
+
return result;
|
1054
|
+
}
|
1055
|
+
const absl::string_view
|
1056
|
+
Http2Stats::counter_name[static_cast<int>(Counter::COUNT)] = {
|
1057
|
+
"http2_writes_begun",
|
1058
|
+
};
|
1059
|
+
const absl::string_view
|
1060
|
+
Http2Stats::counter_doc[static_cast<int>(Counter::COUNT)] = {
|
1061
|
+
"Number of HTTP2 writes initiated",
|
1062
|
+
};
|
1063
|
+
const absl::string_view
|
1064
|
+
Http2Stats::histogram_name[static_cast<int>(Histogram::COUNT)] = {
|
1065
|
+
"http2_write_target_size",
|
1066
|
+
};
|
1067
|
+
const absl::string_view
|
1068
|
+
Http2Stats::histogram_doc[static_cast<int>(Histogram::COUNT)] = {
|
1069
|
+
"Number of bytes targeted for http2 writes",
|
1070
|
+
};
|
1071
|
+
Http2Stats::Http2Stats() : http2_writes_begun{0} {}
|
1046
1072
|
} // namespace grpc_core
|