+ def create_heartbeat_lines(hosts):
+ lines = list()
+ for host in hosts:
+ dim_id = '_'.join([host, 'heartbeat_lag'])
+ lines.append([dim_id, host, 'absolute', 1, 1000])
+ return lines
+
+ def create_state_lines(states):
+ lines = list()
+ for state, description in states:
+ dim_id = '_'.join([host, 'state', state])
+ lines.append([dim_id, description, 'absolute', 1, 1])
+ return lines
+
+ all_hosts = server_status['repl']['hosts']
+ this_host = server_status['repl']['me']
+ other_hosts = [host for host in all_hosts if host != this_host]
+
+ # Create "heartbeat delay" charts
+ self.order.append('heartbeat_delay')
+ self.definitions['heartbeat_delay'] = {
+ 'options': [None, 'Latency between this node and replica set members (lastHeartbeatRecv)',
+ 'seconds', 'replication', 'mongodb.replication_heartbeat_delay', 'stacked'],
+ 'lines': create_heartbeat_lines(other_hosts)}
+ # Create "replica set members state" chart
+ for host in all_hosts: