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