aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/environment_variables.md
blob: 54c9c8e731c3980704ed1f3f7ec8e1b06586f9c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
gRPC environment variables
--------------------------

gRPC C core based implementations (those contained in this repository) expose
some configuration as environment variables that can be set.

* http_proxy
  The URI of the proxy to use for HTTP CONNECT support.

* GRPC_ABORT_ON_LEAKS
  A debugging aid to cause a call to abort() when gRPC objects are leaked past
  grpc_shutdown(). Set to 1 to cause the abort, if unset or 0 it does not
  abort the process.

* GOOGLE_APPLICATION_CREDENTIALS
  The path to find the credentials to use when Google credentials are created

* GRPC_SSL_CIPHER_SUITES
  A colon separated list of cipher suites to use with OpenSSL
  Defaults to:
    ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-GCM-SHA384

* GRPC_DEFAULT_SSL_ROOTS_FILE_PATH
  PEM file to load SSL roots from

* GRPC_POLL_STRATEGY [posix-style environments only]
  Declares which polling engines to try when starting gRPC.
  This is a comma-separated list of engines, which are tried in priority order
  first -> last.
  Available polling engines include:
  - epoll (linux-only) - a polling engine based around the epoll family of
    system calls
  - poll - a portable polling engine based around poll(), intended to be a
    fallback engine when nothing better exists
  - legacy - the (deprecated) original polling engine for gRPC

* GRPC_TRACE
  A comma separated list of tracers that provide additional insight into how
  gRPC C core is processing requests via debug logs. Available tracers include:
  - api - traces api calls to the C core
  - bdp_estimator - traces behavior of bdp estimation logic
  - call_combiner - traces call combiner state
  - call_error - traces the possible errors contributing to final call status
  - channel - traces operations on the C core channel stack
  - client_channel - traces client channel activity, including resolver
    and load balancing policy interaction
  - combiner - traces combiner lock state
  - compression - traces compression operations
  - connectivity_state - traces connectivity state changes to channels
  - channel_stack_builder - traces information about channel stacks being built
  - http - traces state in the http2 transport engine
  - http1 - traces HTTP/1.x operations performed by gRPC
  - inproc - traces the in-process transport
  - flowctl - traces http2 flow control
  - op_failure - traces error information when failure is pushed onto a
    completion queue
  - round_robin - traces the round_robin load balancing policy
  - pick_first - traces the pick first load balancing policy
  - resource_quota - trace resource quota objects internals
  - glb - traces the grpclb load balancer
  - queue_pluck
  - queue_timeout
  - server_channel - lightweight trace of significant server channel events
  - secure_endpoint - traces bytes flowing through encrypted channels
  - timer - timers (alarms) in the grpc internals
  - timer_check - more detailed trace of timer logic in grpc internals
  - transport_security - traces metadata about secure channel establishment
  - tcp - traces bytes in and out of a channel
  - tsi - traces tsi transport security

  The following tracers will only run in binaries built in DEBUG mode. This is
  accomplished by invoking `CONFIG=dbg make <target>`
  - alarm_refcount - refcounting traces for grpc_alarm structure
  - metadata - tracks creation and mutation of metadata
  - closure - tracks closure creation, scheduling, and completion
  - pending_tags - traces still-in-progress tags on completion queues
  - polling - traces the selected polling engine
  - queue_refcount
  - error_refcount
  - stream_refcount
  - workqueue_refcount
  - fd_refcount
  - cq_refcount
  - auth_context_refcount
  - security_connector_refcount
  - resolver_refcount
  - lb_policy_refcount
  - chttp2_refcount

  'all' can additionally be used to turn all traces on.
  Individual traces can be disabled by prefixing them with '-'.

  'refcount' will turn on all of the tracers for refcount debugging.

  if 'list_tracers' is present, then all of the available tracers will be
  printed when the program starts up.

  Example:
  export GRPC_TRACE=all,-pending_tags

* GRPC_VERBOSITY
  Default gRPC logging verbosity - one of:
  - DEBUG - log all gRPC messages
  - INFO - log INFO and ERROR message
  - ERROR - log only errors

* GRPC_TRACE_FUZZER
  if set, the fuzzers will output trace (it is usually supressed).

* GRPC_DNS_RESOLVER
  Declares which DNS resolver to use. The default is ares if gRPC is built with
  c-ares support. Otherwise, the value of this environment variable is ignored.
  Available DNS resolver include:
  - native (default)- a DNS resolver based around getaddrinfo(), creates a new thread to
    perform name resolution
  - ares - a DNS resolver based around the c-ares library

* GRPC_DISABLE_CHANNEL_CONNECTIVITY_WATCHER
  The channel connectivity watcher uses one extra thread to check the channel
  state every 500 ms on the client side. It can help reconnect disconnected
  client channels (mostly due to idleness), so that the next RPC on this channel
  won't fail. Set to 1 to turn off this watcher and save a thread. Please note
  this is a temporary work-around, it will be removed in the future once we have
  support for automatically reestablishing failed connections.