From 1786789da4c385dc22ec955f9d2685ce9a98d3ba Mon Sep 17 00:00:00 2001 From: Nichamon Naksinehaboon Date: Tue, 12 Nov 2024 09:21:41 -0600 Subject: [PATCH] Add 'ping_interval' as an alias of the ping interval attribute --- ldms/man/ldmsd_failover.man | 28 ++++++++++++------------- ldms/python/ldmsd/ldmsd_communicator.py | 1 + ldms/python/ldmsd/ldmsd_controller | 10 +++++++-- ldms/src/ldmsd/ldmsd_request_util.c | 1 + 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/ldms/man/ldmsd_failover.man b/ldms/man/ldmsd_failover.man index 5cf3664a5..828043b9a 100644 --- a/ldms/man/ldmsd_failover.man +++ b/ldms/man/ldmsd_failover.man @@ -15,7 +15,7 @@ ldmsd_failover - explanation, configuration, and commands for ldmsd failover .IP \fBfailover_config\fR 16 .RI "host=" HOST " port=" PORT " xprt=" XPRT -.RI "[peer_name=" NAME "] [interval=" USEC "] [timeout_factor=" FLOAT "]" +.RI "[peer_name=" NAME "] [ping_interval=" USEC "] [timeout_factor=" FLOAT "]" .RI "[auto_switch=" 0|1 "]" .IP \fBfailover_start\fR @@ -63,12 +63,12 @@ optional in re-configuration. \fBldmsd\fR(8)). If this is specified, the ldmsd will only accept a pairing with other ldmsd with matching name. Otherwise, the ldmsd will pair with any ldmsd requesting a failover pairing. -.IP \fBinterval\fR=\fIuSEC\fR +.IP \fBping_interval\fR=\fIuSEC\fR (Optional) The interval (in micro-seconds) for ping and transport re-connecting. The default is 1000000 (1 sec). .IP \fBtimeout_factor\fR=\fIFLOAT\fR (Optional) The echo timeout factor. The echo timeout is calculated by -\fB\%timeout_factor * \%interval\fR. The default is 2. +\fB\%timeout_factor * \%ping_interval\fR. The default is 2. .IP \fBauto_switch\fR=\fI0|1\fR (Optional) If this is on (1), ldmsd will start \fBpeercfg\fR or stop \fBpeercfg\fR automatically. Otherwise, the user need to issue @@ -174,28 +174,28 @@ shown above: .B # a20.cfg prdcr_add name=prdcr_a10 host=a10.hostname port=12345 xprt=sock \\ - type=active interval=1000000 + type=active reconnect_interval=1000000 prdcr_start name=prdcr_a10 prdcr_add name=prdcr_a11 host=a11.hostname port=12345 xprt=sock \\ - type=active interval=1000000 + type=active reconnect_interval=1000000 prdcr_start name=prdcr_a11 -updtr_add name=upd interval=1000000 offset=0 +updtr_add name=upd update_interval=1000000 offset=0 updtr_prdcr_add name=upd regex.* updtr_start upd .B # a10.cfg prdcr_add name=prdcr_s00 host=s00.hostname port=12345 xprt=sock \\ - type=active interval=1000000 + type=active reconnect_interval=1000000 prdcr_start name=prdcr_s00 prdcr_add name=prdcr_s01 host=s01.hostname port=12345 xprt=sock \\ - type=active interval=1000000 + type=active reconnect_interval=1000000 prdcr_start name=prdcr_s01 -updtr_add name=upd interval=1000000 offset=0 +updtr_add name=upd update_interval=1000000 offset=0 updtr_prdcr_add name=upd regex.* updtr_start upd \fIfailover_config\fR host=a11.hostname port=12345 xprt=sock \\ - interval=1000000 peer_name=a11 + ping_interval=1000000 peer_name=a11 \fIfailover_start\fR .B # a10 CLI @@ -205,16 +205,16 @@ $ ldmsd -c a10.cfg -x sock:12345 \fB-n\fR \fIa10\fR .B # a11.cfg prdcr_add name=prdcr_s02 host=s02.hostname port=12345 xprt=sock \\ - type=active interval=1000000 + type=active reconnect_interval=1000000 prdcr_start name=prdcr_s02 prdcr_add name=prdcr_s03 host=s03 port=12345 xprt=sock \\ - type=active interval=1000000 + type=active reconnect_interval=1000000 prdcr_start name=prdcr_s03 -updtr_add name=upd interval=1000000 offset=0 +updtr_add name=upd update_interval=1000000 offset=0 updtr_prdcr_add name=upd regex.* updtr_start upd \fIfailover_config\fR host=a10.hostname port=12345 xprt=sock \\ - interval=1000000 peer_name=a10 + ping_interval=1000000 peer_name=a10 \fIfailover_start\fR .B # a11 CLI diff --git a/ldms/python/ldmsd/ldmsd_communicator.py b/ldms/python/ldmsd/ldmsd_communicator.py index e8d96ea91..5aa2ee17e 100644 --- a/ldms/python/ldmsd/ldmsd_communicator.py +++ b/ldms/python/ldmsd/ldmsd_communicator.py @@ -158,6 +158,7 @@ ], 'opt_attr': [ 'interval', + 'ping_interval', 'peer_name', 'auto_switch', 'timeout_factor', diff --git a/ldms/python/ldmsd/ldmsd_controller b/ldms/python/ldmsd/ldmsd_controller index 1350ec524..e376cf714 100755 --- a/ldms/python/ldmsd/ldmsd_controller +++ b/ldms/python/ldmsd/ldmsd_controller @@ -1614,7 +1614,8 @@ class LdmsdCmdParser(cmd.Cmd): port= The LDMS port of the failover partner. This is optional in re-configuration. [auto_switch=0|1] Auto switching (failover/failback). - [interval=] The interval of the heartbeat. + [ping_interval=] The interval of the heartbeat. + [interval=] Deprecated. Please use 'ping_interval'. [timeout_factor=] The hearbeat timeout factor. [peer_name=] The failover partner name. If not given, the ldmsd will accept any partner. @@ -1622,11 +1623,16 @@ class LdmsdCmdParser(cmd.Cmd): arg = self.handle_args('failover_config', arg) if not arg: return + if all(v is not None for v in [arg['ping_interval'], arg['interval']]): + print(f"Both 'ping_interval' and 'interval' were given, the value of 'ping_interval' will be used.") + elif arg['interval'] is not None: + print(f"'interval' is deprecated. Please use 'ping_interval' in the future") + arg['pint_interval'] = arg['interval'] rc, msg = self.comm.failover_config(arg['host'], arg['xprt'], arg['port'], arg['auto_switch'], - arg['interval'], + arg['ping_interval'], arg['timeout_factor'], arg['peer_name']) if rc: diff --git a/ldms/src/ldmsd/ldmsd_request_util.c b/ldms/src/ldmsd/ldmsd_request_util.c index 4be00a499..5f8761c2d 100644 --- a/ldms/src/ldmsd/ldmsd_request_util.c +++ b/ldms/src/ldmsd/ldmsd_request_util.c @@ -178,6 +178,7 @@ const struct req_str_id attr_str_id_table[] = { { "peer_name", LDMSD_ATTR_PEER_NAME }, { "perm", LDMSD_ATTR_PERM }, { "plugin", LDMSD_ATTR_PLUGIN }, + { "ping_interval", LDMSD_ATTR_INTERVAL }, { "port", LDMSD_ATTR_PORT }, { "producer", LDMSD_ATTR_PRODUCER }, { "push", LDMSD_ATTR_PUSH },