xref: /aosp_15_r20/external/grpc-grpc/doc/environment_variables.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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