mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2024-12-11 22:14:19 -05:00
Add phone home stats for encrypted messages. (#9283)
Signed-off-by: Jan Christian Grünhage <jan.christian@gruenhage.xyz>
This commit is contained in:
parent
a800603561
commit
43dd93bb26
1
changelog.d/9283.feature
Normal file
1
changelog.d/9283.feature
Normal file
@ -0,0 +1 @@
|
|||||||
|
Add phone home stats for encrypted messages.
|
@ -93,15 +93,20 @@ async def phone_stats_home(hs, stats, stats_process=_stats_process):
|
|||||||
|
|
||||||
stats["daily_active_users"] = await hs.get_datastore().count_daily_users()
|
stats["daily_active_users"] = await hs.get_datastore().count_daily_users()
|
||||||
stats["monthly_active_users"] = await hs.get_datastore().count_monthly_users()
|
stats["monthly_active_users"] = await hs.get_datastore().count_monthly_users()
|
||||||
|
daily_active_e2ee_rooms = await hs.get_datastore().count_daily_active_e2ee_rooms()
|
||||||
|
stats["daily_active_e2ee_rooms"] = daily_active_e2ee_rooms
|
||||||
|
stats["daily_e2ee_messages"] = await hs.get_datastore().count_daily_e2ee_messages()
|
||||||
|
daily_sent_e2ee_messages = await hs.get_datastore().count_daily_sent_e2ee_messages()
|
||||||
|
stats["daily_sent_e2ee_messages"] = daily_sent_e2ee_messages
|
||||||
stats["daily_active_rooms"] = await hs.get_datastore().count_daily_active_rooms()
|
stats["daily_active_rooms"] = await hs.get_datastore().count_daily_active_rooms()
|
||||||
stats["daily_messages"] = await hs.get_datastore().count_daily_messages()
|
stats["daily_messages"] = await hs.get_datastore().count_daily_messages()
|
||||||
|
daily_sent_messages = await hs.get_datastore().count_daily_sent_messages()
|
||||||
|
stats["daily_sent_messages"] = daily_sent_messages
|
||||||
|
|
||||||
r30_results = await hs.get_datastore().count_r30_users()
|
r30_results = await hs.get_datastore().count_r30_users()
|
||||||
for name, count in r30_results.items():
|
for name, count in r30_results.items():
|
||||||
stats["r30_users_" + name] = count
|
stats["r30_users_" + name] = count
|
||||||
|
|
||||||
daily_sent_messages = await hs.get_datastore().count_daily_sent_messages()
|
|
||||||
stats["daily_sent_messages"] = daily_sent_messages
|
|
||||||
stats["cache_factor"] = hs.config.caches.global_factor
|
stats["cache_factor"] = hs.config.caches.global_factor
|
||||||
stats["event_cache_size"] = hs.config.caches.event_cache_size
|
stats["event_cache_size"] = hs.config.caches.event_cache_size
|
||||||
|
|
||||||
|
@ -88,6 +88,62 @@ class ServerMetricsStore(EventPushActionsWorkerStore, SQLBaseStore):
|
|||||||
(x[0] - 1) * x[1] for x in res if x[1]
|
(x[0] - 1) * x[1] for x in res if x[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def count_daily_e2ee_messages(self):
|
||||||
|
"""
|
||||||
|
Returns an estimate of the number of messages sent in the last day.
|
||||||
|
|
||||||
|
If it has been significantly less or more than one day since the last
|
||||||
|
call to this function, it will return None.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def _count_messages(txn):
|
||||||
|
sql = """
|
||||||
|
SELECT COALESCE(COUNT(*), 0) FROM events
|
||||||
|
WHERE type = 'm.room.encrypted'
|
||||||
|
AND stream_ordering > ?
|
||||||
|
"""
|
||||||
|
txn.execute(sql, (self.stream_ordering_day_ago,))
|
||||||
|
(count,) = txn.fetchone()
|
||||||
|
return count
|
||||||
|
|
||||||
|
return await self.db_pool.runInteraction("count_e2ee_messages", _count_messages)
|
||||||
|
|
||||||
|
async def count_daily_sent_e2ee_messages(self):
|
||||||
|
def _count_messages(txn):
|
||||||
|
# This is good enough as if you have silly characters in your own
|
||||||
|
# hostname then thats your own fault.
|
||||||
|
like_clause = "%:" + self.hs.hostname
|
||||||
|
|
||||||
|
sql = """
|
||||||
|
SELECT COALESCE(COUNT(*), 0) FROM events
|
||||||
|
WHERE type = 'm.room.encrypted'
|
||||||
|
AND sender LIKE ?
|
||||||
|
AND stream_ordering > ?
|
||||||
|
"""
|
||||||
|
|
||||||
|
txn.execute(sql, (like_clause, self.stream_ordering_day_ago))
|
||||||
|
(count,) = txn.fetchone()
|
||||||
|
return count
|
||||||
|
|
||||||
|
return await self.db_pool.runInteraction(
|
||||||
|
"count_daily_sent_e2ee_messages", _count_messages
|
||||||
|
)
|
||||||
|
|
||||||
|
async def count_daily_active_e2ee_rooms(self):
|
||||||
|
def _count(txn):
|
||||||
|
sql = """
|
||||||
|
SELECT COALESCE(COUNT(DISTINCT room_id), 0) FROM events
|
||||||
|
WHERE type = 'm.room.encrypted'
|
||||||
|
AND stream_ordering > ?
|
||||||
|
"""
|
||||||
|
txn.execute(sql, (self.stream_ordering_day_ago,))
|
||||||
|
(count,) = txn.fetchone()
|
||||||
|
return count
|
||||||
|
|
||||||
|
return await self.db_pool.runInteraction(
|
||||||
|
"count_daily_active_e2ee_rooms", _count
|
||||||
|
)
|
||||||
|
|
||||||
async def count_daily_messages(self):
|
async def count_daily_messages(self):
|
||||||
"""
|
"""
|
||||||
Returns an estimate of the number of messages sent in the last day.
|
Returns an estimate of the number of messages sent in the last day.
|
||||||
|
Loading…
Reference in New Issue
Block a user