summarylogtreecommitdiffstats
path: root/.rr.yaml.sample-full
blob: b716800e9218033a84025703a9a9b524afabd09f (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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
rpc:
	listen: tcp://127.0.0.1:6001

server:
	command: "php tests/psr-worker-bench.php"
	# optional
	user: ""
	# optional
	group: ""
	env:
	- SOME_KEY: "SOME_VALUE"
	- SOME_KEY2: "SOME_VALUE2"
	relay: "pipes"
	relay_timeout: 20s


# optional for development
logs:
	# default
	mode: development
	level: debug
	encoding: console
	output: stderr
	err_output: stderr
	channels:
	http:
		mode: development
		level: panic
		encoding: console
		output: stdout
	server:
		mode: production
		level: info
		encoding: console
		output: stderr
	rpc:
		mode: production
		level: debug
		encoding: console
		output: stderr

# Workflow and activity mesh service
temporal:
	address: localhost:7233
	activities:
	num_workers: 4
	codec: proto
	debug_level: 2

http:
	# host and port separated by semicolon
	address: 127.0.0.1:44933
	max_request_size: 1024
	# middlewares for the http plugin, order matters
	middleware: [ "gzip", "headers" ]
	# uploads
	uploads:
	forbid: [ ".php", ".exe", ".bat" ]
	trusted_subnets:
	[
		"10.0.0.0/8",
		"127.0.0.0/8",
		"172.16.0.0/12",
		"192.168.0.0/16",
		"::1/128",
		"fc00::/7",
		"fe80::/10",
	]
	# headers
	headers:
	cors:
		allowed_origin: "*"
		allowed_headers: "*"
		allowed_methods: "GET,POST,PUT,DELETE"
		allow_credentials: true
		exposed_headers: "Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma"
		max_age: 600
	request:
		input: "custom-header"
	response:
		output: "output-header"
	# http static
	static:
	dir: "tests"
	forbid: [ "" ]
	request:
		"input": "custom-header"
	response:
		"output": "output-header"

	pool:
	# default - num of logical CPUs
	num_workers: 6
	# default 0 - no limit
	max_jobs: 0
	# default 1 minute
	allocate_timeout: 60s
	# default 1 minute
	destroy_timeout: 60s
	# supervisor used to control http workers
	supervisor:
		# watch_tick defines how often to check the state of the workers (seconds)
		watch_tick: 1s
		# ttl defines maximum time worker is allowed to live (seconds) (soft)
		ttl: 0
		# idle_ttl defines maximum duration worker can spend in idle mode after first use. Disabled when 0 (seconds)
		idle_ttl: 10s
		# exec_ttl defines maximum lifetime per job (seconds)
		exec_ttl: 10s
		# max_worker_memory limits memory usage per worker (MB)
		max_worker_memory: 100

	ssl:
	# host and port separated by semicolon (default :443)
	address: :8892
	redirect: false
	cert: fixtures/server.crt
	key: fixtures/server.key
	root_ca: root.crt
	fcgi:
	address: tcp://0.0.0.0:7921
	http2:
	h2c: false
	max_concurrent_streams: 128

# plugin which can be used in other Golang plugins
# this is not an PHP plugin
redis:
	# UniversalClient is an abstract client which - based on the provided options -
	# can connect to either clusters, or sentinel-backed failover instances
	# or simple single-instance servers. This can be useful for testing
	# cluster-specific applications locally.
	# if the number of addrs is 1 and master_name is empty, a single-node redis Client will be returned
	# if the number of addrs is two or more, a ClusterClient will be returned
	addrs:
	- "localhost:6379"
	# if a MasterName is passed a sentinel-backed FailoverClient will be returned
	master_name: ""
	username: ""
	password: ""
	db: 0
	sentinel_password: ""
	route_by_latency: false
	route_randomly: false
	dial_timeout: 0 # accepted values [1s, 5m, 3h]
	max_retries: 1
	min_retry_backoff: 0 # accepted values [1s, 5m, 3h]
	max_retry_backoff: 0 # accepted values [1s, 5m, 3h]
	pool_size: 0
	min_idle_conns: 0
	max_conn_age: 0 # accepted values [1s, 5m, 3h]
	read_timeout: 0 # accepted values [1s, 5m, 3h]
	write_timeout: 0 # accepted values [1s, 5m, 3h]
	pool_timeout: 0 # accepted values [1s, 5m, 3h]
	idle_timeout: 0 # accepted values [1s, 5m, 3h]
	idle_check_freq: 0 # accepted values [1s, 5m, 3h]
	read_only: false

# boltdb simple driver
boltdb:
	dir: "."
	file: "rr"
	bucket: "test"
	permissions: 0777
	# keys ttl check interval
	TTL: 60 # seconds

# memcached driver
memcached:
	addr:
	- "localhost:11211"

# in memory KV driver
memory:
	# keys ttl check interval
	interval: 60

metrics:
	# prometheus client address (path /metrics added automatically)
	address: localhost:2112
	collect:
	app_metric:
		type: histogram
		help: "Custom application metric"
		labels: [ "type" ]
		buckets: [ 0.1, 0.2, 0.3, 1.0 ]
		# objectives defines the quantile rank estimates with their respective
		#	absolute error [ for summary only ]
		objectives:
		- 1.4: 2.3
		- 2.0: 1.4

reload:
	# sync interval
	interval: 1s
	# global patterns to sync
	patterns: [ ".go" ]
	# list of included for sync services
	services:
	http:
		# recursive search for file patterns to add
		recursive: true
		# ignored folders
		ignore: [ "vendor" ]
		# service specific file pattens to sync
		patterns: [ ".php", ".go", ".md" ]
		# directories to sync. If recursive is set to true,
		# recursive sync will be applied only to the directories in `dirs` section
		dirs: [ "." ]