Skip to content

Commit

Permalink
disk space metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
eukreign committed Oct 3, 2021
1 parent 763ca69 commit dfa6701
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
11 changes: 8 additions & 3 deletions lbry/blob/disk_space_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@

class DiskSpaceManager:

def __init__(self, config, db, blob_manager, cleaning_interval=30 * 60):
def __init__(self, config, db, blob_manager, cleaning_interval=30 * 60, analytics=None):
self.config = config
self.db = db
self.blob_manager = blob_manager
self.cleaning_interval = cleaning_interval
self.running = False
self.task = None
self.analytics = analytics

async def get_space_used_bytes(self):
return await self.db.get_stored_blob_disk_usage()
Expand All @@ -21,10 +22,14 @@ async def get_space_used_mb(self):
return int(await self.get_space_used_bytes()/1024.0/1024.0)

async def clean(self):
if not self.config.blob_storage_limit:
space_used_bytes = await self.get_space_used_bytes()
storage_limit = self.config.blob_storage_limit*1024*1024 if self.config.blob_storage_limit else None
if self.analytics:
asyncio.create_task(self.analytics.send_disk_space_used(space_used_bytes, storage_limit))
if not storage_limit:
return 0
delete = []
available = (self.config.blob_storage_limit*1024*1024) - await self.get_space_used_bytes()
available = storage_limit - space_used_bytes
if available > 0:
return 0
for blob_hash, file_size, _ in await self.db.get_stored_blobs(is_mine=False):
Expand Down
9 changes: 9 additions & 0 deletions lbry/extras/daemon/analytics.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
DOWNLOAD_ERRORED = 'Download Errored'
DOWNLOAD_FINISHED = 'Download Finished'
HEARTBEAT = 'Heartbeat'
DISK_SPACE = 'Disk Space'
CLAIM_ACTION = 'Claim Action' # publish/create/update/abandon
NEW_CHANNEL = 'New Channel'
CREDITS_SENT = 'Credits Sent'
Expand Down Expand Up @@ -169,6 +170,14 @@ async def send_upnp_setup_success_fail(self, success, status):
})
)

async def send_disk_space_used(self, storage_used, storage_limit):
await self.track(
self._event(DISK_SPACE, {
'used': storage_used,
'limit': storage_limit,
})
)

async def send_server_startup(self):
await self.track(self._event(SERVER_STARTUP))

Expand Down
5 changes: 4 additions & 1 deletion lbry/extras/daemon/components.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,10 @@ async def get_status(self):
async def start(self):
db = self.component_manager.get_component(DATABASE_COMPONENT)
blob_manager = self.component_manager.get_component(BLOB_COMPONENT)
self.disk_space_manager = DiskSpaceManager(self.conf, db, blob_manager)
self.disk_space_manager = DiskSpaceManager(
self.conf, db, blob_manager,
analytics=self.component_manager.analytics_manager
)
await self.disk_space_manager.start()

async def stop(self):
Expand Down

0 comments on commit dfa6701

Please sign in to comment.