def _max_acceptable_lag_for_period(self, td): """ Get the max acceptable lagtime for the timedelta between backups. args: td - the timedelta between backups """ return int(timedelta_total_seconds(td) / 2)
def _calculate_queue_latency(self, task): if isinstance(task, Backup): occurrence_date = task.plan_occurrence or task.created_date else: occurrence_date = task.created_date latency_secs = timedelta_total_seconds(task.start_date - occurrence_date) return round(latency_secs/60, 2)
def _process_plans_considered_now(self, process_max_count=None): count = 0 start_date = date_now() for plan in self._get_plans_to_consider_now(limit=process_max_count): self._plans_queue.put(plan) if process_max_count: count += 1 if count >= process_max_count: break # wait for workers to finish self._plans_queue.join() if count: time_elapsed = timedelta_total_seconds(date_now() - start_date) logger.info("Finished processing %s plans in %s seconds" % ((count or "all"), time_elapsed))
def compute_lag(self, master_status): """Given two 'members' elements from rs.status(), return lag between their optimes (in secs). """ my_status = self.rs_status if not my_status: details = ("Unable to determine replicaset status for member '%s'" % self) raise ConnectionError(self._uri_wrapper.masked_uri, details=details) lag_in_seconds = abs(timedelta_total_seconds( master_status['optimeDate'] - my_status['optimeDate'])) self._lag_in_seconds = lag_in_seconds return self._lag_in_seconds
def compute_lag(self, master_status): """Given two 'members' elements from rs.status(), return lag between their optimes (in secs). """ my_status = self.member_rs_status if not my_status: details = ( "Unable to determine replicaset status for member '%s'" % self) raise ConnectionError(self._uri_wrapper.masked_uri, details=details) lag_in_seconds = abs( timedelta_total_seconds(master_status['optimeDate'] - my_status['optimeDate'])) self._lag_in_seconds = lag_in_seconds return self._lag_in_seconds