Skip to content

Commit 9fb5269

Browse files
authored
Remove ability to set monitoring log directory separate from rundir (#3699)
Prior to this PR, MonitoringHub had a logdir parameter which let the log directory be set separately from the DFK-level run directory. Other Parsl components generally don't let the user set this unless there is a specific reason. So this PR removes that feature, reducing the amount of state to be threaded around. When reading this patch, note that what the DFK calls the rundir is a different directory vs what a Config object calls the rundir. # Changed Behaviour This removes a parameter from user facing MonitoringHub configuration. ## Type of change - Code maintenance/cleanup
1 parent 3eb7e93 commit 9fb5269

File tree

4 files changed

+18
-27
lines changed

4 files changed

+18
-27
lines changed

parsl/dataflow/dflow.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,6 @@ def __init__(self, config: Config) -> None:
111111
self.monitoring = config.monitoring
112112

113113
if self.monitoring:
114-
if self.monitoring.logdir is None:
115-
self.monitoring.logdir = self.run_dir
116114
self.monitoring.start(self.run_dir, self.config.run_dir)
117115

118116
self.time_began = datetime.datetime.now()

parsl/monitoring/db_manager.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -279,20 +279,20 @@ class Resource(Base):
279279
class DatabaseManager:
280280
def __init__(self,
281281
db_url: str = 'sqlite:///runinfo/monitoring.db',
282-
logdir: str = '.',
282+
run_dir: str = '.',
283283
logging_level: int = logging.INFO,
284284
batching_interval: float = 1,
285285
batching_threshold: float = 99999,
286286
):
287287

288288
self.workflow_end = False
289289
self.workflow_start_message: Optional[MonitoringMessage] = None
290-
self.logdir = logdir
291-
os.makedirs(self.logdir, exist_ok=True)
290+
self.run_dir = run_dir
291+
os.makedirs(self.run_dir, exist_ok=True)
292292

293293
logger.propagate = False
294294

295-
set_file_logger("{}/database_manager.log".format(self.logdir), level=logging_level,
295+
set_file_logger(f"{self.run_dir}/database_manager.log", level=logging_level,
296296
format_string="%(asctime)s.%(msecs)03d %(name)s:%(lineno)d [%(levelname)s] [%(threadName)s %(thread)d] %(message)s",
297297
name="database_manager")
298298

@@ -681,7 +681,7 @@ def close(self) -> None:
681681
def dbm_starter(exception_q: mpq.Queue,
682682
resource_msgs: mpq.Queue,
683683
db_url: str,
684-
logdir: str,
684+
run_dir: str,
685685
logging_level: int) -> None:
686686
"""Start the database manager process
687687
@@ -692,7 +692,7 @@ def dbm_starter(exception_q: mpq.Queue,
692692

693693
try:
694694
dbm = DatabaseManager(db_url=db_url,
695-
logdir=logdir,
695+
run_dir=run_dir,
696696
logging_level=logging_level)
697697
logger.info("Starting dbm in dbm starter")
698698
dbm.start(resource_msgs)

parsl/monitoring/monitoring.py

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ def __init__(self,
4444
workflow_name: Optional[str] = None,
4545
workflow_version: Optional[str] = None,
4646
logging_endpoint: Optional[str] = None,
47-
logdir: Optional[str] = None,
4847
monitoring_debug: bool = False,
4948
resource_monitoring_enabled: bool = True,
5049
resource_monitoring_interval: float = 30): # in seconds
@@ -73,8 +72,6 @@ def __init__(self,
7372
The database connection url for monitoring to log the information.
7473
These URLs follow RFC-1738, and can include username, password, hostname, database name.
7574
Default: sqlite, in the configured run_dir.
76-
logdir : str
77-
Parsl log directory paths. Logs and temp files go here. Default: '.'
7875
monitoring_debug : Bool
7976
Enable monitoring debug logging. Default: False
8077
resource_monitoring_enabled : boolean
@@ -96,7 +93,6 @@ def __init__(self,
9693
self.hub_port_range = hub_port_range
9794

9895
self.logging_endpoint = logging_endpoint
99-
self.logdir = logdir
10096
self.monitoring_debug = monitoring_debug
10197

10298
self.workflow_name = workflow_name
@@ -109,13 +105,10 @@ def start(self, dfk_run_dir: str, config_run_dir: Union[str, os.PathLike]) -> No
109105

110106
logger.debug("Starting MonitoringHub")
111107

112-
if self.logdir is None:
113-
self.logdir = "."
114-
115108
if self.logging_endpoint is None:
116109
self.logging_endpoint = f"sqlite:///{os.fspath(config_run_dir)}/monitoring.db"
117110

118-
os.makedirs(self.logdir, exist_ok=True)
111+
os.makedirs(dfk_run_dir, exist_ok=True)
119112

120113
self.monitoring_hub_active = True
121114

@@ -151,7 +144,7 @@ def start(self, dfk_run_dir: str, config_run_dir: Union[str, os.PathLike]) -> No
151144
"hub_address": self.hub_address,
152145
"udp_port": self.hub_port,
153146
"zmq_port_range": self.hub_port_range,
154-
"logdir": self.logdir,
147+
"run_dir": dfk_run_dir,
155148
"logging_level": logging.DEBUG if self.monitoring_debug else logging.INFO,
156149
},
157150
name="Monitoring-Router-Process",
@@ -161,7 +154,7 @@ def start(self, dfk_run_dir: str, config_run_dir: Union[str, os.PathLike]) -> No
161154

162155
self.dbm_proc = ForkProcess(target=dbm_starter,
163156
args=(self.exception_q, self.resource_msgs,),
164-
kwargs={"logdir": self.logdir,
157+
kwargs={"run_dir": dfk_run_dir,
165158
"logging_level": logging.DEBUG if self.monitoring_debug else logging.INFO,
166159
"db_url": self.logging_endpoint,
167160
},
@@ -172,7 +165,7 @@ def start(self, dfk_run_dir: str, config_run_dir: Union[str, os.PathLike]) -> No
172165
logger.info("Started the router process %s and DBM process %s", self.router_proc.pid, self.dbm_proc.pid)
173166

174167
self.filesystem_proc = ForkProcess(target=filesystem_receiver,
175-
args=(self.logdir, self.resource_msgs, dfk_run_dir),
168+
args=(self.resource_msgs, dfk_run_dir),
176169
name="Monitoring-Filesystem-Process",
177170
daemon=True
178171
)
@@ -258,8 +251,8 @@ def close(self) -> None:
258251

259252

260253
@wrap_with_logs
261-
def filesystem_receiver(logdir: str, q: Queue[TaggedMonitoringMessage], run_dir: str) -> None:
262-
logger = set_file_logger("{}/monitoring_filesystem_radio.log".format(logdir),
254+
def filesystem_receiver(q: Queue[TaggedMonitoringMessage], run_dir: str) -> None:
255+
logger = set_file_logger(f"{run_dir}/monitoring_filesystem_radio.log",
263256
name="monitoring_filesystem_radio",
264257
level=logging.INFO)
265258

parsl/monitoring/router.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def __init__(self,
3131
zmq_port_range: Tuple[int, int] = (55050, 56000),
3232

3333
monitoring_hub_address: str = "127.0.0.1",
34-
logdir: str = ".",
34+
run_dir: str = ".",
3535
logging_level: int = logging.INFO,
3636
atexit_timeout: int = 3, # in seconds
3737
resource_msgs: mpq.Queue,
@@ -48,7 +48,7 @@ def __init__(self,
4848
zmq_port_range : tuple(int, int)
4949
The MonitoringHub picks ports at random from the range which will be used by Hub.
5050
Default: (55050, 56000)
51-
logdir : str
51+
run_dir : str
5252
Parsl log directory paths. Logs and temp files go here. Default: '.'
5353
logging_level : int
5454
Logging level as defined in the logging module. Default: logging.INFO
@@ -59,8 +59,8 @@ def __init__(self,
5959
exit_event : Event
6060
An event that the main Parsl process will set to signal that the monitoring router should shut down.
6161
"""
62-
os.makedirs(logdir, exist_ok=True)
63-
self.logger = set_file_logger("{}/monitoring_router.log".format(logdir),
62+
os.makedirs(run_dir, exist_ok=True)
63+
self.logger = set_file_logger(f"{run_dir}/monitoring_router.log",
6464
name="monitoring_router",
6565
level=logging_level)
6666
self.logger.debug("Monitoring router starting")
@@ -187,14 +187,14 @@ def router_starter(*,
187187
udp_port: Optional[int],
188188
zmq_port_range: Tuple[int, int],
189189

190-
logdir: str,
190+
run_dir: str,
191191
logging_level: int) -> None:
192192
setproctitle("parsl: monitoring router")
193193
try:
194194
router = MonitoringRouter(hub_address=hub_address,
195195
udp_port=udp_port,
196196
zmq_port_range=zmq_port_range,
197-
logdir=logdir,
197+
run_dir=run_dir,
198198
logging_level=logging_level,
199199
resource_msgs=resource_msgs,
200200
exit_event=exit_event)

0 commit comments

Comments
 (0)