Project: gRPC (Orchestration & Management / Remote Procedure Call)
File: environment_variables.md

gRPC environment variables -- gRPC C core based implementations (those contained in this repository) expose some configuration as environment variables that can be set. grpcproxy, httpsproxy, 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. nogrpcproxy, 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. GRPCABORTON_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. GOOGLEAPPLICATIONCREDENTIALS The path to find the credentials to use when Google credentials are created GRPCSSLCIPHER_SUITES A colon separated list of cipher suites to use with OpenSSL Defaults to: ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384 GRPCDEFAULTSSLROOTSFILE_PATH PEM file to load SSL roots from GRPCPOLLSTRATEGY [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 caresaddresssorting - 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 clientchannelcall - traces client channel call activity related to name resolution clientchannellb_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 healthcheckclient - traces health checking client code http - traces state in the http2 transport engine http2streamstate - traces all http2 stream state mutations. http2_ping - traces pings/ping acks/antagonist writes in http2 stack. http1 - traces

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 ringhashlb - traces the ring hash load balancing policy rls_lb - traces the RLS load balancing policy roundrobin - traces the roundrobin load balancing policy weightedroundrobinlb - traces the weightedround_robin load balancing policy queue_pluck grpcauthzapi - 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 weightedtargetlb - traces weighted_target LB policy xds_client - traces xds client xdsclustermanager_lb - traces cluster manager LB policy xdsclusterimpl_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 authcontextrefcount securityconnectorrefcount resolver_refcount lbpolicyrefcount 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 GRPCTRACE=all,-pendingtags 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 GRPCSTACKTRACEMINLOGLEVEL Minimum loglevel to print the stack-trace - one of DEBUG, INFO, ERROR, and NONE. NONE is a default value. GRPCTRACEFUZZER if set, the fuzzers will output trace (it is usually suppressed). GRPCDNSRESOLVER 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. GRPCCLIENTCHANNELBACKUPPOLLINTERVALMS 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