grpc 1.64.3 → 1.65.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 +57 -58
- data/include/grpc/event_engine/event_engine.h +13 -6
- data/include/grpc/impl/channel_arg_names.h +7 -3
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/passive_listener.h +62 -0
- data/include/grpc/support/log.h +7 -17
- data/include/grpc/support/port_platform.h +3 -0
- data/src/core/channelz/channel_trace.cc +1 -1
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +3 -3
- data/src/core/channelz/channelz.h +7 -7
- data/src/core/channelz/channelz_registry.cc +4 -3
- data/src/core/client_channel/backup_poller.cc +4 -5
- data/src/core/client_channel/client_channel.cc +1324 -0
- data/src/core/client_channel/client_channel.h +243 -0
- data/src/core/client_channel/client_channel_filter.cc +266 -709
- data/src/core/client_channel/client_channel_filter.h +11 -64
- data/src/core/client_channel/client_channel_internal.h +16 -5
- data/src/core/client_channel/client_channel_plugin.cc +1 -14
- data/src/core/client_channel/client_channel_service_config.h +3 -3
- data/src/core/client_channel/config_selector.cc +1 -1
- data/src/core/client_channel/config_selector.h +1 -1
- data/src/core/client_channel/dynamic_filters.cc +3 -3
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
- data/src/core/client_channel/load_balanced_call_destination.h +49 -0
- data/src/core/client_channel/retry_filter.cc +2 -9
- data/src/core/client_channel/retry_filter.h +2 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
- data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
- data/src/core/client_channel/retry_service_config.cc +4 -5
- data/src/core/client_channel/retry_service_config.h +3 -3
- data/src/core/client_channel/subchannel.cc +220 -112
- data/src/core/client_channel/subchannel.h +31 -18
- data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
- data/src/core/client_channel/subchannel_pool_interface.h +2 -4
- data/src/core/client_channel/subchannel_stream_client.cc +36 -49
- data/src/core/client_channel/subchannel_stream_client.h +2 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
- data/src/core/ext/filters/census/grpc_context.cc +2 -4
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
- data/src/core/ext/filters/http/client_authority_filter.h +1 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
- data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
- data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
- data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
- data/src/core/handshaker/handshaker.cc +6 -14
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
- data/src/core/handshaker/security/secure_endpoint.cc +38 -32
- data/src/core/handshaker/security/secure_endpoint.h +0 -2
- data/src/core/handshaker/security/security_handshaker.cc +25 -37
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
- data/src/core/lib/address_utils/parse_address.cc +27 -39
- data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
- data/src/core/lib/avl/avl.h +1 -1
- data/src/core/lib/channel/channel_args.cc +13 -17
- data/src/core/lib/channel/channel_args.h +19 -8
- data/src/core/lib/channel/channel_stack.cc +5 -63
- data/src/core/lib/channel/channel_stack.h +13 -37
- data/src/core/lib/channel/channel_stack_builder.h +0 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
- data/src/core/lib/channel/connected_channel.cc +37 -676
- data/src/core/lib/channel/promise_based_filter.cc +41 -47
- data/src/core/lib/channel/promise_based_filter.h +124 -477
- data/src/core/lib/channel/status_util.cc +1 -1
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/message_compress.cc +6 -6
- data/src/core/lib/config/config_vars.cc +3 -8
- data/src/core/lib/config/config_vars.h +1 -5
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/trace.cc +43 -59
- data/src/core/lib/debug/trace.h +2 -97
- data/src/core/lib/debug/trace_flags.cc +255 -0
- data/src/core/lib/debug/trace_flags.h +133 -0
- data/src/core/lib/debug/trace_impl.h +115 -0
- data/src/core/lib/event_engine/ares_resolver.cc +5 -7
- data/src/core/lib/event_engine/ares_resolver.h +1 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
- data/src/core/lib/event_engine/event_engine.cc +29 -4
- data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
- data/src/core/lib/event_engine/forkable.cc +4 -5
- data/src/core/lib/event_engine/forkable.h +0 -11
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
- data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
- data/src/core/lib/event_engine/shim.cc +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
- data/src/core/lib/event_engine/thread_local.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
- data/src/core/lib/event_engine/trace.h +6 -17
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
- data/src/core/lib/event_engine/windows/win_socket.h +4 -5
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
- data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
- data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
- data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
- data/src/core/lib/experiments/experiments.cc +35 -151
- data/src/core/lib/experiments/experiments.h +12 -45
- data/src/core/lib/gprpp/bitset.h +1 -1
- data/src/core/lib/gprpp/crash.cc +2 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
- data/src/core/lib/gprpp/dump_args.cc +54 -0
- data/src/core/lib/gprpp/dump_args.h +69 -0
- data/src/core/lib/gprpp/glob.cc +70 -0
- data/src/core/lib/gprpp/glob.h +29 -0
- data/src/core/lib/gprpp/per_cpu.cc +1 -1
- data/src/core/lib/gprpp/posix/stat.cc +3 -4
- data/src/core/lib/gprpp/posix/thd.cc +8 -9
- data/src/core/lib/gprpp/ref_counted.h +30 -22
- data/src/core/lib/gprpp/single_set_ptr.h +5 -3
- data/src/core/lib/gprpp/status_helper.cc +11 -30
- data/src/core/lib/gprpp/status_helper.h +3 -31
- data/src/core/lib/gprpp/time.cc +3 -4
- data/src/core/lib/gprpp/time.h +3 -2
- data/src/core/lib/gprpp/unique_type_name.h +1 -1
- data/src/core/lib/gprpp/validation_errors.cc +10 -1
- data/src/core/lib/gprpp/validation_errors.h +11 -0
- data/src/core/lib/gprpp/windows/stat.cc +3 -4
- data/src/core/lib/gprpp/windows/thd.cc +3 -2
- data/src/core/lib/gprpp/work_serializer.cc +48 -57
- data/src/core/lib/iomgr/buffer_list.cc +4 -2
- data/src/core/lib/iomgr/call_combiner.cc +18 -27
- data/src/core/lib/iomgr/call_combiner.h +1 -3
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
- data/src/core/lib/iomgr/closure.h +2 -4
- data/src/core/lib/iomgr/combiner.cc +6 -8
- data/src/core/lib/iomgr/combiner.h +0 -2
- data/src/core/lib/iomgr/endpoint.cc +0 -6
- data/src/core/lib/iomgr/endpoint.h +0 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +13 -21
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +3 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
- data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
- data/src/core/lib/iomgr/ev_posix.cc +8 -9
- data/src/core/lib/iomgr/ev_posix.h +10 -7
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
- data/src/core/lib/iomgr/exec_ctx.cc +2 -2
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +6 -15
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +8 -10
- data/src/core/lib/iomgr/fork_windows.cc +3 -1
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
- data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
- data/src/core/lib/iomgr/iocp_windows.cc +4 -3
- data/src/core/lib/iomgr/iomgr.cc +13 -17
- data/src/core/lib/iomgr/lockfree_event.cc +3 -5
- data/src/core/lib/iomgr/pollset.h +0 -2
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
- data/src/core/lib/iomgr/socket_windows.cc +4 -6
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
- data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
- data/src/core/lib/iomgr/tcp_posix.cc +57 -84
- data/src/core/lib/iomgr/tcp_posix.h +0 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
- data/src/core/lib/iomgr/tcp_windows.cc +25 -41
- data/src/core/lib/iomgr/timer_generic.cc +17 -20
- data/src/core/lib/iomgr/timer_heap.cc +1 -1
- data/src/core/lib/iomgr/timer_manager.cc +17 -30
- data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
- data/src/core/lib/iomgr/vsock.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
- data/src/core/lib/promise/activity.h +27 -4
- data/src/core/lib/promise/cancel_callback.h +24 -0
- data/src/core/lib/promise/context.h +11 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -2
- data/src/core/lib/promise/detail/join_state.h +354 -398
- data/src/core/lib/promise/detail/promise_like.h +6 -5
- data/src/core/lib/promise/detail/seq_state.h +1178 -1178
- data/src/core/lib/promise/for_each.h +6 -6
- data/src/core/lib/promise/interceptor_list.h +6 -7
- data/src/core/lib/promise/latch.h +9 -9
- data/src/core/lib/promise/map.h +17 -0
- data/src/core/lib/promise/observable.h +182 -0
- data/src/core/lib/promise/party.cc +7 -8
- data/src/core/lib/promise/party.h +10 -8
- data/src/core/lib/promise/pipe.h +16 -35
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/status_flag.h +2 -0
- data/src/core/lib/resource_quota/arena.cc +56 -79
- data/src/core/lib/resource_quota/arena.h +118 -209
- data/src/core/lib/resource_quota/memory_quota.cc +12 -13
- data/src/core/lib/resource_quota/memory_quota.h +2 -3
- data/src/core/lib/resource_quota/periodic_update.cc +1 -1
- data/src/core/lib/resource_quota/resource_quota.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
- data/src/core/lib/security/authorization/matchers.cc +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
- data/src/core/lib/security/context/security_context.cc +12 -13
- data/src/core/lib/security/context/security_context.h +31 -8
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
- data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
- data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
- data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
- data/src/core/lib/security/security_connector/security_connector.cc +1 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
- data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice.h +1 -1
- data/src/core/lib/slice/slice_refcount.h +2 -4
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/surface/api_trace.h +1 -3
- data/src/core/lib/surface/call.cc +64 -3738
- data/src/core/lib/surface/call.h +41 -143
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_utils.cc +276 -0
- data/src/core/lib/surface/call_utils.h +449 -0
- data/src/core/lib/surface/channel.cc +8 -3
- data/src/core/lib/surface/channel.h +10 -7
- data/src/core/lib/surface/channel_create.cc +14 -6
- data/src/core/lib/surface/channel_create.h +3 -2
- data/src/core/lib/surface/channel_init.cc +21 -77
- data/src/core/lib/surface/channel_init.h +19 -97
- data/src/core/lib/surface/client_call.cc +419 -0
- data/src/core/lib/surface/client_call.h +180 -0
- data/src/core/lib/surface/completion_queue.cc +28 -33
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/filter_stack_call.cc +1157 -0
- data/src/core/lib/surface/filter_stack_call.h +369 -0
- data/src/core/lib/surface/init.cc +7 -6
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +40 -27
- data/src/core/lib/surface/legacy_channel.h +9 -18
- data/src/core/lib/surface/server_call.cc +222 -0
- data/src/core/lib/surface/server_call.h +167 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -5
- data/src/core/lib/transport/bdp_estimator.h +2 -4
- data/src/core/lib/transport/call_arena_allocator.h +9 -7
- data/src/core/lib/transport/call_destination.h +76 -0
- data/src/core/lib/transport/call_filters.cc +28 -10
- data/src/core/lib/transport/call_filters.h +128 -22
- data/src/core/lib/transport/call_spine.cc +5 -6
- data/src/core/lib/transport/call_spine.h +159 -334
- data/src/core/lib/transport/connectivity_state.cc +8 -10
- data/src/core/lib/transport/connectivity_state.h +0 -2
- data/src/core/lib/transport/interception_chain.cc +155 -0
- data/src/core/lib/transport/interception_chain.h +236 -0
- data/src/core/lib/transport/metadata_batch.h +10 -1
- data/src/core/lib/transport/metadata_info.h +1 -1
- data/src/core/lib/transport/transport.cc +3 -6
- data/src/core/lib/transport/transport.h +43 -40
- data/src/core/load_balancing/child_policy_handler.cc +8 -8
- data/src/core/load_balancing/endpoint_list.cc +5 -5
- data/src/core/load_balancing/endpoint_list.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
- data/src/core/load_balancing/health_check_client.cc +10 -13
- data/src/core/load_balancing/lb_policy.cc +5 -8
- data/src/core/load_balancing/lb_policy.h +19 -3
- data/src/core/load_balancing/lb_policy_factory.h +1 -1
- data/src/core/load_balancing/lb_policy_registry.cc +2 -3
- data/src/core/load_balancing/lb_policy_registry.h +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
- data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
- data/src/core/load_balancing/priority/priority.cc +26 -28
- data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
- data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
- data/src/core/load_balancing/rls/rls.cc +82 -82
- data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
- data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
- data/src/core/load_balancing/xds/cds.cc +14 -16
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
- data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
- data/src/core/load_balancing/xds/xds_override_host.h +3 -3
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
- data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
- data/src/core/resolver/binder/binder_resolver.cc +3 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
- data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
- data/src/core/resolver/endpoint_addresses.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.h +1 -1
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
- data/src/core/resolver/polling_resolver.cc +30 -35
- data/src/core/resolver/resolver.cc +2 -6
- data/src/core/resolver/resolver.h +0 -2
- data/src/core/resolver/resolver_registry.cc +6 -8
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
- data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
- data/src/core/resolver/xds/xds_resolver.cc +13 -15
- data/src/core/server/server.cc +269 -389
- data/src/core/server/server.h +37 -19
- data/src/core/server/server_call_tracer_filter.cc +7 -14
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/server_interface.h +2 -0
- data/src/core/server/xds_channel_stack_modifier.cc +1 -1
- data/src/core/server/xds_channel_stack_modifier.h +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +1 -4
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_call_data.h +13 -11
- data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
- data/src/core/service_config/service_config_impl.cc +5 -5
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/service_config/service_config_parser.cc +3 -6
- data/src/core/service_config/service_config_parser.h +1 -1
- data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
- data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
- data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
- data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
- data/src/core/telemetry/metrics.cc +178 -0
- data/src/core/telemetry/metrics.h +562 -0
- data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats.h +5 -5
- data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
- data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
- data/src/core/tsi/fake_transport_security.cc +14 -17
- data/src/core/tsi/local_transport_security.cc +6 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
- data/src/core/tsi/ssl_transport_security.cc +76 -81
- data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
- data/src/core/tsi/ssl_transport_security_utils.h +11 -0
- data/src/core/tsi/transport_security.cc +0 -4
- data/src/core/tsi/transport_security.h +0 -2
- data/src/core/tsi/transport_security_interface.h +0 -4
- data/src/core/{lib/gpr → util}/alloc.h +3 -3
- data/src/core/{lib/gpr → util}/android/log.cc +0 -19
- data/src/core/{lib/gpr → util}/atm.cc +1 -1
- data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
- data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
- data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
- data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
- data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
- data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
- data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
- data/src/core/{lib/http → util/http_client}/parser.h +5 -6
- data/src/core/{lib → util}/json/json.h +5 -4
- data/src/core/{lib → util}/json/json_args.h +5 -5
- data/src/core/{lib → util}/json/json_channel_args.h +6 -6
- data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
- data/src/core/{lib → util}/json/json_object_loader.h +7 -7
- data/src/core/{lib → util}/json/json_reader.cc +3 -2
- data/src/core/{lib → util}/json/json_reader.h +6 -6
- data/src/core/{lib → util}/json/json_util.cc +4 -4
- data/src/core/{lib → util}/json/json_util.h +6 -6
- data/src/core/{lib → util}/json/json_writer.cc +3 -3
- data/src/core/{lib → util}/json/json_writer.h +6 -6
- data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
- data/src/core/util/log.cc +165 -0
- data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
- data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/spinlock.h +3 -3
- data/src/core/{lib/gpr → util}/string.cc +2 -2
- data/src/core/{lib/gpr → util}/string.h +3 -3
- data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
- data/src/core/{lib/gpr → util}/time_precise.h +3 -3
- data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
- data/src/core/{lib/gpr → util}/useful.h +3 -3
- data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
- data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
- data/src/core/xds/grpc/certificate_provider_store.h +4 -4
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
- data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
- data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
- data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
- data/src/core/xds/grpc/xds_client_grpc.h +2 -2
- data/src/core/xds/grpc/xds_cluster.cc +4 -5
- data/src/core/xds/grpc/xds_cluster.h +1 -1
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
- data/src/core/xds/grpc/xds_common_types.cc +1 -1
- data/src/core/xds/grpc/xds_common_types.h +1 -1
- data/src/core/xds/grpc/xds_endpoint.cc +4 -5
- data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
- data/src/core/xds/grpc/xds_http_filters.h +2 -2
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
- data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
- data/src/core/xds/grpc/xds_listener.cc +4 -6
- data/src/core/xds/grpc/xds_route_config.cc +7 -8
- data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
- data/src/core/xds/xds_client/xds_api.cc +5 -9
- data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
- data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
- data/src/core/xds/xds_client/xds_client.cc +39 -45
- data/src/core/xds/xds_client/xds_client.h +0 -3
- data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
- data/src/core/xds/xds_client/xds_client_stats.h +2 -2
- data/src/ruby/bin/math_pb.rb +1 -22
- data/src/ruby/ext/grpc/rb_call.c +8 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
- data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/ext/grpc/rb_server.c +39 -22
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
- metadata +103 -93
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
- data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
- data/src/core/handshaker/security/tsi_error.cc +0 -31
- data/src/core/handshaker/security/tsi_error.h +0 -30
- data/src/core/lib/channel/channel_stack_trace.cc +0 -19
- data/src/core/lib/channel/channel_stack_trace.h +0 -24
- data/src/core/lib/channel/context.h +0 -105
- data/src/core/lib/channel/metrics.cc +0 -334
- data/src/core/lib/channel/metrics.h +0 -365
- data/src/core/lib/event_engine/trace.cc +0 -25
- data/src/core/lib/gpr/log.cc +0 -166
- data/src/core/lib/iomgr/ev_windows.cc +0 -30
- data/src/core/lib/promise/trace.cc +0 -20
- data/src/core/lib/promise/trace.h +0 -24
- data/src/core/lib/resource_quota/trace.cc +0 -19
- data/src/core/lib/resource_quota/trace.h +0 -24
- data/src/core/lib/slice/slice_refcount.cc +0 -20
- data/src/core/lib/surface/api_trace.cc +0 -25
- data/src/core/lib/surface/call_trace.h +0 -24
- data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
- data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
- data/src/core/lib/transport/batch_builder.cc +0 -172
- data/src/core/lib/transport/batch_builder.h +0 -474
- data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
- data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
- /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
- /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
- /data/src/core/{lib/gpr → util}/time.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -1,365 +0,0 @@
|
|
1
|
-
// Copyright 2024 The gRPC Authors.
|
2
|
-
//
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
// you may not use this file except in compliance with the License.
|
5
|
-
// You may obtain a copy of the License at
|
6
|
-
//
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
//
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
// See the License for the specific language governing permissions and
|
13
|
-
// limitations under the License.
|
14
|
-
|
15
|
-
#ifndef GRPC_SRC_CORE_LIB_CHANNEL_METRICS_H
|
16
|
-
#define GRPC_SRC_CORE_LIB_CHANNEL_METRICS_H
|
17
|
-
|
18
|
-
#include <cstdint>
|
19
|
-
#include <memory>
|
20
|
-
#include <vector>
|
21
|
-
|
22
|
-
#include "absl/functional/any_invocable.h"
|
23
|
-
#include "absl/functional/function_ref.h"
|
24
|
-
#include "absl/strings/string_view.h"
|
25
|
-
#include "absl/types/span.h"
|
26
|
-
|
27
|
-
#include <grpc/support/log.h>
|
28
|
-
#include <grpc/support/metrics.h>
|
29
|
-
#include <grpc/support/port_platform.h>
|
30
|
-
|
31
|
-
#include "src/core/lib/channel/call_tracer.h"
|
32
|
-
#include "src/core/lib/channel/channel_args.h"
|
33
|
-
#include "src/core/lib/channel/context.h"
|
34
|
-
#include "src/core/lib/gprpp/no_destruct.h"
|
35
|
-
#include "src/core/lib/gprpp/sync.h"
|
36
|
-
#include "src/core/lib/gprpp/time.h"
|
37
|
-
#include "src/core/lib/slice/slice.h"
|
38
|
-
|
39
|
-
namespace grpc_core {
|
40
|
-
|
41
|
-
constexpr absl::string_view kMetricLabelTarget = "grpc.target";
|
42
|
-
|
43
|
-
// A global registry of instruments(metrics). This API is designed to be used
|
44
|
-
// to register instruments (Counter, Histogram, and Gauge) as part of program
|
45
|
-
// startup, before the execution of the main function (during dynamic
|
46
|
-
// initialization time). Using this API after the main function begins may
|
47
|
-
// result into missing instruments. This API is thread-unsafe.
|
48
|
-
class GlobalInstrumentsRegistry {
|
49
|
-
public:
|
50
|
-
enum class ValueType {
|
51
|
-
kUndefined,
|
52
|
-
kInt64,
|
53
|
-
kUInt64,
|
54
|
-
kDouble,
|
55
|
-
};
|
56
|
-
enum class InstrumentType {
|
57
|
-
kUndefined,
|
58
|
-
kCounter,
|
59
|
-
kHistogram,
|
60
|
-
kCallbackGauge,
|
61
|
-
};
|
62
|
-
using InstrumentID = uint32_t;
|
63
|
-
struct GlobalInstrumentDescriptor {
|
64
|
-
ValueType value_type;
|
65
|
-
InstrumentType instrument_type;
|
66
|
-
InstrumentID index;
|
67
|
-
bool enable_by_default;
|
68
|
-
absl::string_view name;
|
69
|
-
absl::string_view description;
|
70
|
-
absl::string_view unit;
|
71
|
-
std::vector<absl::string_view> label_keys;
|
72
|
-
std::vector<absl::string_view> optional_label_keys;
|
73
|
-
};
|
74
|
-
struct GlobalInstrumentHandle {
|
75
|
-
// This is the index for the corresponding registered instrument that
|
76
|
-
// StatsPlugins can use to uniquely identify an instrument in the current
|
77
|
-
// process. Though this is not guaranteed to be stable between different
|
78
|
-
// runs or between different versions.
|
79
|
-
InstrumentID index;
|
80
|
-
};
|
81
|
-
struct GlobalUInt64CounterHandle : public GlobalInstrumentHandle {};
|
82
|
-
struct GlobalDoubleCounterHandle : public GlobalInstrumentHandle {};
|
83
|
-
struct GlobalUInt64HistogramHandle : public GlobalInstrumentHandle {};
|
84
|
-
struct GlobalDoubleHistogramHandle : public GlobalInstrumentHandle {};
|
85
|
-
struct GlobalCallbackInt64GaugeHandle : public GlobalInstrumentHandle {};
|
86
|
-
struct GlobalCallbackDoubleGaugeHandle : public GlobalInstrumentHandle {};
|
87
|
-
using GlobalCallbackHandle = absl::variant<GlobalCallbackInt64GaugeHandle,
|
88
|
-
GlobalCallbackDoubleGaugeHandle>;
|
89
|
-
|
90
|
-
// Creates instrument in the GlobalInstrumentsRegistry.
|
91
|
-
static GlobalUInt64CounterHandle RegisterUInt64Counter(
|
92
|
-
absl::string_view name, absl::string_view description,
|
93
|
-
absl::string_view unit, absl::Span<const absl::string_view> label_keys,
|
94
|
-
absl::Span<const absl::string_view> optional_label_keys,
|
95
|
-
bool enable_by_default);
|
96
|
-
static GlobalDoubleCounterHandle RegisterDoubleCounter(
|
97
|
-
absl::string_view name, absl::string_view description,
|
98
|
-
absl::string_view unit, absl::Span<const absl::string_view> label_keys,
|
99
|
-
absl::Span<const absl::string_view> optional_label_keys,
|
100
|
-
bool enable_by_default);
|
101
|
-
static GlobalUInt64HistogramHandle RegisterUInt64Histogram(
|
102
|
-
absl::string_view name, absl::string_view description,
|
103
|
-
absl::string_view unit, absl::Span<const absl::string_view> label_keys,
|
104
|
-
absl::Span<const absl::string_view> optional_label_keys,
|
105
|
-
bool enable_by_default);
|
106
|
-
static GlobalDoubleHistogramHandle RegisterDoubleHistogram(
|
107
|
-
absl::string_view name, absl::string_view description,
|
108
|
-
absl::string_view unit, absl::Span<const absl::string_view> label_keys,
|
109
|
-
absl::Span<const absl::string_view> optional_label_keys,
|
110
|
-
bool enable_by_default);
|
111
|
-
static GlobalCallbackInt64GaugeHandle RegisterCallbackInt64Gauge(
|
112
|
-
absl::string_view name, absl::string_view description,
|
113
|
-
absl::string_view unit, absl::Span<const absl::string_view> label_keys,
|
114
|
-
absl::Span<const absl::string_view> optional_label_keys,
|
115
|
-
bool enable_by_default);
|
116
|
-
static GlobalCallbackDoubleGaugeHandle RegisterCallbackDoubleGauge(
|
117
|
-
absl::string_view name, absl::string_view description,
|
118
|
-
absl::string_view unit, absl::Span<const absl::string_view> label_keys,
|
119
|
-
absl::Span<const absl::string_view> optional_label_keys,
|
120
|
-
bool enable_by_default);
|
121
|
-
|
122
|
-
static void ForEach(
|
123
|
-
absl::FunctionRef<void(const GlobalInstrumentDescriptor&)> f);
|
124
|
-
static const GlobalInstrumentDescriptor& GetInstrumentDescriptor(
|
125
|
-
GlobalInstrumentHandle handle);
|
126
|
-
|
127
|
-
private:
|
128
|
-
friend class GlobalInstrumentsRegistryTestPeer;
|
129
|
-
|
130
|
-
GlobalInstrumentsRegistry() = delete;
|
131
|
-
|
132
|
-
static std::vector<GlobalInstrumentsRegistry::GlobalInstrumentDescriptor>&
|
133
|
-
GetInstrumentList();
|
134
|
-
};
|
135
|
-
|
136
|
-
// An interface for implementing callback-style metrics.
|
137
|
-
// To be implemented by stats plugins.
|
138
|
-
class CallbackMetricReporter {
|
139
|
-
public:
|
140
|
-
virtual ~CallbackMetricReporter() = default;
|
141
|
-
|
142
|
-
virtual void Report(
|
143
|
-
GlobalInstrumentsRegistry::GlobalCallbackInt64GaugeHandle handle,
|
144
|
-
int64_t value, absl::Span<const absl::string_view> label_values,
|
145
|
-
absl::Span<const absl::string_view> optional_values) = 0;
|
146
|
-
virtual void Report(
|
147
|
-
GlobalInstrumentsRegistry::GlobalCallbackDoubleGaugeHandle handle,
|
148
|
-
double value, absl::Span<const absl::string_view> label_values,
|
149
|
-
absl::Span<const absl::string_view> optional_values) = 0;
|
150
|
-
};
|
151
|
-
|
152
|
-
class RegisteredMetricCallback;
|
153
|
-
|
154
|
-
// The StatsPlugin interface.
|
155
|
-
class StatsPlugin {
|
156
|
-
public:
|
157
|
-
// A general-purpose way for stats plugin to store per-channel or per-server
|
158
|
-
// state.
|
159
|
-
class ScopeConfig {
|
160
|
-
public:
|
161
|
-
virtual ~ScopeConfig() = default;
|
162
|
-
};
|
163
|
-
|
164
|
-
virtual ~StatsPlugin() = default;
|
165
|
-
|
166
|
-
// Whether this stats plugin is enabled for the channel specified by \a scope.
|
167
|
-
// Returns true and a channel-specific ScopeConfig which may then be used to
|
168
|
-
// configure the ClientCallTracer in GetClientCallTracer().
|
169
|
-
virtual std::pair<bool, std::shared_ptr<ScopeConfig>> IsEnabledForChannel(
|
170
|
-
const experimental::StatsPluginChannelScope& scope) const = 0;
|
171
|
-
// Whether this stats plugin is enabled for the server specified by \a args.
|
172
|
-
// Returns true and a server-specific ScopeConfig which may then be used to
|
173
|
-
// configure the ServerCallTracer in GetServerCallTracer().
|
174
|
-
virtual std::pair<bool, std::shared_ptr<ScopeConfig>> IsEnabledForServer(
|
175
|
-
const ChannelArgs& args) const = 0;
|
176
|
-
|
177
|
-
// Adds \a value to the uint64 counter specified by \a handle. \a label_values
|
178
|
-
// and \a optional_label_values specify attributes that are associated with
|
179
|
-
// this measurement and must match with their corresponding keys in
|
180
|
-
// GlobalInstrumentsRegistry::RegisterUInt64Counter().
|
181
|
-
virtual void AddCounter(
|
182
|
-
GlobalInstrumentsRegistry::GlobalUInt64CounterHandle handle,
|
183
|
-
uint64_t value, absl::Span<const absl::string_view> label_values,
|
184
|
-
absl::Span<const absl::string_view> optional_label_values) = 0;
|
185
|
-
// Adds \a value to the double counter specified by \a handle. \a label_values
|
186
|
-
// and \a optional_label_values specify attributes that are associated with
|
187
|
-
// this measurement and must match with their corresponding keys in
|
188
|
-
// GlobalInstrumentsRegistry::RegisterDoubleCounter().
|
189
|
-
virtual void AddCounter(
|
190
|
-
GlobalInstrumentsRegistry::GlobalDoubleCounterHandle handle, double value,
|
191
|
-
absl::Span<const absl::string_view> label_values,
|
192
|
-
absl::Span<const absl::string_view> optional_label_values) = 0;
|
193
|
-
// Records a uint64 \a value to the histogram specified by \a handle. \a
|
194
|
-
// label_values and \a optional_label_values specify attributes that are
|
195
|
-
// associated with this measurement and must match with their corresponding
|
196
|
-
// keys in GlobalInstrumentsRegistry::RegisterUInt64Histogram().
|
197
|
-
virtual void RecordHistogram(
|
198
|
-
GlobalInstrumentsRegistry::GlobalUInt64HistogramHandle handle,
|
199
|
-
uint64_t value, absl::Span<const absl::string_view> label_values,
|
200
|
-
absl::Span<const absl::string_view> optional_label_values) = 0;
|
201
|
-
// Records a double \a value to the histogram specified by \a handle. \a
|
202
|
-
// label_values and \a optional_label_values specify attributes that are
|
203
|
-
// associated with this measurement and must match with their corresponding
|
204
|
-
// keys in GlobalInstrumentsRegistry::RegisterDoubleHistogram().
|
205
|
-
virtual void RecordHistogram(
|
206
|
-
GlobalInstrumentsRegistry::GlobalDoubleHistogramHandle handle,
|
207
|
-
double value, absl::Span<const absl::string_view> label_values,
|
208
|
-
absl::Span<const absl::string_view> optional_label_values) = 0;
|
209
|
-
// Adds a callback to be invoked when the stats plugin wants to
|
210
|
-
// populate the corresponding metrics (see callback->metrics() for list).
|
211
|
-
virtual void AddCallback(RegisteredMetricCallback* callback) = 0;
|
212
|
-
// Removes a callback previously added via AddCallback(). The stats
|
213
|
-
// plugin may not use the callback after this method returns.
|
214
|
-
virtual void RemoveCallback(RegisteredMetricCallback* callback) = 0;
|
215
|
-
|
216
|
-
// Gets a ClientCallTracer associated with this stats plugin which can be used
|
217
|
-
// in a call.
|
218
|
-
virtual ClientCallTracer* GetClientCallTracer(
|
219
|
-
const Slice& path, bool registered_method,
|
220
|
-
std::shared_ptr<ScopeConfig> scope_config) = 0;
|
221
|
-
// Gets a ServerCallTracer associated with this stats plugin which can be used
|
222
|
-
// in a call.
|
223
|
-
virtual ServerCallTracer* GetServerCallTracer(
|
224
|
-
std::shared_ptr<ScopeConfig> scope_config) = 0;
|
225
|
-
|
226
|
-
// TODO(yijiem): This is an optimization for the StatsPlugin to create its own
|
227
|
-
// representation of the label_values and use it multiple times. We would
|
228
|
-
// change AddCounter and RecordHistogram to take RefCountedPtr<LabelValueSet>
|
229
|
-
// and also change the StatsPluginsGroup to support this.
|
230
|
-
// Use the StatsPlugin to get a representation of label values that can be
|
231
|
-
// saved for multiple uses later.
|
232
|
-
// virtual RefCountedPtr<LabelValueSet> MakeLabelValueSet(
|
233
|
-
// absl::Span<absl::string_view> label_values) = 0;
|
234
|
-
};
|
235
|
-
|
236
|
-
// A global registry of stats plugins. It has shared ownership to the registered
|
237
|
-
// stats plugins. This API is supposed to be used during runtime after the main
|
238
|
-
// function begins. This API is thread-safe.
|
239
|
-
class GlobalStatsPluginRegistry {
|
240
|
-
public:
|
241
|
-
// A stats plugin group object is how the code in gRPC normally interacts with
|
242
|
-
// stats plugins. They got a stats plugin group which contains all the stats
|
243
|
-
// plugins for a specific scope and all operations on the stats plugin group
|
244
|
-
// will be applied to all the stats plugins within the group.
|
245
|
-
class StatsPluginGroup {
|
246
|
-
public:
|
247
|
-
// Adds a stats plugin and a scope config (per-channel or per-server) to the
|
248
|
-
// group.
|
249
|
-
void AddStatsPlugin(std::shared_ptr<StatsPlugin> plugin,
|
250
|
-
std::shared_ptr<StatsPlugin::ScopeConfig> config) {
|
251
|
-
PluginState plugin_state;
|
252
|
-
plugin_state.plugin = std::move(plugin);
|
253
|
-
plugin_state.scope_config = std::move(config);
|
254
|
-
plugins_state_.push_back(std::move(plugin_state));
|
255
|
-
}
|
256
|
-
// Adds a counter in all stats plugins within the group. See the StatsPlugin
|
257
|
-
// interface for more documentation and valid types.
|
258
|
-
template <class HandleType, class ValueType>
|
259
|
-
void AddCounter(HandleType handle, ValueType value,
|
260
|
-
absl::Span<const absl::string_view> label_values,
|
261
|
-
absl::Span<const absl::string_view> optional_values) {
|
262
|
-
for (auto& state : plugins_state_) {
|
263
|
-
state.plugin->AddCounter(handle, value, label_values, optional_values);
|
264
|
-
}
|
265
|
-
}
|
266
|
-
// Records a value to a histogram in all stats plugins within the group. See
|
267
|
-
// the StatsPlugin interface for more documentation and valid types.
|
268
|
-
template <class HandleType, class ValueType>
|
269
|
-
void RecordHistogram(HandleType handle, ValueType value,
|
270
|
-
absl::Span<const absl::string_view> label_values,
|
271
|
-
absl::Span<const absl::string_view> optional_values) {
|
272
|
-
for (auto& state : plugins_state_) {
|
273
|
-
state.plugin->RecordHistogram(handle, value, label_values,
|
274
|
-
optional_values);
|
275
|
-
}
|
276
|
-
}
|
277
|
-
|
278
|
-
// Registers a callback to be used to populate callback metrics.
|
279
|
-
// The callback will update the specified metrics. The callback
|
280
|
-
// will be invoked no more often than min_interval. Multiple callbacks may
|
281
|
-
// be registered for the same metrics, as long as no two callbacks report
|
282
|
-
// data for the same set of labels in which case the behavior is undefined.
|
283
|
-
//
|
284
|
-
// The returned object is a handle that allows the caller to control
|
285
|
-
// the lifetime of the callback; when the returned object is
|
286
|
-
// destroyed, the callback is de-registered. The returned object
|
287
|
-
// must not outlive the StatsPluginGroup object that created it.
|
288
|
-
GRPC_MUST_USE_RESULT std::unique_ptr<RegisteredMetricCallback>
|
289
|
-
RegisterCallback(
|
290
|
-
absl::AnyInvocable<void(CallbackMetricReporter&)> callback,
|
291
|
-
std::vector<GlobalInstrumentsRegistry::GlobalCallbackHandle> metrics,
|
292
|
-
Duration min_interval = Duration::Seconds(5));
|
293
|
-
|
294
|
-
// Adds all available client call tracers associated with the stats plugins
|
295
|
-
// within the group to \a call_context.
|
296
|
-
void AddClientCallTracers(const Slice& path, bool registered_method,
|
297
|
-
grpc_call_context_element* call_context);
|
298
|
-
// Adds all available server call tracers associated with the stats plugins
|
299
|
-
// within the group to \a call_context.
|
300
|
-
void AddServerCallTracers(grpc_call_context_element* call_context);
|
301
|
-
|
302
|
-
private:
|
303
|
-
friend class RegisteredMetricCallback;
|
304
|
-
|
305
|
-
struct PluginState {
|
306
|
-
std::shared_ptr<StatsPlugin::ScopeConfig> scope_config;
|
307
|
-
std::shared_ptr<StatsPlugin> plugin;
|
308
|
-
};
|
309
|
-
|
310
|
-
std::vector<PluginState> plugins_state_;
|
311
|
-
};
|
312
|
-
|
313
|
-
// Registers a stats plugin with the global stats plugin registry.
|
314
|
-
static void RegisterStatsPlugin(std::shared_ptr<StatsPlugin> plugin);
|
315
|
-
|
316
|
-
// The following functions can be invoked to get a StatsPluginGroup for
|
317
|
-
// a specified scope.
|
318
|
-
static StatsPluginGroup GetStatsPluginsForChannel(
|
319
|
-
const experimental::StatsPluginChannelScope& scope);
|
320
|
-
static StatsPluginGroup GetStatsPluginsForServer(const ChannelArgs& args);
|
321
|
-
|
322
|
-
private:
|
323
|
-
friend class GlobalStatsPluginRegistryTestPeer;
|
324
|
-
|
325
|
-
GlobalStatsPluginRegistry() = default;
|
326
|
-
|
327
|
-
static NoDestruct<Mutex> mutex_;
|
328
|
-
static NoDestruct<std::vector<std::shared_ptr<StatsPlugin>>> plugins_
|
329
|
-
ABSL_GUARDED_BY(mutex_);
|
330
|
-
};
|
331
|
-
|
332
|
-
// A metric callback that is registered with a stats plugin group.
|
333
|
-
class RegisteredMetricCallback {
|
334
|
-
public:
|
335
|
-
RegisteredMetricCallback(
|
336
|
-
GlobalStatsPluginRegistry::StatsPluginGroup& stats_plugin_group,
|
337
|
-
absl::AnyInvocable<void(CallbackMetricReporter&)> callback,
|
338
|
-
std::vector<GlobalInstrumentsRegistry::GlobalCallbackHandle> metrics,
|
339
|
-
Duration min_interval);
|
340
|
-
|
341
|
-
~RegisteredMetricCallback();
|
342
|
-
|
343
|
-
// Invokes the callback. The callback will report metric data via reporter.
|
344
|
-
void Run(CallbackMetricReporter& reporter) { callback_(reporter); }
|
345
|
-
|
346
|
-
// Returns the set of metrics that this callback will modify.
|
347
|
-
const std::vector<GlobalInstrumentsRegistry::GlobalCallbackHandle>& metrics()
|
348
|
-
const {
|
349
|
-
return metrics_;
|
350
|
-
}
|
351
|
-
|
352
|
-
// Returns the minimum interval at which a stats plugin may invoke the
|
353
|
-
// callback.
|
354
|
-
Duration min_interval() const { return min_interval_; }
|
355
|
-
|
356
|
-
private:
|
357
|
-
GlobalStatsPluginRegistry::StatsPluginGroup& stats_plugin_group_;
|
358
|
-
absl::AnyInvocable<void(CallbackMetricReporter&)> callback_;
|
359
|
-
std::vector<GlobalInstrumentsRegistry::GlobalCallbackHandle> metrics_;
|
360
|
-
Duration min_interval_;
|
361
|
-
};
|
362
|
-
|
363
|
-
} // namespace grpc_core
|
364
|
-
|
365
|
-
#endif // GRPC_SRC_CORE_LIB_CHANNEL_METRICS_H
|
@@ -1,25 +0,0 @@
|
|
1
|
-
// Copyright 2022 The gRPC Authors
|
2
|
-
//
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
// you may not use this file except in compliance with the License.
|
5
|
-
// You may obtain a copy of the License at
|
6
|
-
//
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
//
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
// See the License for the specific language governing permissions and
|
13
|
-
// limitations under the License.
|
14
|
-
#include "src/core/lib/debug/trace.h"
|
15
|
-
|
16
|
-
#include <grpc/support/port_platform.h>
|
17
|
-
|
18
|
-
grpc_core::TraceFlag grpc_event_engine_trace(false, "event_engine");
|
19
|
-
grpc_core::TraceFlag grpc_event_engine_dns_trace(false, "event_engine_dns");
|
20
|
-
grpc_core::TraceFlag grpc_event_engine_endpoint_trace(false,
|
21
|
-
"event_engine_endpoint");
|
22
|
-
grpc_core::TraceFlag grpc_event_engine_endpoint_data_trace(
|
23
|
-
false, "event_engine_endpoint_data");
|
24
|
-
grpc_core::TraceFlag grpc_event_engine_poller_trace(false,
|
25
|
-
"event_engine_poller");
|
data/src/core/lib/gpr/log.cc
DELETED
@@ -1,166 +0,0 @@
|
|
1
|
-
//
|
2
|
-
//
|
3
|
-
// Copyright 2015 gRPC authors.
|
4
|
-
//
|
5
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
// you may not use this file except in compliance with the License.
|
7
|
-
// You may obtain a copy of the License at
|
8
|
-
//
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
//
|
11
|
-
// Unless required by applicable law or agreed to in writing, software
|
12
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
// See the License for the specific language governing permissions and
|
15
|
-
// limitations under the License.
|
16
|
-
//
|
17
|
-
//
|
18
|
-
|
19
|
-
#include <grpc/support/port_platform.h>
|
20
|
-
|
21
|
-
#include "absl/log/log.h"
|
22
|
-
|
23
|
-
#include <stdio.h>
|
24
|
-
#include <string.h>
|
25
|
-
|
26
|
-
#include "absl/strings/match.h"
|
27
|
-
#include "absl/strings/str_cat.h"
|
28
|
-
|
29
|
-
#include <grpc/support/alloc.h>
|
30
|
-
#include <grpc/support/atm.h>
|
31
|
-
#include <grpc/support/log.h>
|
32
|
-
|
33
|
-
#include "src/core/lib/config/config_vars.h"
|
34
|
-
#include "src/core/lib/gpr/string.h"
|
35
|
-
#include "src/core/lib/gprpp/crash.h"
|
36
|
-
|
37
|
-
#ifndef GPR_DEFAULT_LOG_VERBOSITY_STRING
|
38
|
-
#define GPR_DEFAULT_LOG_VERBOSITY_STRING "ERROR"
|
39
|
-
#endif // !GPR_DEFAULT_LOG_VERBOSITY_STRING
|
40
|
-
|
41
|
-
static constexpr gpr_atm GPR_LOG_SEVERITY_UNSET = GPR_LOG_SEVERITY_ERROR + 10;
|
42
|
-
static constexpr gpr_atm GPR_LOG_SEVERITY_NONE = GPR_LOG_SEVERITY_ERROR + 11;
|
43
|
-
|
44
|
-
void gpr_default_log(gpr_log_func_args* args);
|
45
|
-
void gpr_platform_log(gpr_log_func_args* args);
|
46
|
-
static gpr_atm g_log_func = reinterpret_cast<gpr_atm>(gpr_default_log);
|
47
|
-
static gpr_atm g_min_severity_to_print = GPR_LOG_SEVERITY_UNSET;
|
48
|
-
static gpr_atm g_min_severity_to_print_stacktrace = GPR_LOG_SEVERITY_UNSET;
|
49
|
-
|
50
|
-
void gpr_unreachable_code(const char* reason, const char* file, int line) {
|
51
|
-
grpc_core::Crash(absl::StrCat("UNREACHABLE CODE: ", reason),
|
52
|
-
grpc_core::SourceLocation(file, line));
|
53
|
-
}
|
54
|
-
|
55
|
-
void gpr_assertion_failed(const char* filename, int line, const char* message) {
|
56
|
-
grpc_core::Crash(absl::StrCat("ASSERTION FAILED: ", message),
|
57
|
-
grpc_core::SourceLocation(filename, line));
|
58
|
-
}
|
59
|
-
|
60
|
-
const char* gpr_log_severity_string(gpr_log_severity severity) {
|
61
|
-
switch (severity) {
|
62
|
-
case GPR_LOG_SEVERITY_DEBUG:
|
63
|
-
return "D";
|
64
|
-
case GPR_LOG_SEVERITY_INFO:
|
65
|
-
return "I";
|
66
|
-
case GPR_LOG_SEVERITY_ERROR:
|
67
|
-
return "E";
|
68
|
-
}
|
69
|
-
GPR_UNREACHABLE_CODE(return "UNKNOWN");
|
70
|
-
}
|
71
|
-
|
72
|
-
int gpr_should_log(gpr_log_severity severity) {
|
73
|
-
return static_cast<gpr_atm>(severity) >=
|
74
|
-
gpr_atm_no_barrier_load(&g_min_severity_to_print)
|
75
|
-
? 1
|
76
|
-
: 0;
|
77
|
-
}
|
78
|
-
|
79
|
-
void gpr_default_log(gpr_log_func_args* args) {
|
80
|
-
if (!grpc_core::ConfigVars::Get().AbslLogging()) {
|
81
|
-
gpr_platform_log(args);
|
82
|
-
return;
|
83
|
-
}
|
84
|
-
switch (args->severity) {
|
85
|
-
case GPR_LOG_SEVERITY_DEBUG:
|
86
|
-
// Log DEBUG messages as VLOG(2).
|
87
|
-
VLOG(2).AtLocation(args->file, args->line) << args->message;
|
88
|
-
return;
|
89
|
-
case GPR_LOG_SEVERITY_INFO:
|
90
|
-
LOG(INFO).AtLocation(args->file, args->line) << args->message;
|
91
|
-
return;
|
92
|
-
case GPR_LOG_SEVERITY_ERROR:
|
93
|
-
LOG(ERROR).AtLocation(args->file, args->line) << args->message;
|
94
|
-
return;
|
95
|
-
default:
|
96
|
-
LOG(ERROR) << __func__ << ": unknown gpr log severity(" << args->severity
|
97
|
-
<< "), using ERROR";
|
98
|
-
LOG(ERROR).AtLocation(args->file, args->line) << args->message;
|
99
|
-
}
|
100
|
-
}
|
101
|
-
|
102
|
-
int gpr_should_log_stacktrace(gpr_log_severity severity) {
|
103
|
-
return static_cast<gpr_atm>(severity) >=
|
104
|
-
gpr_atm_no_barrier_load(&g_min_severity_to_print_stacktrace)
|
105
|
-
? 1
|
106
|
-
: 0;
|
107
|
-
}
|
108
|
-
|
109
|
-
void gpr_log_message(const char* file, int line, gpr_log_severity severity,
|
110
|
-
const char* message) {
|
111
|
-
if (gpr_should_log(severity) == 0) {
|
112
|
-
return;
|
113
|
-
}
|
114
|
-
|
115
|
-
gpr_log_func_args lfargs;
|
116
|
-
memset(&lfargs, 0, sizeof(lfargs));
|
117
|
-
lfargs.file = file;
|
118
|
-
lfargs.line = line;
|
119
|
-
lfargs.severity = severity;
|
120
|
-
lfargs.message = message;
|
121
|
-
reinterpret_cast<gpr_log_func>(gpr_atm_no_barrier_load(&g_log_func))(&lfargs);
|
122
|
-
}
|
123
|
-
|
124
|
-
void gpr_set_log_verbosity(gpr_log_severity min_severity_to_print) {
|
125
|
-
gpr_atm_no_barrier_store(&g_min_severity_to_print,
|
126
|
-
(gpr_atm)min_severity_to_print);
|
127
|
-
}
|
128
|
-
|
129
|
-
static gpr_atm parse_log_severity(absl::string_view str, gpr_atm error_value) {
|
130
|
-
if (absl::EqualsIgnoreCase(str, "DEBUG")) return GPR_LOG_SEVERITY_DEBUG;
|
131
|
-
if (absl::EqualsIgnoreCase(str, "INFO")) return GPR_LOG_SEVERITY_INFO;
|
132
|
-
if (absl::EqualsIgnoreCase(str, "ERROR")) return GPR_LOG_SEVERITY_ERROR;
|
133
|
-
if (absl::EqualsIgnoreCase(str, "NONE")) return GPR_LOG_SEVERITY_NONE;
|
134
|
-
return error_value;
|
135
|
-
}
|
136
|
-
|
137
|
-
void gpr_log_verbosity_init() {
|
138
|
-
// init verbosity when it hasn't been set
|
139
|
-
if ((gpr_atm_no_barrier_load(&g_min_severity_to_print)) ==
|
140
|
-
GPR_LOG_SEVERITY_UNSET) {
|
141
|
-
auto verbosity = grpc_core::ConfigVars::Get().Verbosity();
|
142
|
-
gpr_atm min_severity_to_print = GPR_LOG_SEVERITY_ERROR;
|
143
|
-
if (!verbosity.empty()) {
|
144
|
-
min_severity_to_print =
|
145
|
-
parse_log_severity(verbosity, min_severity_to_print);
|
146
|
-
}
|
147
|
-
gpr_atm_no_barrier_store(&g_min_severity_to_print, min_severity_to_print);
|
148
|
-
}
|
149
|
-
// init stacktrace_minloglevel when it hasn't been set
|
150
|
-
if ((gpr_atm_no_barrier_load(&g_min_severity_to_print_stacktrace)) ==
|
151
|
-
GPR_LOG_SEVERITY_UNSET) {
|
152
|
-
auto stacktrace_minloglevel =
|
153
|
-
grpc_core::ConfigVars::Get().StacktraceMinloglevel();
|
154
|
-
gpr_atm min_severity_to_print_stacktrace = GPR_LOG_SEVERITY_NONE;
|
155
|
-
if (!stacktrace_minloglevel.empty()) {
|
156
|
-
min_severity_to_print_stacktrace = parse_log_severity(
|
157
|
-
stacktrace_minloglevel, min_severity_to_print_stacktrace);
|
158
|
-
}
|
159
|
-
gpr_atm_no_barrier_store(&g_min_severity_to_print_stacktrace,
|
160
|
-
min_severity_to_print_stacktrace);
|
161
|
-
}
|
162
|
-
}
|
163
|
-
|
164
|
-
void gpr_set_log_function(gpr_log_func f) {
|
165
|
-
gpr_atm_no_barrier_store(&g_log_func, (gpr_atm)(f ? f : gpr_default_log));
|
166
|
-
}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
//
|
2
|
-
//
|
3
|
-
// Copyright 2015 gRPC authors.
|
4
|
-
//
|
5
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
// you may not use this file except in compliance with the License.
|
7
|
-
// You may obtain a copy of the License at
|
8
|
-
//
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
//
|
11
|
-
// Unless required by applicable law or agreed to in writing, software
|
12
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
// See the License for the specific language governing permissions and
|
15
|
-
// limitations under the License.
|
16
|
-
//
|
17
|
-
//
|
18
|
-
|
19
|
-
#include <grpc/support/port_platform.h>
|
20
|
-
|
21
|
-
#include "src/core/lib/iomgr/port.h"
|
22
|
-
|
23
|
-
#ifdef GRPC_WINSOCK_SOCKET
|
24
|
-
|
25
|
-
#include "src/core/lib/debug/trace.h"
|
26
|
-
|
27
|
-
grpc_core::DebugOnlyTraceFlag grpc_polling_trace(
|
28
|
-
false, "polling"); // Disabled by default
|
29
|
-
|
30
|
-
#endif // GRPC_WINSOCK_SOCKET
|
@@ -1,20 +0,0 @@
|
|
1
|
-
// Copyright 2022 gRPC authors.
|
2
|
-
//
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
// you may not use this file except in compliance with the License.
|
5
|
-
// You may obtain a copy of the License at
|
6
|
-
//
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
//
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
// See the License for the specific language governing permissions and
|
13
|
-
// limitations under the License.
|
14
|
-
|
15
|
-
#include "src/core/lib/promise/trace.h"
|
16
|
-
|
17
|
-
#include <grpc/support/port_platform.h>
|
18
|
-
|
19
|
-
grpc_core::DebugOnlyTraceFlag grpc_trace_promise_primitives(
|
20
|
-
false, "promise_primitives");
|
@@ -1,24 +0,0 @@
|
|
1
|
-
// Copyright 2022 gRPC authors.
|
2
|
-
//
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
// you may not use this file except in compliance with the License.
|
5
|
-
// You may obtain a copy of the License at
|
6
|
-
//
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
//
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
// See the License for the specific language governing permissions and
|
13
|
-
// limitations under the License.
|
14
|
-
|
15
|
-
#ifndef GRPC_SRC_CORE_LIB_PROMISE_TRACE_H
|
16
|
-
#define GRPC_SRC_CORE_LIB_PROMISE_TRACE_H
|
17
|
-
|
18
|
-
#include <grpc/support/port_platform.h>
|
19
|
-
|
20
|
-
#include "src/core/lib/debug/trace.h"
|
21
|
-
|
22
|
-
extern grpc_core::DebugOnlyTraceFlag grpc_trace_promise_primitives;
|
23
|
-
|
24
|
-
#endif // GRPC_SRC_CORE_LIB_PROMISE_TRACE_H
|
@@ -1,19 +0,0 @@
|
|
1
|
-
// Copyright 2021 gRPC authors.
|
2
|
-
//
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
// you may not use this file except in compliance with the License.
|
5
|
-
// You may obtain a copy of the License at
|
6
|
-
//
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
//
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
// See the License for the specific language governing permissions and
|
13
|
-
// limitations under the License.
|
14
|
-
|
15
|
-
#include "src/core/lib/resource_quota/trace.h"
|
16
|
-
|
17
|
-
#include <grpc/support/port_platform.h>
|
18
|
-
|
19
|
-
grpc_core::TraceFlag grpc_resource_quota_trace(false, "resource_quota");
|
@@ -1,24 +0,0 @@
|
|
1
|
-
// Copyright 2021 gRPC authors.
|
2
|
-
//
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
// you may not use this file except in compliance with the License.
|
5
|
-
// You may obtain a copy of the License at
|
6
|
-
//
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
//
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
// See the License for the specific language governing permissions and
|
13
|
-
// limitations under the License.
|
14
|
-
|
15
|
-
#ifndef GRPC_SRC_CORE_LIB_RESOURCE_QUOTA_TRACE_H
|
16
|
-
#define GRPC_SRC_CORE_LIB_RESOURCE_QUOTA_TRACE_H
|
17
|
-
|
18
|
-
#include <grpc/support/port_platform.h>
|
19
|
-
|
20
|
-
#include "src/core/lib/debug/trace.h"
|
21
|
-
|
22
|
-
extern grpc_core::TraceFlag grpc_resource_quota_trace;
|
23
|
-
|
24
|
-
#endif // GRPC_SRC_CORE_LIB_RESOURCE_QUOTA_TRACE_H
|