@@ -1643,20 +1643,25 @@ async def process_gain(
16431643@router .delete ("/sessions/{session_id}" )
16441644def remove_session_by_id (session_id : MurfeySessionID , db = murfey_db ):
16451645 session = db .exec (select (Session ).where (Session .id == session_id )).one ()
1646- try :
1647- prom .monitoring_switch .remove (session .visit )
1648- except KeyError :
1649- pass
1650- rsync_instances = db .exec (
1651- select (RsyncInstance ).where (RsyncInstance .session_id == session_id )
1646+ sessions_for_visit = db .exec (
1647+ select (Session ).where (Session .visit == session .visit )
16521648 ).all ()
1653- for ri in rsync_instances :
1654- prom .seen_files .remove (ri .source , session .visit )
1655- prom .transferred_files .remove (ri .source , session .visit )
1656- prom .transferred_files_bytes .remove (ri .source , session .visit )
1657- prom .seen_data_files .remove (ri .source , session .visit )
1658- prom .transferred_data_files .remove (ri .source , session .visit )
1659- prom .transferred_data_files_bytes .remove (ri .source , session .visit )
1649+ if len (sessions_for_visit ) == 1 :
1650+ # Don't remove prometheus metrics if there are other sessions using them
1651+ try :
1652+ prom .monitoring_switch .remove (session .visit )
1653+ except KeyError :
1654+ pass
1655+ rsync_instances = db .exec (
1656+ select (RsyncInstance ).where (RsyncInstance .session_id == session_id )
1657+ ).all ()
1658+ for ri in rsync_instances :
1659+ prom .seen_files .remove (ri .source , session .visit )
1660+ prom .transferred_files .remove (ri .source , session .visit )
1661+ prom .transferred_files_bytes .remove (ri .source , session .visit )
1662+ prom .seen_data_files .remove (ri .source , session .visit )
1663+ prom .transferred_data_files .remove (ri .source , session .visit )
1664+ prom .transferred_data_files_bytes .remove (ri .source , session .visit )
16601665 collected_ids = db .exec (
16611666 select (DataCollectionGroup , DataCollection , ProcessingJob )
16621667 .where (DataCollectionGroup .session_id == session_id )
0 commit comments