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_combiner - traces call combiner state 43 - call_error - traces the possible errors contributing to final call status 44 - channel - traces operations on the C core channel stack 45 - client_channel - traces client channel activity, including resolver 46 and load balancing policy interaction 47 - compression - traces compression operations 48 - connectivity_state - traces connectivity state changes to channels 49 - executor - traces grpc's internal thread pool ('the executor') 50 - fd_trace - traces fd create(), shutdown() and close() calls for channel fds. 51 Also traces epoll fd create()/close() calls in epollex polling engine 52 traces epoll-fd creation/close calls for epollex polling engine 53 - glb - traces the grpclb load balancer 54 - handshaker - traces handshaking state 55 - http - traces state in the http2 transport engine 56 - http2_stream_state - traces all http2 stream state mutations. 57 - http1 - traces HTTP/1.x operations performed by gRPC 58 - inproc - traces the in-process transport 59 - flowctl - traces http2 flow control 60 - op_failure - traces error information when failure is pushed onto a 61 completion queue 62 - pick_first - traces the pick first load balancing policy 63 - plugin_credentials - traces plugin credentials 64 - pollable_refcount - traces reference counting of 'pollable' objects (only 65 in DEBUG) 66 - resource_quota - trace resource quota objects internals 67 - round_robin - traces the round_robin load balancing policy 68 - queue_pluck 69 - server_channel - lightweight trace of significant server channel events 70 - secure_endpoint - traces bytes flowing through encrypted channels 71 - timer - timers (alarms) in the grpc internals 72 - timer_check - more detailed trace of timer logic in grpc internals 73 - transport_security - traces metadata about secure channel establishment 74 - tcp - traces bytes in and out of a channel 75 - tsi - traces tsi transport security 76 77 The following tracers will only run in binaries built in DEBUG mode. This is 78 accomplished by invoking `CONFIG=dbg make <target>` 79 - alarm_refcount - refcounting traces for grpc_alarm structure 80 - metadata - tracks creation and mutation of metadata 81 - combiner - traces combiner lock state 82 - closure - tracks closure creation, scheduling, and completion 83 - pending_tags - traces still-in-progress tags on completion queues 84 - polling - traces the selected polling engine 85 - polling_api - traces the api calls to polling engine 86 - queue_refcount 87 - error_refcount 88 - stream_refcount 89 - workqueue_refcount 90 - fd_refcount 91 - cq_refcount 92 - auth_context_refcount 93 - security_connector_refcount 94 - resolver_refcount 95 - lb_policy_refcount 96 - chttp2_refcount 97 98 'all' can additionally be used to turn all traces on. 99 Individual traces can be disabled by prefixing them with '-'. 100 101 'refcount' will turn on all of the tracers for refcount debugging. 102 103 if 'list_tracers' is present, then all of the available tracers will be 104 printed when the program starts up. 105 106 Example: 107 export GRPC_TRACE=all,-pending_tags 108 109* GRPC_VERBOSITY 110 Default gRPC logging verbosity - one of: 111 - DEBUG - log all gRPC messages 112 - INFO - log INFO and ERROR message 113 - ERROR - log only errors 114 115* GRPC_TRACE_FUZZER 116 if set, the fuzzers will output trace (it is usually supressed). 117 118* GRPC_DNS_RESOLVER 119 Declares which DNS resolver to use. The default is ares if gRPC is built with 120 c-ares support. Otherwise, the value of this environment variable is ignored. 121 Available DNS resolver include: 122 - native (default)- a DNS resolver based around getaddrinfo(), creates a new thread to 123 perform name resolution 124 - ares - a DNS resolver based around the c-ares library 125 126* GRPC_CLIENT_CHANNEL_BACKUP_POLL_INTERVAL_MS 127 Default: 5000 128 Declares the interval between two backup polls on client channels. These polls 129 are run in the timer thread so that gRPC can process connection failures while 130 there is no active polling thread. They help reconnect disconnected client 131 channels (mostly due to idleness), so that the next RPC on this channel won't 132 fail. Set to 0 to turn off the backup polls. 133 134* GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL 135 if set, flow control will be effectively disabled. Max out all values and 136 assume the remote peer does the same. Thus we can ignore any flow control 137 bookkeeping, error checking, and decision making 138 139* grpc_cfstream 140 set to 1 to turn on CFStream experiment. With this experiment gRPC uses CFStream API to make TCP 141 connections. The option is only available on iOS platform and when macro GRPC_CFSTREAM is defined. 142