From aa542a94715891a07e6845138b0771d44a3c0683 Mon Sep 17 00:00:00 2001 From: Abigail Yates Date: Wed, 27 May 2026 15:18:23 +0100 Subject: [PATCH 1/2] set alert_end_time for each visit separately and remove this from db when session removed --- src/murfey/server/api/instrument.py | 5 +---- src/murfey/server/api/session_info.py | 5 +---- src/murfey/server/api/session_shared.py | 4 ++-- src/murfey/server/prometheus.py | 2 +- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/murfey/server/api/instrument.py b/src/murfey/server/api/instrument.py index 46d15a887..66401938d 100644 --- a/src/murfey/server/api/instrument.py +++ b/src/murfey/server/api/instrument.py @@ -247,11 +247,8 @@ async def update_visit_end_time( db.commit() # Update the alert endtime on prometheus - alert_end_time = prom.alert_end_time._value.get() if end_time: - visit_end_timestamp = end_time.timestamp() - if alert_end_time < visit_end_timestamp: - prom.alert_end_time.set(visit_end_timestamp) + prom.alert_end_time.labels(visit=session_entry.visit).set(end_time.timestamp()) # Update the multigrid controller data = {} diff --git a/src/murfey/server/api/session_info.py b/src/murfey/server/api/session_info.py index dfc114d03..cd52ee011 100644 --- a/src/murfey/server/api/session_info.py +++ b/src/murfey/server/api/session_info.py @@ -188,11 +188,8 @@ def create_session( db.commit() sid = s.id - alert_end_time = prom.alert_end_time._value.get() # timestamp if visit_end_time.end_time: - visit_end_timestamp = visit_end_time.end_time.timestamp() - if alert_end_time < visit_end_timestamp: - prom.alert_end_time.set(visit_end_timestamp) + prom.alert_end_time.labels(visit=visit).set(visit_end_time.end_time.timestamp()) return sid diff --git a/src/murfey/server/api/session_shared.py b/src/murfey/server/api/session_shared.py index 925afe2de..7e428752b 100644 --- a/src/murfey/server/api/session_shared.py +++ b/src/murfey/server/api/session_shared.py @@ -31,9 +31,9 @@ def remove_session_by_id(session_id: int, db): # Don't remove prometheus metrics if there are other sessions using them if len(sessions_for_visit) == 1: safe_run( - prom.monitoring_switch.remove, + prom.alert_end_time.remove, args=(session.visit,), - label="monitoring_switch", + label="alert_end_time", ) rsync_instances = db.exec( select(RsyncInstance).where(RsyncInstance.session_id == session_id) diff --git a/src/murfey/server/prometheus.py b/src/murfey/server/prometheus.py index bfbcf2c0c..a86c1b2d0 100644 --- a/src/murfey/server/prometheus.py +++ b/src/murfey/server/prometheus.py @@ -44,4 +44,4 @@ ["visit"], ) -alert_end_time = Gauge("alert_end_time", "End time for alerts", []) +alert_end_time = Gauge("alert_end_time", "End time for alerts", ["visit"]) From 1709dc66d21813d6a439a9984727490fb770d4a8 Mon Sep 17 00:00:00 2001 From: Abigail Yates Date: Thu, 28 May 2026 11:32:16 +0100 Subject: [PATCH 2/2] remove monitoring_switch remove prometheus metric and remove endpoint to switch on/off --- src/murfey/server/api/prometheus.py | 6 ------ src/murfey/server/prometheus.py | 5 ----- src/murfey/util/route_manifest.yaml | 9 --------- 3 files changed, 20 deletions(-) diff --git a/src/murfey/server/api/prometheus.py b/src/murfey/server/api/prometheus.py index 90a54db16..7238e5f33 100644 --- a/src/murfey/server/api/prometheus.py +++ b/src/murfey/server/api/prometheus.py @@ -99,12 +99,6 @@ def increment_rsync_skipped_files_prometheus( ).inc(rsyncer_skipped_files.increment_count) -@router.post("/visits/{visit_name}/monitoring/{on}") -def change_monitoring_status(visit_name: str, on: int): - prom.monitoring_switch.labels(visit=visit_name) - prom.monitoring_switch.labels(visit=visit_name).set(on) - - @router.get("/metrics/{metric_name}") def inspect_prometheus_metrics( metric_name: str, diff --git a/src/murfey/server/prometheus.py b/src/murfey/server/prometheus.py index a86c1b2d0..f12e1ca6a 100644 --- a/src/murfey/server/prometheus.py +++ b/src/murfey/server/prometheus.py @@ -38,10 +38,5 @@ exposure_time = Gauge("exposure_time", "Exposure time for a single movie") -monitoring_switch = Gauge( - "monitoring_on", - "Whether the corresponding visit should be monitored or not", - ["visit"], -) alert_end_time = Gauge("alert_end_time", "End time for alerts", ["visit"]) diff --git a/src/murfey/util/route_manifest.yaml b/src/murfey/util/route_manifest.yaml index 276fa5f9b..ffdccaa51 100644 --- a/src/murfey/util/route_manifest.yaml +++ b/src/murfey/util/route_manifest.yaml @@ -703,15 +703,6 @@ murfey.server.api.prometheus.router: type: str methods: - POST - - path: /prometheus/visits/{visit_name}/monitoring/{on} - function: change_monitoring_status - path_params: - - name: visit_name - type: str - - name: "on" - type: int - methods: - - POST - path: /prometheus/metrics/{metric_name} function: inspect_prometheus_metrics path_params: