# yaml
# /// [Production service sample - static config - config vars]
# yaml
config_vars: /etc/production_service/config_vars.yaml
# /// [Production service sample - static config - config vars]
components_manager:
components:
# /// [Production service sample - static config congestion-control]
# yaml
congestion-control:
fake-mode: $testsuite-enabled
load-enabled: true
# /// [Production service sample - static config congestion-control]
dump-configurator:
dump-root: $userver-dumps-root
handler-implicit-http-options:
as_fallback: implicit-http-options
method: OPTIONS
task_processor: main-task-processor
throttling_enabled: false
# /// [Production service sample - static config utility handlers]
# yaml
handler-inspect-requests:
path: /service/inspect-requests
method: GET
task_processor: monitor-task-processor
handler-jemalloc:
path: /service/jemalloc/prof/{command}
method: POST
task_processor: monitor-task-processor
handler-log-level:
path: /service/log-level/{level}
method: GET,PUT
task_processor: monitor-task-processor
handler-on-log-rotate:
path: /service/on-log-rotate/
method: POST
task_processor: monitor-task-processor
handler-dynamic-debug-log:
path: /service/log/dynamic-debug
method: GET,PUT,DELETE
task_processor: monitor-task-processor
handler-dns-client-control:
path: /service/dnsclient/{command}
method: POST
task_processor: monitor-task-processor
handler-server-monitor:
path: /service/monitor
method: GET
task_processor: monitor-task-processor
handler-fired-alerts:
path: /service/fired-alerts
method: GET
task_processor: monitor-task-processor
# /// [Production service sample - static config utility handlers]
# /// [Production service sample - static config ping]
# yaml
handler-ping:
path: /ping
method: GET
task_processor: main-task-processor # !!!
throttling_enabled: false
url_trailing_slash: strict-match
# /// [Production service sample - static config ping]
# /// [Production service sample - static config variables usage]
# yaml
http-client:
fs-task-processor: fs-task-processor
user-agent: $server-name
user-agent#fallback: 'userver-based-service 1.0'
# /// [Production service sample - static config variables usage]
http-client-statistics:
fs-task-processor: fs-task-processor
pool-statistics-disable: true
thread-name-prefix: stats
user-agent: $server-name
dns-client:
fs-task-processor: fs-task-processor
logging:
fs-task-processor: fs-task-processor
loggers:
access:
file_path: $access-log-path
file_path#fallback: /var/log/company-name/service-name/access.log
overflow_behavior: discard
format: raw
access-tskv:
file_path: $access-tskv-log-path
file_path#fallback: /var/log/company-name/service-name/access_tskv.log
overflow_behavior: discard
format: raw
default:
file_path: $default-log-path
file_path#fallback: /var/log/company-name/service-name/server.log
level: $logger-level
level#fallback: info
overflow_behavior: discard
logging-configurator:
limited-logging-enable: true
limited-logging-interval: 1s
# /// [Production service sample - static config secdist]
# yaml
secdist:
provider: default-secdist-provider
default-secdist-provider:
config: $secdist-path
# /// [Production service sample - static config secdist]
# /// [Production service sample - static config server listen]
# yaml
server:
listener:
# If your service is behind nginx or some other local proxy, it is
# efficient to accepts incoming requests from unix-socket
#
# unix-socket: /var/run/production_service/service.socket
port: $server-port
port#fallback: 8085
connection:
in_buffer_size: 32768
requests_queue_size_threshold: 100
task_processor: main-task-processor
listener-monitor:
# Listen on localhost:8085 for developer/utility requests
port: $monitor-server-port
port#fallback: 8086
connection:
in_buffer_size: 32768
requests_queue_size_threshold: 100
task_processor: monitor-task-processor
logger_access: ''
logger_access_tskv: ''
max_response_size_in_flight: 1000000000
server-name: $server-name
# /// [Production service sample - static config server listen]
# /// [Production service sample - static config metrics]
# yaml
system-statistics-collector:
fs-task-processor: fs-task-processor
# /// [Production service sample - static config metrics]
# /// [Production service sample - static config dynamic configs]
# yaml
dynamic-config:
updates-enabled: true
fs-cache-path: $config-cache
fs-task-processor: fs-task-processor
dynamic-config-client:
config-url: $config-server-url
http-retries: 5
http-timeout: 20s
service-name: $service-name
dynamic-config-client-updater:
config-settings: false
first-update-fail-ok: true
full-update-interval: 1m
update-interval: 5s
# /// [Production service sample - static config dynamic configs]
tests-control:
load-enabled: $testsuite-enabled
path: /tests/{action}
method: POST
task_processor: main-task-processor
testpoint-timeout: 10s
testpoint-url: $mockserver/testpoint
throttling_enabled: false
testsuite-support:
coro_pool:
initial_size: $coro-pool-initial-size
initial_size#fallback: 5000
max_size: $coro-pool-max-size
max_size#fallback: 50000
default_task_processor: main-task-processor # Task processor in which components start.
# /// [Production service sample - static config task processors]
# yaml
task_processors:
fs-task-processor: # for blocking operations
thread_name: fs-worker
worker_threads: $fs_worker_threads
worker_threads#fallback: 2
main-task-processor: # for nonblocking operations
thread_name: main-worker
worker_threads: $main_worker_threads
worker_threads#fallback: 6
monitor-task-processor: # for monitoring
thread_name: mon-worker
worker_threads: $monitor_worker_threads
worker_threads#fallback: 1
event_thread_pool: # ev pools to deal with OS events
threads: $event_threads
threads#fallback: 2
# /// [Production service sample - static config task processors]