| gRPC environment variables |
| -------------------------- |
| |
| gRPC C core based implementations (those contained in this repository) expose |
| some configuration as environment variables that can be set. |
| |
| * grpc_proxy, https_proxy, http_proxy |
| The URI of the proxy to use for HTTP CONNECT support. These variables are |
| checked in order, and the first one that has a value is used. |
| |
| * no_grpc_proxy, no_proxy |
| A comma separated list of hostnames to connect to without using a proxy even |
| if a proxy is set. These variables are checked in order, and the first one |
| that has a value is used. |
| |
| * GRPC_ABORT_ON_LEAKS |
| A debugging aid to cause a call to abort() when gRPC objects are leaked past |
| grpc_shutdown(). Set to 1 to cause the abort, if unset or 0 it does not |
| abort the process. |
| |
| * GOOGLE_APPLICATION_CREDENTIALS |
| The path to find the credentials to use when Google credentials are created |
| |
| * GRPC_SSL_CIPHER_SUITES |
| A colon separated list of cipher suites to use with OpenSSL |
| Defaults to: |
| ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384 |
| |
| * GRPC_DEFAULT_SSL_ROOTS_FILE_PATH |
| PEM file to load SSL roots from |
| |
| * GRPC_POLL_STRATEGY [posix-style environments only] |
| Declares which polling engines to try when starting gRPC. |
| This is a comma-separated list of engines, which are tried in priority order |
| first -> last. |
| Available polling engines include: |
| - epoll (linux-only) - a polling engine based around the epoll family of |
| system calls |
| - poll - a portable polling engine based around poll(), intended to be a |
| fallback engine when nothing better exists |
| - legacy - the (deprecated) original polling engine for gRPC |
| |
| * GRPC_TRACE |
| A comma separated list of tracers that provide additional insight into how |
| gRPC C core is processing requests via debug logs. Available tracers include: |
| - api - traces api calls to the C core |
| - bdp_estimator - traces behavior of bdp estimation logic |
| - call_error - traces the possible errors contributing to final call status |
| - cares_resolver - traces operations of the c-ares based DNS resolver |
| - cares_address_sorting - traces operations of the c-ares based DNS |
| resolver's resolved address sorter |
| - cds_lb - traces cds LB policy |
| - channel - traces operations on the C core channel stack |
| - channel_stack - traces the set of filters in a channel stack upon |
| construction |
| - client_channel - traces client channel control plane activity, including |
| resolver and load balancing policy interaction |
| - client_channel_call - traces client channel call activity related to name |
| resolution |
| - client_channel_lb_call - traces client channel call activity related |
| to load balancing picking |
| - compression - traces compression operations |
| - connectivity_state - traces connectivity state changes to channels |
| - cronet - traces state in the cronet transport engine |
| - dns_resolver - traces state in the native DNS resolver |
| - executor - traces grpc's internal thread pool ('the executor') |
| - glb - traces the grpclb load balancer |
| - handshaker - traces handshaking state |
| - health_check_client - traces health checking client code |
| - http - traces state in the http2 transport engine |
| - http2_stream_state - traces all http2 stream state mutations. |
| - http2_ping - traces pings/ping acks/antagonist writes in http2 stack. |
| - http1 - traces HTTP/1.x operations performed by gRPC |
| - inproc - traces the in-process transport |
| - http_keepalive - traces gRPC keepalive pings |
| - flowctl - traces http2 flow control |
| - op_failure - traces error information when failure is pushed onto a |
| completion queue |
| - pick_first - traces the pick first load balancing policy |
| - plugin_credentials - traces plugin credentials |
| - pollable_refcount - traces reference counting of 'pollable' objects (only |
| in DEBUG) |
| - priority_lb - traces priority LB policy |
| - resource_quota - trace resource quota objects internals |
| - ring_hash_lb - traces the ring hash load balancing policy |
| - rls_lb - traces the RLS load balancing policy |
| - round_robin - traces the round_robin load balancing policy |
| - weighted_round_robin_lb - traces the weighted_round_robin load balancing |
| policy |
| - queue_pluck |
| - grpc_authz_api - traces gRPC authorization |
| - server_channel - lightweight trace of significant server channel events |
| - secure_endpoint - traces bytes flowing through encrypted channels |
| - subchannel - traces the connectivity state of subchannel |
| - subchannel_pool - traces subchannel pool |
| - timer - timers (alarms) in the grpc internals |
| - timer_check - more detailed trace of timer logic in grpc internals |
| - transport_security - traces metadata about secure channel establishment |
| - tcp - traces bytes in and out of a channel |
| - tsi - traces tsi transport security |
| - weighted_target_lb - traces weighted_target LB policy |
| - xds_client - traces xds client |
| - xds_cluster_manager_lb - traces cluster manager LB policy |
| - xds_cluster_impl_lb - traces cluster impl LB policy |
| - xds_resolver - traces xds resolver |
| |
| The following tracers will only run in binaries built in DEBUG mode. This is |
| accomplished by invoking `CONFIG=dbg make <target>` |
| - metadata - tracks creation and mutation of metadata |
| - combiner - traces combiner lock state |
| - call_combiner - traces call combiner state |
| - closure - tracks closure creation, scheduling, and completion |
| - fd_trace - traces fd create(), shutdown() and close() calls for channel fds. |
| - pending_tags - traces still-in-progress tags on completion queues |
| - polling - traces the selected polling engine |
| - polling_api - traces the api calls to polling engine |
| - subchannel_refcount |
| - queue_refcount |
| - error_refcount |
| - stream_refcount |
| - slice_refcount |
| - workqueue_refcount |
| - fd_refcount |
| - cq_refcount |
| - auth_context_refcount |
| - security_connector_refcount |
| - resolver_refcount |
| - lb_policy_refcount |
| - chttp2_refcount |
| |
| 'all' can additionally be used to turn all traces on. |
| Individual traces can be disabled by prefixing them with '-'. |
| |
| 'refcount' will turn on all of the tracers for refcount debugging. |
| |
| if 'list_tracers' is present, then all of the available tracers will be |
| printed when the program starts up. |
| |
| Example: |
| export GRPC_TRACE=all,-pending_tags |
| |
| * GRPC_VERBOSITY |
| Default gRPC logging verbosity - one of: |
| - DEBUG - log all gRPC messages |
| - INFO - log INFO and ERROR message |
| - ERROR - log only errors (default) |
| - NONE - won't log any |
| |
| * GRPC_STACKTRACE_MINLOGLEVEL |
| Minimum loglevel to print the stack-trace - one of DEBUG, INFO, ERROR, and NONE. |
| NONE is a default value. |
| |
| * GRPC_TRACE_FUZZER |
| if set, the fuzzers will output trace (it is usually suppressed). |
| |
| * GRPC_DNS_RESOLVER |
| Declares which DNS resolver to use. The default is ares if gRPC is built with |
| c-ares support. Otherwise, the value of this environment variable is ignored. |
| Available DNS resolver include: |
| - ares (default on most platforms except iOS, Android or Node)- a DNS |
| resolver based around the c-ares library |
| - native - a DNS resolver based around getaddrinfo(), creates a new thread to |
| perform name resolution |
| |
| *NetBIOS and DNS*: If your network relies on NetBIOS name resolution or a mixture of |
| DNS and NetBIOS name resolution (e.g. in some Windows networks) then you should use |
| the '*native*' DNS resolver or make sure all NetBIOS names are |
| also configured in DNS. The '*ares*' DNS resolver only supports DNS name resolution. |
| |
| * GRPC_CLIENT_CHANNEL_BACKUP_POLL_INTERVAL_MS |
| Default: 5000 |
| Declares the interval between two backup polls on client channels. These polls |
| are run in the timer thread so that gRPC can process connection failures while |
| there is no active polling thread. They help reconnect disconnected client |
| channels (mostly due to idleness), so that the next RPC on this channel won't |
| fail. Set to 0 to turn off the backup polls. |
| |
| * grpc_cfstream |
| set to 1 to turn on CFStream experiment. With this experiment gRPC uses CFStream API to make TCP |
| connections. The option is only available on iOS platform and when macro GRPC_CFSTREAM is defined. |