From 95bdb4e1c3e6904cb732d0ad34715b85fba3c60f Mon Sep 17 00:00:00 2001 From: RhodeCode Admin Date: Thu, 5 Jan 2023 09:50:14 +0100 Subject: [PATCH] ini: cleanups + added generic cache definition --- configs/development.ini | 40 ++++++++++++++++++++++++++++++++++++---- configs/logging.ini | 13 +++++-------- configs/production.ini | 40 ++++++++++++++++++++++++++++++++++++---- 3 files changed, 77 insertions(+), 16 deletions(-) diff --git a/configs/development.ini b/configs/development.ini index ae724f0c..c981dada 100644 --- a/configs/development.ini +++ b/configs/development.ini @@ -429,11 +429,40 @@ rc_cache.cache_repo_longterm.expiration_time = 2592000 rc_cache.cache_repo_longterm.max_size = 10000 +; ********************************************* +; `cache_general` cache for general purpose use +; for simplicity use rc.file_namespace backend, +; for performance and scale use rc.redis +; ********************************************* +rc_cache.cache_general.backend = dogpile.cache.rc.file_namespace +rc_cache.cache_general.expiration_time = 43200 +; file cache store path. Defaults to `cache_dir =` value or tempdir if both values are not set +#rc_cache.cache_general.arguments.filename = /tmp/cache_general.db + +; alternative `cache_general` redis backend with distributed lock +#rc_cache.cache_general.backend = dogpile.cache.rc.redis +#rc_cache.cache_general.expiration_time = 300 + +; redis_expiration_time needs to be greater then expiration_time +#rc_cache.cache_general.arguments.redis_expiration_time = 7200 + +#rc_cache.cache_general.arguments.host = localhost +#rc_cache.cache_general.arguments.port = 6379 +#rc_cache.cache_general.arguments.db = 0 +#rc_cache.cache_general.arguments.socket_timeout = 30 +; more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends +#rc_cache.cache_general.arguments.distributed_lock = true + +; auto-renew lock to prevent stale locks, slower but safer. Use only if problems happen +#rc_cache.cache_general.arguments.lock_auto_renewal = true + ; ************************************************* ; `cache_perms` cache for permission tree, auth TTL +; for simplicity use rc.file_namespace backend, +; for performance and scale use rc.redis ; ************************************************* rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace -rc_cache.cache_perms.expiration_time = 300 +rc_cache.cache_perms.expiration_time = 3600 ; file cache store path. Defaults to `cache_dir =` value or tempdir if both values are not set #rc_cache.cache_perms.arguments.filename = /tmp/cache_perms.db @@ -456,6 +485,8 @@ rc_cache.cache_perms.expiration_time = 300 ; *************************************************** ; `cache_repo` cache for file tree, Readme, RSS FEEDS +; for simplicity use rc.file_namespace backend, +; for performance and scale use rc.redis ; *************************************************** rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace rc_cache.cache_repo.expiration_time = 2592000 @@ -852,10 +883,9 @@ qualname = celery class = StreamHandler args = (sys.stderr, ) level = DEBUG -formatter = color_formatter -; To enable JSON formatted logs replace generic with json +; To enable JSON formatted logs replace 'generic/color_formatter' with 'json' ; This allows sending properly formatted logs to grafana loki or elasticsearch -#formatter = json +formatter = color_formatter [handler_console_sql] ; "level = DEBUG" logs SQL queries and results. @@ -864,6 +894,8 @@ formatter = color_formatter class = StreamHandler args = (sys.stderr, ) level = WARN +; To enable JSON formatted logs replace 'generic/color_formatter_sql' with 'json' +; This allows sending properly formatted logs to grafana loki or elasticsearch formatter = color_formatter_sql ; ########## diff --git a/configs/logging.ini b/configs/logging.ini index 90f8e57a..0ad10af5 100644 --- a/configs/logging.ini +++ b/configs/logging.ini @@ -1,6 +1,7 @@ ; ##################### ; LOGGING CONFIGURATION ; ##################### + [loggers] keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper @@ -55,10 +56,8 @@ qualname = celery class = StreamHandler args = (sys.stderr, ) level = $RC_LOGGING_LEVEL -; To enable JSON formatted logs replace generic with json +; To enable JSON formatted logs replace 'generic' with 'json' ; This allows sending properly formatted logs to grafana loki or elasticsearch -#formatter = json -#formatter = generic formatter = $RC_LOGGING_FORMATTER [handler_console_sql] @@ -68,10 +67,8 @@ formatter = $RC_LOGGING_FORMATTER class = StreamHandler args = (sys.stderr, ) level = WARN -; To enable JSON formatted logs replace generic with json +; To enable JSON formatted logs replace 'generic/color_formatter_sql' with 'json' ; This allows sending properly formatted logs to grafana loki or elasticsearch -#formatter = json -#formatter = generic formatter = $RC_LOGGING_FORMATTER ; ########## @@ -94,5 +91,5 @@ format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(me datefmt = %Y-%m-%d %H:%M:%S [formatter_json] -format = %(message)s -class = rhodecode.lib._vendor.jsonlogger.JsonFormatter \ No newline at end of file +format = %(timestamp)s %(levelname)s %(name)s %(message)s %(req_id)s +class = rhodecode.lib._vendor.jsonlogger.JsonFormatter diff --git a/configs/production.ini b/configs/production.ini index b9c046bc..1f244137 100644 --- a/configs/production.ini +++ b/configs/production.ini @@ -380,11 +380,40 @@ rc_cache.cache_repo_longterm.expiration_time = 2592000 rc_cache.cache_repo_longterm.max_size = 10000 +; ********************************************* +; `cache_general` cache for general purpose use +; for simplicity use rc.file_namespace backend, +; for performance and scale use rc.redis +; ********************************************* +rc_cache.cache_general.backend = dogpile.cache.rc.file_namespace +rc_cache.cache_general.expiration_time = 43200 +; file cache store path. Defaults to `cache_dir =` value or tempdir if both values are not set +#rc_cache.cache_general.arguments.filename = /tmp/cache_general.db + +; alternative `cache_general` redis backend with distributed lock +#rc_cache.cache_general.backend = dogpile.cache.rc.redis +#rc_cache.cache_general.expiration_time = 300 + +; redis_expiration_time needs to be greater then expiration_time +#rc_cache.cache_general.arguments.redis_expiration_time = 7200 + +#rc_cache.cache_general.arguments.host = localhost +#rc_cache.cache_general.arguments.port = 6379 +#rc_cache.cache_general.arguments.db = 0 +#rc_cache.cache_general.arguments.socket_timeout = 30 +; more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends +#rc_cache.cache_general.arguments.distributed_lock = true + +; auto-renew lock to prevent stale locks, slower but safer. Use only if problems happen +#rc_cache.cache_general.arguments.lock_auto_renewal = true + ; ************************************************* ; `cache_perms` cache for permission tree, auth TTL +; for simplicity use rc.file_namespace backend, +; for performance and scale use rc.redis ; ************************************************* rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace -rc_cache.cache_perms.expiration_time = 300 +rc_cache.cache_perms.expiration_time = 3600 ; file cache store path. Defaults to `cache_dir =` value or tempdir if both values are not set #rc_cache.cache_perms.arguments.filename = /tmp/cache_perms.db @@ -407,6 +436,8 @@ rc_cache.cache_perms.expiration_time = 300 ; *************************************************** ; `cache_repo` cache for file tree, Readme, RSS FEEDS +; for simplicity use rc.file_namespace backend, +; for performance and scale use rc.redis ; *************************************************** rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace rc_cache.cache_repo.expiration_time = 2592000 @@ -803,10 +834,9 @@ qualname = celery class = StreamHandler args = (sys.stderr, ) level = INFO -formatter = generic -; To enable JSON formatted logs replace generic with json +; To enable JSON formatted logs replace 'generic/color_formatter' with 'json' ; This allows sending properly formatted logs to grafana loki or elasticsearch -#formatter = json +formatter = generic [handler_console_sql] ; "level = DEBUG" logs SQL queries and results. @@ -815,6 +845,8 @@ formatter = generic class = StreamHandler args = (sys.stderr, ) level = WARN +; To enable JSON formatted logs replace 'generic/color_formatter_sql' with 'json' +; This allows sending properly formatted logs to grafana loki or elasticsearch formatter = generic ; ##########