@@ -1650,20 +1650,25 @@ async def process_gain(
16501650@router .delete ("/sessions/{session_id}" )
16511651def remove_session_by_id (session_id : MurfeySessionID , db = murfey_db ):
16521652 session = db .exec (select (Session ).where (Session .id == session_id )).one ()
1653- try :
1654- prom .monitoring_switch .remove (session .visit )
1655- except KeyError :
1656- pass
1657- rsync_instances = db .exec (
1658- select (RsyncInstance ).where (RsyncInstance .session_id == session_id )
1653+ sessions_for_visit = db .exec (
1654+ select (Session ).where (Session .visit == session .visit )
16591655 ).all ()
1660- for ri in rsync_instances :
1661- prom .seen_files .remove (ri .source , session .visit )
1662- prom .transferred_files .remove (ri .source , session .visit )
1663- prom .transferred_files_bytes .remove (ri .source , session .visit )
1664- prom .seen_data_files .remove (ri .source , session .visit )
1665- prom .transferred_data_files .remove (ri .source , session .visit )
1666- prom .transferred_data_files_bytes .remove (ri .source , session .visit )
1656+ if len (sessions_for_visit ) == 1 :
1657+ # Don't remove prometheus metrics if there are other sessions using them
1658+ try :
1659+ prom .monitoring_switch .remove (session .visit )
1660+ except KeyError :
1661+ pass
1662+ rsync_instances = db .exec (
1663+ select (RsyncInstance ).where (RsyncInstance .session_id == session_id )
1664+ ).all ()
1665+ for ri in rsync_instances :
1666+ prom .seen_files .remove (ri .source , session .visit )
1667+ prom .transferred_files .remove (ri .source , session .visit )
1668+ prom .transferred_files_bytes .remove (ri .source , session .visit )
1669+ prom .seen_data_files .remove (ri .source , session .visit )
1670+ prom .transferred_data_files .remove (ri .source , session .visit )
1671+ prom .transferred_data_files_bytes .remove (ri .source , session .visit )
16671672 collected_ids = db .exec (
16681673 select (DataCollectionGroup , DataCollection , ProcessingJob )
16691674 .where (DataCollectionGroup .session_id == session_id )
0 commit comments