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