1*cc02d7e2SAndroid Build Coastguard WorkergRPC environment variables 2*cc02d7e2SAndroid Build Coastguard Worker-------------------------- 3*cc02d7e2SAndroid Build Coastguard Worker 4*cc02d7e2SAndroid Build Coastguard WorkergRPC C core based implementations (those contained in this repository) expose 5*cc02d7e2SAndroid Build Coastguard Workersome configuration as environment variables that can be set. 6*cc02d7e2SAndroid Build Coastguard Worker 7*cc02d7e2SAndroid Build Coastguard Worker* grpc_proxy, https_proxy, http_proxy 8*cc02d7e2SAndroid Build Coastguard Worker The URI of the proxy to use for HTTP CONNECT support. These variables are 9*cc02d7e2SAndroid Build Coastguard Worker checked in order, and the first one that has a value is used. 10*cc02d7e2SAndroid Build Coastguard Worker 11*cc02d7e2SAndroid Build Coastguard Worker* no_grpc_proxy, no_proxy 12*cc02d7e2SAndroid Build Coastguard Worker A comma separated list of hostnames to connect to without using a proxy even 13*cc02d7e2SAndroid Build Coastguard Worker if a proxy is set. These variables are checked in order, and the first one 14*cc02d7e2SAndroid Build Coastguard Worker that has a value is used. 15*cc02d7e2SAndroid Build Coastguard Worker 16*cc02d7e2SAndroid Build Coastguard Worker* GRPC_ABORT_ON_LEAKS 17*cc02d7e2SAndroid Build Coastguard Worker A debugging aid to cause a call to abort() when gRPC objects are leaked past 18*cc02d7e2SAndroid Build Coastguard Worker grpc_shutdown(). Set to 1 to cause the abort, if unset or 0 it does not 19*cc02d7e2SAndroid Build Coastguard Worker abort the process. 20*cc02d7e2SAndroid Build Coastguard Worker 21*cc02d7e2SAndroid Build Coastguard Worker* GOOGLE_APPLICATION_CREDENTIALS 22*cc02d7e2SAndroid Build Coastguard Worker The path to find the credentials to use when Google credentials are created 23*cc02d7e2SAndroid Build Coastguard Worker 24*cc02d7e2SAndroid Build Coastguard Worker* GRPC_SSL_CIPHER_SUITES 25*cc02d7e2SAndroid Build Coastguard Worker A colon separated list of cipher suites to use with OpenSSL 26*cc02d7e2SAndroid Build Coastguard Worker Defaults to: 27*cc02d7e2SAndroid Build Coastguard Worker ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384 28*cc02d7e2SAndroid Build Coastguard Worker 29*cc02d7e2SAndroid Build Coastguard Worker* GRPC_DEFAULT_SSL_ROOTS_FILE_PATH 30*cc02d7e2SAndroid Build Coastguard Worker PEM file to load SSL roots from 31*cc02d7e2SAndroid Build Coastguard Worker 32*cc02d7e2SAndroid Build Coastguard Worker* GRPC_POLL_STRATEGY [posix-style environments only] 33*cc02d7e2SAndroid Build Coastguard Worker Declares which polling engines to try when starting gRPC. 34*cc02d7e2SAndroid Build Coastguard Worker This is a comma-separated list of engines, which are tried in priority order 35*cc02d7e2SAndroid Build Coastguard Worker first -> last. 36*cc02d7e2SAndroid Build Coastguard Worker Available polling engines include: 37*cc02d7e2SAndroid Build Coastguard Worker - epoll (linux-only) - a polling engine based around the epoll family of 38*cc02d7e2SAndroid Build Coastguard Worker system calls 39*cc02d7e2SAndroid Build Coastguard Worker - poll - a portable polling engine based around poll(), intended to be a 40*cc02d7e2SAndroid Build Coastguard Worker fallback engine when nothing better exists 41*cc02d7e2SAndroid Build Coastguard Worker - legacy - the (deprecated) original polling engine for gRPC 42*cc02d7e2SAndroid Build Coastguard Worker 43*cc02d7e2SAndroid Build Coastguard Worker* GRPC_TRACE 44*cc02d7e2SAndroid Build Coastguard Worker A comma separated list of tracers that provide additional insight into how 45*cc02d7e2SAndroid Build Coastguard Worker gRPC C core is processing requests via debug logs. Available tracers include: 46*cc02d7e2SAndroid Build Coastguard Worker - api - traces api calls to the C core 47*cc02d7e2SAndroid Build Coastguard Worker - bdp_estimator - traces behavior of bdp estimation logic 48*cc02d7e2SAndroid Build Coastguard Worker - call_error - traces the possible errors contributing to final call status 49*cc02d7e2SAndroid Build Coastguard Worker - cares_resolver - traces operations of the c-ares based DNS resolver 50*cc02d7e2SAndroid Build Coastguard Worker - cares_address_sorting - traces operations of the c-ares based DNS 51*cc02d7e2SAndroid Build Coastguard Worker resolver's resolved address sorter 52*cc02d7e2SAndroid Build Coastguard Worker - cds_lb - traces cds LB policy 53*cc02d7e2SAndroid Build Coastguard Worker - channel - traces operations on the C core channel stack 54*cc02d7e2SAndroid Build Coastguard Worker - channel_stack - traces the set of filters in a channel stack upon 55*cc02d7e2SAndroid Build Coastguard Worker construction 56*cc02d7e2SAndroid Build Coastguard Worker - client_channel - traces client channel control plane activity, including 57*cc02d7e2SAndroid Build Coastguard Worker resolver and load balancing policy interaction 58*cc02d7e2SAndroid Build Coastguard Worker - client_channel_call - traces client channel call activity related to name 59*cc02d7e2SAndroid Build Coastguard Worker resolution 60*cc02d7e2SAndroid Build Coastguard Worker - client_channel_lb_call - traces client channel call activity related 61*cc02d7e2SAndroid Build Coastguard Worker to load balancing picking 62*cc02d7e2SAndroid Build Coastguard Worker - compression - traces compression operations 63*cc02d7e2SAndroid Build Coastguard Worker - connectivity_state - traces connectivity state changes to channels 64*cc02d7e2SAndroid Build Coastguard Worker - cronet - traces state in the cronet transport engine 65*cc02d7e2SAndroid Build Coastguard Worker - dns_resolver - traces state in the native DNS resolver 66*cc02d7e2SAndroid Build Coastguard Worker - executor - traces grpc's internal thread pool ('the executor') 67*cc02d7e2SAndroid Build Coastguard Worker - glb - traces the grpclb load balancer 68*cc02d7e2SAndroid Build Coastguard Worker - handshaker - traces handshaking state 69*cc02d7e2SAndroid Build Coastguard Worker - health_check_client - traces health checking client code 70*cc02d7e2SAndroid Build Coastguard Worker - http - traces state in the http2 transport engine 71*cc02d7e2SAndroid Build Coastguard Worker - http2_stream_state - traces all http2 stream state mutations. 72*cc02d7e2SAndroid Build Coastguard Worker - http2_ping - traces pings/ping acks/antagonist writes in http2 stack. 73*cc02d7e2SAndroid Build Coastguard Worker - http1 - traces HTTP/1.x operations performed by gRPC 74*cc02d7e2SAndroid Build Coastguard Worker - inproc - traces the in-process transport 75*cc02d7e2SAndroid Build Coastguard Worker - http_keepalive - traces gRPC keepalive pings 76*cc02d7e2SAndroid Build Coastguard Worker - flowctl - traces http2 flow control 77*cc02d7e2SAndroid Build Coastguard Worker - op_failure - traces error information when failure is pushed onto a 78*cc02d7e2SAndroid Build Coastguard Worker completion queue 79*cc02d7e2SAndroid Build Coastguard Worker - pick_first - traces the pick first load balancing policy 80*cc02d7e2SAndroid Build Coastguard Worker - plugin_credentials - traces plugin credentials 81*cc02d7e2SAndroid Build Coastguard Worker - pollable_refcount - traces reference counting of 'pollable' objects (only 82*cc02d7e2SAndroid Build Coastguard Worker in DEBUG) 83*cc02d7e2SAndroid Build Coastguard Worker - priority_lb - traces priority LB policy 84*cc02d7e2SAndroid Build Coastguard Worker - resource_quota - trace resource quota objects internals 85*cc02d7e2SAndroid Build Coastguard Worker - ring_hash_lb - traces the ring hash load balancing policy 86*cc02d7e2SAndroid Build Coastguard Worker - rls_lb - traces the RLS load balancing policy 87*cc02d7e2SAndroid Build Coastguard Worker - round_robin - traces the round_robin load balancing policy 88*cc02d7e2SAndroid Build Coastguard Worker - weighted_round_robin_lb - traces the weighted_round_robin load balancing 89*cc02d7e2SAndroid Build Coastguard Worker policy 90*cc02d7e2SAndroid Build Coastguard Worker - queue_pluck 91*cc02d7e2SAndroid Build Coastguard Worker - grpc_authz_api - traces gRPC authorization 92*cc02d7e2SAndroid Build Coastguard Worker - server_channel - lightweight trace of significant server channel events 93*cc02d7e2SAndroid Build Coastguard Worker - secure_endpoint - traces bytes flowing through encrypted channels 94*cc02d7e2SAndroid Build Coastguard Worker - subchannel - traces the connectivity state of subchannel 95*cc02d7e2SAndroid Build Coastguard Worker - subchannel_pool - traces subchannel pool 96*cc02d7e2SAndroid Build Coastguard Worker - timer - timers (alarms) in the grpc internals 97*cc02d7e2SAndroid Build Coastguard Worker - timer_check - more detailed trace of timer logic in grpc internals 98*cc02d7e2SAndroid Build Coastguard Worker - transport_security - traces metadata about secure channel establishment 99*cc02d7e2SAndroid Build Coastguard Worker - tcp - traces bytes in and out of a channel 100*cc02d7e2SAndroid Build Coastguard Worker - tsi - traces tsi transport security 101*cc02d7e2SAndroid Build Coastguard Worker - weighted_target_lb - traces weighted_target LB policy 102*cc02d7e2SAndroid Build Coastguard Worker - xds_client - traces xds client 103*cc02d7e2SAndroid Build Coastguard Worker - xds_cluster_manager_lb - traces cluster manager LB policy 104*cc02d7e2SAndroid Build Coastguard Worker - xds_cluster_impl_lb - traces cluster impl LB policy 105*cc02d7e2SAndroid Build Coastguard Worker - xds_resolver - traces xds resolver 106*cc02d7e2SAndroid Build Coastguard Worker 107*cc02d7e2SAndroid Build Coastguard Worker The following tracers will only run in binaries built in DEBUG mode. This is 108*cc02d7e2SAndroid Build Coastguard Worker accomplished by invoking `CONFIG=dbg make <target>` 109*cc02d7e2SAndroid Build Coastguard Worker - metadata - tracks creation and mutation of metadata 110*cc02d7e2SAndroid Build Coastguard Worker - combiner - traces combiner lock state 111*cc02d7e2SAndroid Build Coastguard Worker - call_combiner - traces call combiner state 112*cc02d7e2SAndroid Build Coastguard Worker - closure - tracks closure creation, scheduling, and completion 113*cc02d7e2SAndroid Build Coastguard Worker - fd_trace - traces fd create(), shutdown() and close() calls for channel fds. 114*cc02d7e2SAndroid Build Coastguard Worker - pending_tags - traces still-in-progress tags on completion queues 115*cc02d7e2SAndroid Build Coastguard Worker - polling - traces the selected polling engine 116*cc02d7e2SAndroid Build Coastguard Worker - polling_api - traces the api calls to polling engine 117*cc02d7e2SAndroid Build Coastguard Worker - subchannel_refcount 118*cc02d7e2SAndroid Build Coastguard Worker - queue_refcount 119*cc02d7e2SAndroid Build Coastguard Worker - error_refcount 120*cc02d7e2SAndroid Build Coastguard Worker - stream_refcount 121*cc02d7e2SAndroid Build Coastguard Worker - slice_refcount 122*cc02d7e2SAndroid Build Coastguard Worker - workqueue_refcount 123*cc02d7e2SAndroid Build Coastguard Worker - fd_refcount 124*cc02d7e2SAndroid Build Coastguard Worker - cq_refcount 125*cc02d7e2SAndroid Build Coastguard Worker - auth_context_refcount 126*cc02d7e2SAndroid Build Coastguard Worker - security_connector_refcount 127*cc02d7e2SAndroid Build Coastguard Worker - resolver_refcount 128*cc02d7e2SAndroid Build Coastguard Worker - lb_policy_refcount 129*cc02d7e2SAndroid Build Coastguard Worker - chttp2_refcount 130*cc02d7e2SAndroid Build Coastguard Worker 131*cc02d7e2SAndroid Build Coastguard Worker 'all' can additionally be used to turn all traces on. 132*cc02d7e2SAndroid Build Coastguard Worker Individual traces can be disabled by prefixing them with '-'. 133*cc02d7e2SAndroid Build Coastguard Worker 134*cc02d7e2SAndroid Build Coastguard Worker 'refcount' will turn on all of the tracers for refcount debugging. 135*cc02d7e2SAndroid Build Coastguard Worker 136*cc02d7e2SAndroid Build Coastguard Worker if 'list_tracers' is present, then all of the available tracers will be 137*cc02d7e2SAndroid Build Coastguard Worker printed when the program starts up. 138*cc02d7e2SAndroid Build Coastguard Worker 139*cc02d7e2SAndroid Build Coastguard Worker Example: 140*cc02d7e2SAndroid Build Coastguard Worker export GRPC_TRACE=all,-pending_tags 141*cc02d7e2SAndroid Build Coastguard Worker 142*cc02d7e2SAndroid Build Coastguard Worker* GRPC_VERBOSITY 143*cc02d7e2SAndroid Build Coastguard Worker Default gRPC logging verbosity - one of: 144*cc02d7e2SAndroid Build Coastguard Worker - DEBUG - log all gRPC messages 145*cc02d7e2SAndroid Build Coastguard Worker - INFO - log INFO and ERROR message 146*cc02d7e2SAndroid Build Coastguard Worker - ERROR - log only errors (default) 147*cc02d7e2SAndroid Build Coastguard Worker - NONE - won't log any 148*cc02d7e2SAndroid Build Coastguard Worker 149*cc02d7e2SAndroid Build Coastguard Worker* GRPC_STACKTRACE_MINLOGLEVEL 150*cc02d7e2SAndroid Build Coastguard Worker Minimum loglevel to print the stack-trace - one of DEBUG, INFO, ERROR, and NONE. 151*cc02d7e2SAndroid Build Coastguard Worker NONE is a default value. 152*cc02d7e2SAndroid Build Coastguard Worker 153*cc02d7e2SAndroid Build Coastguard Worker* GRPC_TRACE_FUZZER 154*cc02d7e2SAndroid Build Coastguard Worker if set, the fuzzers will output trace (it is usually suppressed). 155*cc02d7e2SAndroid Build Coastguard Worker 156*cc02d7e2SAndroid Build Coastguard Worker* GRPC_DNS_RESOLVER 157*cc02d7e2SAndroid Build Coastguard Worker Declares which DNS resolver to use. The default is ares if gRPC is built with 158*cc02d7e2SAndroid Build Coastguard Worker c-ares support. Otherwise, the value of this environment variable is ignored. 159*cc02d7e2SAndroid Build Coastguard Worker Available DNS resolver include: 160*cc02d7e2SAndroid Build Coastguard Worker - ares (default on most platforms except iOS, Android or Node)- a DNS 161*cc02d7e2SAndroid Build Coastguard Worker resolver based around the c-ares library 162*cc02d7e2SAndroid Build Coastguard Worker - native - a DNS resolver based around getaddrinfo(), creates a new thread to 163*cc02d7e2SAndroid Build Coastguard Worker perform name resolution 164*cc02d7e2SAndroid Build Coastguard Worker 165*cc02d7e2SAndroid Build Coastguard Worker *NetBIOS and DNS*: If your network relies on NetBIOS name resolution or a mixture of 166*cc02d7e2SAndroid Build Coastguard Worker DNS and NetBIOS name resolution (e.g. in some Windows networks) then you should use 167*cc02d7e2SAndroid Build Coastguard Worker the '*native*' DNS resolver or make sure all NetBIOS names are 168*cc02d7e2SAndroid Build Coastguard Worker also configured in DNS. The '*ares*' DNS resolver only supports DNS name resolution. 169*cc02d7e2SAndroid Build Coastguard Worker 170*cc02d7e2SAndroid Build Coastguard Worker* GRPC_CLIENT_CHANNEL_BACKUP_POLL_INTERVAL_MS 171*cc02d7e2SAndroid Build Coastguard Worker Default: 5000 172*cc02d7e2SAndroid Build Coastguard Worker Declares the interval between two backup polls on client channels. These polls 173*cc02d7e2SAndroid Build Coastguard Worker are run in the timer thread so that gRPC can process connection failures while 174*cc02d7e2SAndroid Build Coastguard Worker there is no active polling thread. They help reconnect disconnected client 175*cc02d7e2SAndroid Build Coastguard Worker channels (mostly due to idleness), so that the next RPC on this channel won't 176*cc02d7e2SAndroid Build Coastguard Worker fail. Set to 0 to turn off the backup polls. 177*cc02d7e2SAndroid Build Coastguard Worker 178*cc02d7e2SAndroid Build Coastguard Worker* grpc_cfstream 179*cc02d7e2SAndroid Build Coastguard Worker set to 1 to turn on CFStream experiment. With this experiment gRPC uses CFStream API to make TCP 180*cc02d7e2SAndroid Build Coastguard Worker connections. The option is only available on iOS platform and when macro GRPC_CFSTREAM is defined. 181