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