Skip to content

Commit 20ef6bd

Browse files
committed
Don't remove prometheus metrics if there are other sessions using them
1 parent e1fa429 commit 20ef6bd

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

src/murfey/server/api/__init__.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1650,20 +1650,25 @@ async def process_gain(
16501650
@router.delete("/sessions/{session_id}")
16511651
def 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

Comments
 (0)