##// END OF EJS Templates
config: expose statsd config variable
super-admin -
r1006:ff9ef25e default
parent child Browse files
Show More
@@ -1,246 +1,247 b''
1 1 ## -*- coding: utf-8 -*-
2 2
3 3 ; #################################
4 4 ; RHODECODE VCSSERVER CONFIGURATION
5 5 ; #################################
6 6
7 7 [server:main]
8 8 ; COMMON HOST/IP CONFIG
9 9 host = 0.0.0.0
10 10 port = 9900
11 11
12 12 ; ##################################################
13 13 ; WAITRESS WSGI SERVER - Recommended for Development
14 14 ; ##################################################
15 15
16 16 ; use server type
17 17 use = egg:waitress#main
18 18
19 19 ; number of worker threads
20 20 threads = 5
21 21
22 22 ; MAX BODY SIZE 100GB
23 23 max_request_body_size = 107374182400
24 24
25 25 ; Use poll instead of select, fixes file descriptors limits problems.
26 26 ; May not work on old windows systems.
27 27 asyncore_use_poll = true
28 28
29 29
30 30 ; ###########################
31 31 ; GUNICORN APPLICATION SERVER
32 32 ; ###########################
33 33
34 34 ; run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
35 35
36 36 ; Module to use, this setting shouldn't be changed
37 37 #use = egg:gunicorn#main
38 38
39 39 ; Sets the number of process workers. More workers means more concurrent connections
40 40 ; RhodeCode can handle at the same time. Each additional worker also it increases
41 41 ; memory usage as each has it's own set of caches.
42 42 ; Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
43 43 ; than 8-10 unless for really big deployments .e.g 700-1000 users.
44 44 ; `instance_id = *` must be set in the [app:main] section below (which is the default)
45 45 ; when using more than 1 worker.
46 46 #workers = 2
47 47
48 48 ; Gunicorn access log level
49 49 #loglevel = info
50 50
51 51 ; Process name visible in process list
52 52 #proc_name = rhodecode_vcsserver
53 53
54 54 ; Type of worker class, one of `sync`, `gevent`
55 55 ; currently `sync` is the only option allowed.
56 56 #worker_class = sync
57 57
58 58 ; The maximum number of simultaneous clients. Valid only for gevent
59 59 #worker_connections = 10
60 60
61 61 ; Max number of requests that worker will handle before being gracefully restarted.
62 62 ; Prevents memory leaks, jitter adds variability so not all workers are restarted at once.
63 63 #max_requests = 1000
64 64 #max_requests_jitter = 30
65 65
66 66 ; Amount of time a worker can spend with handling a request before it
67 67 ; gets killed and restarted. By default set to 21600 (6hrs)
68 68 ; Examples: 1800 (30min), 3600 (1hr), 7200 (2hr), 43200 (12h)
69 69 #timeout = 21600
70 70
71 71 ; The maximum size of HTTP request line in bytes.
72 72 ; 0 for unlimited
73 73 #limit_request_line = 0
74 74
75 75 ; Limit the number of HTTP headers fields in a request.
76 76 ; By default this value is 100 and can't be larger than 32768.
77 77 #limit_request_fields = 32768
78 78
79 79 ; Limit the allowed size of an HTTP request header field.
80 80 ; Value is a positive number or 0.
81 81 ; Setting it to 0 will allow unlimited header field sizes.
82 82 #limit_request_field_size = 0
83 83
84 84 ; Timeout for graceful workers restart.
85 85 ; After receiving a restart signal, workers have this much time to finish
86 86 ; serving requests. Workers still alive after the timeout (starting from the
87 87 ; receipt of the restart signal) are force killed.
88 88 ; Examples: 1800 (30min), 3600 (1hr), 7200 (2hr), 43200 (12h)
89 89 #graceful_timeout = 3600
90 90
91 91 # The number of seconds to wait for requests on a Keep-Alive connection.
92 92 # Generally set in the 1-5 seconds range.
93 93 #keepalive = 2
94 94
95 95 ; Maximum memory usage that each worker can use before it will receive a
96 96 ; graceful restart signal 0 = memory monitoring is disabled
97 97 ; Examples: 268435456 (256MB), 536870912 (512MB)
98 98 ; 1073741824 (1GB), 2147483648 (2GB), 4294967296 (4GB)
99 99 #memory_max_usage = 0
100 100
101 101 ; How often in seconds to check for memory usage for each gunicorn worker
102 102 #memory_usage_check_interval = 60
103 103
104 104 ; Threshold value for which we don't recycle worker if GarbageCollection
105 105 ; frees up enough resources. Before each restart we try to run GC on worker
106 106 ; in case we get enough free memory after that, restart will not happen.
107 107 #memory_usage_recovery_threshold = 0.8
108 108
109 109
110 110 [app:main]
111 111 ; The %(here)s variable will be replaced with the absolute path of parent directory
112 112 ; of this file
113 113 use = egg:rhodecode-vcsserver
114 114
115 115
116 116 ; #############
117 117 ; DEBUG OPTIONS
118 118 ; #############
119 119
120 120 # During development the we want to have the debug toolbar enabled
121 121 pyramid.includes =
122 122 pyramid_debugtoolbar
123 123
124 124 debugtoolbar.hosts = 0.0.0.0/0
125 125 debugtoolbar.exclude_prefixes =
126 126 /css
127 127 /fonts
128 128 /images
129 129 /js
130 130
131 131 ; #################
132 132 ; END DEBUG OPTIONS
133 133 ; #################
134 134
135 135 ; Pyramid default locales, we need this to be set
136 136 pyramid.default_locale_name = en
137 137
138 138 ; default locale used by VCS systems
139 139 locale = en_US.UTF-8
140 140
141 141 ; path to binaries for vcsserver, it should be set by the installer
142 142 ; at installation time, e.g /home/user/vcsserver-1/profile/bin
143 143 ; it can also be a path to nix-build output in case of development
144 144 core.binary_dir = ""
145 145
146 146 ; Custom exception store path, defaults to TMPDIR
147 147 ; This is used to store exception from RhodeCode in shared directory
148 148 #exception_tracker.store_path =
149 149
150 150 ; #############
151 151 ; DOGPILE CACHE
152 152 ; #############
153 153
154 154 ; Default cache dir for caches. Putting this into a ramdisk can boost performance.
155 155 ; eg. /tmpfs/data_ramdisk, however this directory might require large amount of space
156 156 cache_dir = %(here)s/data
157 157
158 158 ; ***************************************
159 159 ; `repo_object` cache, default file based
160 160 ; ***************************************
161 161
162 162 ; `repo_object` cache settings for vcs methods for repositories
163 163 rc_cache.repo_object.backend = dogpile.cache.rc.file_namespace
164 164
165 165 ; cache auto-expires after N seconds
166 166 ; Examples: 86400 (1Day), 604800 (7Days), 1209600 (14Days), 2592000 (30days), 7776000 (90Days)
167 167 rc_cache.repo_object.expiration_time = 2592000
168 168
169 169 ; file cache store path. Defaults to `cache_dir =` value or tempdir if both values are not set
170 170 #rc_cache.repo_object.arguments.filename = /tmp/vcsserver_cache.db
171 171
172 172 ; ***********************************************************
173 173 ; `repo_object` cache with redis backend
174 174 ; recommended for larger instance, and for better performance
175 175 ; ***********************************************************
176 176
177 177 ; `repo_object` cache settings for vcs methods for repositories
178 178 #rc_cache.repo_object.backend = dogpile.cache.rc.redis_msgpack
179 179
180 180 ; cache auto-expires after N seconds
181 181 ; Examples: 86400 (1Day), 604800 (7Days), 1209600 (14Days), 2592000 (30days), 7776000 (90Days)
182 182 #rc_cache.repo_object.expiration_time = 2592000
183 183
184 184 ; redis_expiration_time needs to be greater then expiration_time
185 185 #rc_cache.repo_object.arguments.redis_expiration_time = 3592000
186 186
187 187 #rc_cache.repo_object.arguments.host = localhost
188 188 #rc_cache.repo_object.arguments.port = 6379
189 189 #rc_cache.repo_object.arguments.db = 5
190 190 #rc_cache.repo_object.arguments.socket_timeout = 30
191 191 ; more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends
192 192 #rc_cache.repo_object.arguments.distributed_lock = true
193 193
194 194 ; auto-renew lock to prevent stale locks, slower but safer. Use only if problems happen
195 195 #rc_cache.repo_object.arguments.lock_auto_renewal = true
196 196
197 ; Statsd client config
197 ; Statsd client config, this is used to send metrics to statsd
198 ; We recommend setting statsd_exported and scrape them using Promethues
198 199 #statsd.enabled = false
199 200 #statsd.statsd_host = 0.0.0.0
200 201 #statsd.statsd_port = 8125
201 202 #statsd.statsd_prefix =
202 203 #statsd.statsd_ipv6 = false
203 204
204 205 ; #####################
205 206 ; LOGGING CONFIGURATION
206 207 ; #####################
207 208 [loggers]
208 209 keys = root, vcsserver
209 210
210 211 [handlers]
211 212 keys = console
212 213
213 214 [formatters]
214 215 keys = generic
215 216
216 217 ; #######
217 218 ; LOGGERS
218 219 ; #######
219 220 [logger_root]
220 221 level = NOTSET
221 222 handlers = console
222 223
223 224 [logger_vcsserver]
224 225 level = DEBUG
225 226 handlers =
226 227 qualname = vcsserver
227 228 propagate = 1
228 229
229 230
230 231 ; ########
231 232 ; HANDLERS
232 233 ; ########
233 234
234 235 [handler_console]
235 236 class = StreamHandler
236 237 args = (sys.stderr, )
237 238 level = DEBUG
238 239 formatter = generic
239 240
240 241 ; ##########
241 242 ; FORMATTERS
242 243 ; ##########
243 244
244 245 [formatter_generic]
245 246 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
246 247 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,209 +1,210 b''
1 1 ## -*- coding: utf-8 -*-
2 2
3 3 ; #################################
4 4 ; RHODECODE VCSSERVER CONFIGURATION
5 5 ; #################################
6 6
7 7 [server:main]
8 8 ; COMMON HOST/IP CONFIG
9 9 host = 127.0.0.1
10 10 port = 9900
11 11
12 12
13 13 ; ###########################
14 14 ; GUNICORN APPLICATION SERVER
15 15 ; ###########################
16 16
17 17 ; run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
18 18
19 19 ; Module to use, this setting shouldn't be changed
20 20 use = egg:gunicorn#main
21 21
22 22 ; Sets the number of process workers. More workers means more concurrent connections
23 23 ; RhodeCode can handle at the same time. Each additional worker also it increases
24 24 ; memory usage as each has it's own set of caches.
25 25 ; Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
26 26 ; than 8-10 unless for really big deployments .e.g 700-1000 users.
27 27 ; `instance_id = *` must be set in the [app:main] section below (which is the default)
28 28 ; when using more than 1 worker.
29 29 workers = 2
30 30
31 31 ; Gunicorn access log level
32 32 loglevel = info
33 33
34 34 ; Process name visible in process list
35 35 proc_name = rhodecode_vcsserver
36 36
37 37 ; Type of worker class, one of `sync`, `gevent`
38 38 ; currently `sync` is the only option allowed.
39 39 worker_class = sync
40 40
41 41 ; The maximum number of simultaneous clients. Valid only for gevent
42 42 worker_connections = 10
43 43
44 44 ; Max number of requests that worker will handle before being gracefully restarted.
45 45 ; Prevents memory leaks, jitter adds variability so not all workers are restarted at once.
46 46 max_requests = 1000
47 47 max_requests_jitter = 30
48 48
49 49 ; Amount of time a worker can spend with handling a request before it
50 50 ; gets killed and restarted. By default set to 21600 (6hrs)
51 51 ; Examples: 1800 (30min), 3600 (1hr), 7200 (2hr), 43200 (12h)
52 52 timeout = 21600
53 53
54 54 ; The maximum size of HTTP request line in bytes.
55 55 ; 0 for unlimited
56 56 limit_request_line = 0
57 57
58 58 ; Limit the number of HTTP headers fields in a request.
59 59 ; By default this value is 100 and can't be larger than 32768.
60 60 limit_request_fields = 32768
61 61
62 62 ; Limit the allowed size of an HTTP request header field.
63 63 ; Value is a positive number or 0.
64 64 ; Setting it to 0 will allow unlimited header field sizes.
65 65 limit_request_field_size = 0
66 66
67 67 ; Timeout for graceful workers restart.
68 68 ; After receiving a restart signal, workers have this much time to finish
69 69 ; serving requests. Workers still alive after the timeout (starting from the
70 70 ; receipt of the restart signal) are force killed.
71 71 ; Examples: 1800 (30min), 3600 (1hr), 7200 (2hr), 43200 (12h)
72 72 graceful_timeout = 3600
73 73
74 74 # The number of seconds to wait for requests on a Keep-Alive connection.
75 75 # Generally set in the 1-5 seconds range.
76 76 keepalive = 2
77 77
78 78 ; Maximum memory usage that each worker can use before it will receive a
79 79 ; graceful restart signal 0 = memory monitoring is disabled
80 80 ; Examples: 268435456 (256MB), 536870912 (512MB)
81 81 ; 1073741824 (1GB), 2147483648 (2GB), 4294967296 (4GB)
82 82 memory_max_usage = 0
83 83
84 84 ; How often in seconds to check for memory usage for each gunicorn worker
85 85 memory_usage_check_interval = 60
86 86
87 87 ; Threshold value for which we don't recycle worker if GarbageCollection
88 88 ; frees up enough resources. Before each restart we try to run GC on worker
89 89 ; in case we get enough free memory after that, restart will not happen.
90 90 memory_usage_recovery_threshold = 0.8
91 91
92 92
93 93 [app:main]
94 94 ; The %(here)s variable will be replaced with the absolute path of parent directory
95 95 ; of this file
96 96 use = egg:rhodecode-vcsserver
97 97
98 98 ; Pyramid default locales, we need this to be set
99 99 pyramid.default_locale_name = en
100 100
101 101 ; default locale used by VCS systems
102 102 locale = en_US.UTF-8
103 103
104 104 ; path to binaries for vcsserver, it should be set by the installer
105 105 ; at installation time, e.g /home/user/vcsserver-1/profile/bin
106 106 ; it can also be a path to nix-build output in case of development
107 107 core.binary_dir = ""
108 108
109 109 ; Custom exception store path, defaults to TMPDIR
110 110 ; This is used to store exception from RhodeCode in shared directory
111 111 #exception_tracker.store_path =
112 112
113 113 ; #############
114 114 ; DOGPILE CACHE
115 115 ; #############
116 116
117 117 ; Default cache dir for caches. Putting this into a ramdisk can boost performance.
118 118 ; eg. /tmpfs/data_ramdisk, however this directory might require large amount of space
119 119 cache_dir = %(here)s/data
120 120
121 121 ; ***************************************
122 122 ; `repo_object` cache, default file based
123 123 ; ***************************************
124 124
125 125 ; `repo_object` cache settings for vcs methods for repositories
126 126 rc_cache.repo_object.backend = dogpile.cache.rc.file_namespace
127 127
128 128 ; cache auto-expires after N seconds
129 129 ; Examples: 86400 (1Day), 604800 (7Days), 1209600 (14Days), 2592000 (30days), 7776000 (90Days)
130 130 rc_cache.repo_object.expiration_time = 2592000
131 131
132 132 ; file cache store path. Defaults to `cache_dir =` value or tempdir if both values are not set
133 133 #rc_cache.repo_object.arguments.filename = /tmp/vcsserver_cache.db
134 134
135 135 ; ***********************************************************
136 136 ; `repo_object` cache with redis backend
137 137 ; recommended for larger instance, and for better performance
138 138 ; ***********************************************************
139 139
140 140 ; `repo_object` cache settings for vcs methods for repositories
141 141 #rc_cache.repo_object.backend = dogpile.cache.rc.redis_msgpack
142 142
143 143 ; cache auto-expires after N seconds
144 144 ; Examples: 86400 (1Day), 604800 (7Days), 1209600 (14Days), 2592000 (30days), 7776000 (90Days)
145 145 #rc_cache.repo_object.expiration_time = 2592000
146 146
147 147 ; redis_expiration_time needs to be greater then expiration_time
148 148 #rc_cache.repo_object.arguments.redis_expiration_time = 3592000
149 149
150 150 #rc_cache.repo_object.arguments.host = localhost
151 151 #rc_cache.repo_object.arguments.port = 6379
152 152 #rc_cache.repo_object.arguments.db = 5
153 153 #rc_cache.repo_object.arguments.socket_timeout = 30
154 154 ; more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends
155 155 #rc_cache.repo_object.arguments.distributed_lock = true
156 156
157 157 ; auto-renew lock to prevent stale locks, slower but safer. Use only if problems happen
158 158 #rc_cache.repo_object.arguments.lock_auto_renewal = true
159 159
160 ; Statsd client config
160 ; Statsd client config, this is used to send metrics to statsd
161 ; We recommend setting statsd_exported and scrape them using Promethues
161 162 #statsd.enabled = false
162 163 #statsd.statsd_host = 0.0.0.0
163 164 #statsd.statsd_port = 8125
164 165 #statsd.statsd_prefix =
165 166 #statsd.statsd_ipv6 = false
166 167
167 168 ; #####################
168 169 ; LOGGING CONFIGURATION
169 170 ; #####################
170 171 [loggers]
171 172 keys = root, vcsserver
172 173
173 174 [handlers]
174 175 keys = console
175 176
176 177 [formatters]
177 178 keys = generic
178 179
179 180 ; #######
180 181 ; LOGGERS
181 182 ; #######
182 183 [logger_root]
183 184 level = NOTSET
184 185 handlers = console
185 186
186 187 [logger_vcsserver]
187 188 level = DEBUG
188 189 handlers =
189 190 qualname = vcsserver
190 191 propagate = 1
191 192
192 193
193 194 ; ########
194 195 ; HANDLERS
195 196 ; ########
196 197
197 198 [handler_console]
198 199 class = StreamHandler
199 200 args = (sys.stderr, )
200 201 level = INFO
201 202 formatter = generic
202 203
203 204 ; ##########
204 205 ; FORMATTERS
205 206 ; ##########
206 207
207 208 [formatter_generic]
208 209 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
209 210 datefmt = %Y-%m-%d %H:%M:%S
General Comments 0
You need to be logged in to leave comments. Login now