add report_stats_endpoint config option (#6012)

This PR adds the optional `report_stats_endpoint` to configure where stats are reported to, if enabled.
This commit is contained in:
Sorunome 2019-09-12 12:24:57 +02:00 committed by Richard van der Hoff
parent a8251da10f
commit dd2e5b0038
4 changed files with 19 additions and 2 deletions

1
changelog.d/6012.feature Normal file
View file

@ -0,0 +1 @@
Add report_stats_endpoint option to configure where stats are reported to, if enabled. Contributed by @Sorunome.

View file

@ -985,6 +985,11 @@ metrics_flags:
# Whether or not to report anonymized homeserver usage statistics. # Whether or not to report anonymized homeserver usage statistics.
# report_stats: true|false # report_stats: true|false
# The endpoint to report the anonymized homeserver usage statistics to.
# Defaults to https://matrix.org/report-usage-stats/push
#
#report_stats_endpoint: https://example.com/report-usage-stats/push
## API Configuration ## ## API Configuration ##

View file

@ -561,10 +561,12 @@ def run(hs):
stats["database_engine"] = hs.get_datastore().database_engine_name stats["database_engine"] = hs.get_datastore().database_engine_name
stats["database_server_version"] = hs.get_datastore().get_server_version() stats["database_server_version"] = hs.get_datastore().get_server_version()
logger.info("Reporting stats to matrix.org: %s" % (stats,)) logger.info(
"Reporting stats to %s: %s" % (hs.config.report_stats_endpoint, stats)
)
try: try:
yield hs.get_simple_http_client().put_json( yield hs.get_simple_http_client().put_json(
"https://matrix.org/report-usage-stats/push", stats hs.config.report_stats_endpoint, stats
) )
except Exception as e: except Exception as e:
logger.warn("Error reporting stats: %s", e) logger.warn("Error reporting stats: %s", e)

View file

@ -37,6 +37,9 @@ class MetricsConfig(Config):
def read_config(self, config, **kwargs): def read_config(self, config, **kwargs):
self.enable_metrics = config.get("enable_metrics", False) self.enable_metrics = config.get("enable_metrics", False)
self.report_stats = config.get("report_stats", None) self.report_stats = config.get("report_stats", None)
self.report_stats_endpoint = config.get(
"report_stats_endpoint", "https://matrix.org/report-usage-stats/push"
)
self.metrics_port = config.get("metrics_port") self.metrics_port = config.get("metrics_port")
self.metrics_bind_host = config.get("metrics_bind_host", "127.0.0.1") self.metrics_bind_host = config.get("metrics_bind_host", "127.0.0.1")
@ -95,4 +98,10 @@ class MetricsConfig(Config):
else: else:
res += "report_stats: %s\n" % ("true" if report_stats else "false") res += "report_stats: %s\n" % ("true" if report_stats else "false")
res += """
# The endpoint to report the anonymized homeserver usage statistics to.
# Defaults to https://matrix.org/report-usage-stats/push
#
#report_stats_endpoint: https://example.com/report-usage-stats/push
"""
return res return res