• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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