forked from LBRYCommunity/lbry-sdk
report available blobs
This commit is contained in:
parent
417a8f719f
commit
8b1bb673c1
3 changed files with 20 additions and 2 deletions
|
@ -1,2 +1,4 @@
|
|||
# Constants for metrics
|
||||
"""Constants for metrics"""
|
||||
|
||||
BLOB_BYTES_UPLOADED = 'blob_bytes_uploaded'
|
||||
BLOB_BYTES_AVAILABLE = 'blob_bytes_available'
|
||||
|
|
|
@ -33,6 +33,11 @@ class Manager(object):
|
|||
event = self.events_generator.download_started(name, stream_info)
|
||||
self.analytics_api.track(event)
|
||||
|
||||
def register_repeating_metric(self, event_name, value_generator, frequency=300):
|
||||
lcall = task.LoopingCall(self._send_repeating_metric, event_name, value_generator)
|
||||
self.looping_call_manager.register_looping_call(event_name, lcall)
|
||||
lcall.start(frequency)
|
||||
|
||||
def _send_heartbeat(self):
|
||||
heartbeat = self.events_generator.heartbeat()
|
||||
self.analytics_api.track(heartbeat)
|
||||
|
@ -42,3 +47,9 @@ class Manager(object):
|
|||
if value > 0:
|
||||
event = self.events_generator.metric_observered(constants.BLOB_BYTES_UPLOADED, value)
|
||||
self.analytics_api.track(event)
|
||||
|
||||
def _send_repeating_metric(self, event_name, value_generator):
|
||||
should_send, value = value_generator()
|
||||
if should_send:
|
||||
event = self.events_generator.metric_observered(event_name, value)
|
||||
self.analytics_api.track(event)
|
||||
|
|
|
@ -185,7 +185,7 @@ class CheckRemoteVersions(object):
|
|||
return defer.fail(None)
|
||||
|
||||
|
||||
def calculate_available_blob_sizes(blob_manager):
|
||||
def calculate_available_blob_size(blob_manager):
|
||||
return sum(blob.length for blob in blob_manager.get_all_verified_blobs())
|
||||
|
||||
|
||||
|
@ -1021,6 +1021,11 @@ class Daemon(jsonrpc.JSONRPC):
|
|||
self.analytics_manager = analytics.Manager(
|
||||
analytics_api, events_generator, analytics.Track())
|
||||
self.analytics_manager.start()
|
||||
self.register_repeating_metric(
|
||||
analytics.BLOB_BYTES_AVAILABLE,
|
||||
lambda: calculate_available_blob_size(self.session.blob_manager),
|
||||
frequency=300
|
||||
)
|
||||
|
||||
def _get_session(self):
|
||||
def get_default_data_rate():
|
||||
|
|
Loading…
Reference in a new issue