forked from MirrorHub/synapse
Clean up config settings for stats (#9604)
... and complain if people try to turn it off.
This commit is contained in:
parent
1b0eaed21f
commit
5b5bc188cf
4 changed files with 43 additions and 29 deletions
1
changelog.d/9604.doc
Normal file
1
changelog.d/9604.doc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Clarify the sample configuration for `stats` settings.
|
1
changelog.d/9604.misc
Normal file
1
changelog.d/9604.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Remove unused `stats.retention` setting, and emit a warning if stats are disabled.
|
|
@ -2645,19 +2645,20 @@ user_directory:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Local statistics collection. Used in populating the room directory.
|
# Settings for local room and user statistics collection. See
|
||||||
|
# docs/room_and_user_statistics.md.
|
||||||
#
|
#
|
||||||
# 'bucket_size' controls how large each statistics timeslice is. It can
|
stats:
|
||||||
# be defined in a human readable short form -- e.g. "1d", "1y".
|
# Uncomment the following to disable room and user statistics. Note that doing
|
||||||
|
# so may cause certain features (such as the room directory) not to work
|
||||||
|
# correctly.
|
||||||
#
|
#
|
||||||
# 'retention' controls how long historical statistics will be kept for.
|
#enabled: false
|
||||||
# It can be defined in a human readable short form -- e.g. "1d", "1y".
|
|
||||||
|
# The size of each timeslice in the room_stats_historical and
|
||||||
|
# user_stats_historical tables, as a time period. Defaults to "1d".
|
||||||
#
|
#
|
||||||
#
|
#bucket_size: 1h
|
||||||
#stats:
|
|
||||||
# enabled: true
|
|
||||||
# bucket_size: 1d
|
|
||||||
# retention: 1y
|
|
||||||
|
|
||||||
|
|
||||||
# Server Notices room configuration
|
# Server Notices room configuration
|
||||||
|
|
|
@ -13,10 +13,22 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
import sys
|
import logging
|
||||||
|
|
||||||
from ._base import Config
|
from ._base import Config
|
||||||
|
|
||||||
|
ROOM_STATS_DISABLED_WARN = """\
|
||||||
|
WARNING: room/user statistics have been disabled via the stats.enabled
|
||||||
|
configuration setting. This means that certain features (such as the room
|
||||||
|
directory) will not operate correctly. Future versions of Synapse may ignore
|
||||||
|
this setting.
|
||||||
|
|
||||||
|
To fix this warning, remove the stats.enabled setting from your configuration
|
||||||
|
file.
|
||||||
|
--------------------------------------------------------------------------------"""
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class StatsConfig(Config):
|
class StatsConfig(Config):
|
||||||
"""Stats Configuration
|
"""Stats Configuration
|
||||||
|
@ -28,30 +40,29 @@ class StatsConfig(Config):
|
||||||
def read_config(self, config, **kwargs):
|
def read_config(self, config, **kwargs):
|
||||||
self.stats_enabled = True
|
self.stats_enabled = True
|
||||||
self.stats_bucket_size = 86400 * 1000
|
self.stats_bucket_size = 86400 * 1000
|
||||||
self.stats_retention = sys.maxsize
|
|
||||||
stats_config = config.get("stats", None)
|
stats_config = config.get("stats", None)
|
||||||
if stats_config:
|
if stats_config:
|
||||||
self.stats_enabled = stats_config.get("enabled", self.stats_enabled)
|
self.stats_enabled = stats_config.get("enabled", self.stats_enabled)
|
||||||
self.stats_bucket_size = self.parse_duration(
|
self.stats_bucket_size = self.parse_duration(
|
||||||
stats_config.get("bucket_size", "1d")
|
stats_config.get("bucket_size", "1d")
|
||||||
)
|
)
|
||||||
self.stats_retention = self.parse_duration(
|
if not self.stats_enabled:
|
||||||
stats_config.get("retention", "%ds" % (sys.maxsize,))
|
logger.warning(ROOM_STATS_DISABLED_WARN)
|
||||||
)
|
|
||||||
|
|
||||||
def generate_config_section(self, config_dir_path, server_name, **kwargs):
|
def generate_config_section(self, config_dir_path, server_name, **kwargs):
|
||||||
return """
|
return """
|
||||||
# Local statistics collection. Used in populating the room directory.
|
# Settings for local room and user statistics collection. See
|
||||||
|
# docs/room_and_user_statistics.md.
|
||||||
#
|
#
|
||||||
# 'bucket_size' controls how large each statistics timeslice is. It can
|
stats:
|
||||||
# be defined in a human readable short form -- e.g. "1d", "1y".
|
# Uncomment the following to disable room and user statistics. Note that doing
|
||||||
|
# so may cause certain features (such as the room directory) not to work
|
||||||
|
# correctly.
|
||||||
#
|
#
|
||||||
# 'retention' controls how long historical statistics will be kept for.
|
#enabled: false
|
||||||
# It can be defined in a human readable short form -- e.g. "1d", "1y".
|
|
||||||
|
# The size of each timeslice in the room_stats_historical and
|
||||||
|
# user_stats_historical tables, as a time period. Defaults to "1d".
|
||||||
#
|
#
|
||||||
#
|
#bucket_size: 1h
|
||||||
#stats:
|
|
||||||
# enabled: true
|
|
||||||
# bucket_size: 1d
|
|
||||||
# retention: 1y
|
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in a new issue