Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Expose statistics on extrems to prometheus #5384

Merged
merged 16 commits into from
Jun 13, 2019
Merged
Prev Previous commit
Next Next commit
get working
hawkowl committed Jun 7, 2019
commit 9701f7a3bcfb3c73e19537da699ab381374aa370
2 changes: 1 addition & 1 deletion synapse/metrics/__init__.py
Original file line number Diff line number Diff line change
@@ -209,7 +209,7 @@ def collect(self):
res.append(["+Inf", 0])

metric = HistogramMetricFamily(
self.name, "", buckets=res, sum_value=sum(data.values())
self.name, "", buckets=res, sum_value=sum([x * y for x, y in data.items()])
)
yield metric

10 changes: 2 additions & 8 deletions synapse/storage/events.py
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@

import itertools
import logging
from collections import OrderedDict, defaultdict, deque, namedtuple
from collections import Counter as c_counter, OrderedDict, deque, namedtuple
from functools import wraps

from six import iteritems, text_type
@@ -248,13 +248,7 @@ def fetch(txn):
return txn.fetchall()

res = yield self.runInteraction("read_forward_extremities", fetch)

d = defaultdict(default=0)

for i in res:
d[res[1]] += 1

self._current_forward_extremities_amount = dict(d)
self._current_forward_extremities_amount = c_counter(list(x[1] for x in res))

@defer.inlineCallbacks
def persist_events(self, events_and_contexts, backfilled=False):
6 changes: 0 additions & 6 deletions tests/storage/test_cleanup_extrems.py
Original file line number Diff line number Diff line change
@@ -26,12 +26,6 @@ class CleanupExtremBackgroundUpdateStoreTestCase(HomeserverTestCase):
Test the background update to clean forward extremities table.
"""

def make_homeserver(self, reactor, clock):
# Hack until we understand why test_forked_graph_cleanup fails with v4
config = self.default_config()
config['default_room_version'] = '1'
return self.setup_test_homeserver(config=config)

def prepare(self, reactor, clock, homeserver):
self.store = homeserver.get_datastore()
self.room_creator = homeserver.get_room_creation_handler()
12 changes: 7 additions & 5 deletions tests/unittest.py
Original file line number Diff line number Diff line change
@@ -32,7 +32,7 @@
from synapse.http.server import JsonResource
from synapse.http.site import SynapseRequest
from synapse.server import HomeServer
from synapse.types import UserID, create_requester
from synapse.types import Requester, UserID, create_requester
from synapse.util.logcontext import LoggingContext

from tests.server import get_clock, make_request, render, setup_test_homeserver
@@ -458,19 +458,21 @@ def create_and_send_event(
str: The new event's ID.
"""
event_creator = self.hs.get_event_creation_handler()
secrets = self.hs.get_secrets()
requester = Requester(user, None, False, None, None)

prev_events_and_hashes = None
if prev_event_ids:
prev_events_and_hashes = [[p, {}, 0] for p in prev_event_ids]

event, context = self.get_success(
event_creator.create_event(
self.requester,
requester,
{
"type": EventTypes.Message,
"room_id": room_id,
"sender": user.to_string(),
"content": {"body": "", "msgtype": "m.text"},
"content": {"body": secrets.token_hex(), "msgtype": "m.text"},
},
prev_events_and_hashes=prev_events_and_hashes,
)
@@ -480,7 +482,7 @@ def create_and_send_event(
event.internal_metadata.soft_failed = True

self.get_success(
event_creator.send_nonmember_event(self.requester, event, context)
event_creator.send_nonmember_event(requester, event, context)
)

return event.event_id
@@ -497,4 +499,4 @@ def add_extremity(self, room_id, event_id):
)
)

self.hs.get_datastore().get_latest_event_ids_in_room.invalidate((self.room_id,))
self.hs.get_datastore().get_latest_event_ids_in_room.invalidate((room_id,))