def __init__(self,<EOL>hub_address,<EOL>hub_port=None,<EOL>hub_port_range=(<NUM_LIT>, <NUM_LIT>),<EOL>database=None,              <EOL>visualization_server=None,  <EOL>client_address="<STR_LIT:127.0.0.1>",<EOL>client_port=None,<EOL>monitoring_hub_address="<STR_LIT:127.0.0.1>",<EOL>logdir="<STR_LIT:.>",<EOL>logging_level=logging.DEBUG,<EOL>atexit_timeout=<NUM_LIT:3>    <EOL>):
try:<EOL><INDENT>os.makedirs(logdir)<EOL><DEDENT>except FileExistsError:<EOL><INDENT>pass<EOL><DEDENT>self.logger = start_file_logger("<STR_LIT>".format(logdir),<EOL>name="<STR_LIT>",<EOL>level=logging_level)<EOL>self.logger.debug("<STR_LIT>")<EOL>if not hub_port:<EOL><INDENT>self.logger.critical("<STR_LIT>")<EOL><DEDENT>self.hub_port = hub_port<EOL>self.hub_address = hub_address<EOL>self.database = database<EOL>self.visualization_server = visualization_server<EOL>self.atexit_timeout = atexit_timeout<EOL>self.loop_freq = <NUM_LIT>  <EOL>self.logger.debug("<STR_LIT>".format(hub_port))<EOL>try:<EOL><INDENT>self.sock = socket.socket(socket.AF_INET,<EOL>socket.SOCK_DGRAM,<EOL>socket.IPPROTO_UDP)<EOL>self.sock.bind(('<STR_LIT>', hub_port))<EOL>self.sock.settimeout(self.loop_freq / <NUM_LIT:1000>)<EOL><DEDENT>except OSError:<EOL><INDENT>self.logger.critical("<STR_LIT>")<EOL>self.hub_port = -<NUM_LIT:1><EOL><DEDENT>self._context = zmq.Context()<EOL>self.dfk_channel = self._context.socket(zmq.DEALER)<EOL>self.dfk_channel.set_hwm(<NUM_LIT:0>)<EOL>self.dfk_channel.RCVTIMEO = int(self.loop_freq)  <EOL>self.dfk_channel.connect("<STR_LIT>".format(client_address, client_port))<EOL>
Initializes a monitoring configuration class.

        Parameters
        ----------
        address : str
            IP address of the node on which the monitoring hub will run, this address must be
            reachable from the Parsl client as well as the worker nodes. Eg. <NNN>.<NNN>.<NNN>.<NNN>

        port : int
            Used with Elasticsearch logging, the port of where to access Elasticsearch. Required when using logging_type = 'elasticsearch'.

        logging_endpoint : Endpoint object
            This is generally a database object to which logging data can be pushed to from the
            monitoring HUB.

        workflow_name : str, optional
            Name to record as the workflow base name, defaults to the name of the parsl script file if left as None.

        workflow_version : str, optional
            Optional workflow identification to distinguish between workflows with the same name, not used internally only for display to user.

        atexit_timeout : float, optional
            The amount of time in seconds to terminate the hub without receiving any messages, after the last dfk workflow message is received.