Skip to content

Commit 84d9633

Browse files
committed
Don't remove prometheus metrics if there are other sessions using them
1 parent b88806d commit 84d9633

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
@@ -1643,20 +1643,25 @@ async def process_gain(
16431643
@router.delete("/sessions/{session_id}")
16441644
def 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

Comments
 (0)