Example #1
0
    def __init__(self, cfg=None):
        """
        Initializes a new Agent.
        """

        # fetch config parameters
        config = Config(cfg if cfg else 'giraffe.cfg')

        # configure agent
        self.timer = False
        self.tasks = []
        self.publisher = publisher.AgentPublisher(self)

        # add publisher to tasks
        self.tasks.append(self.publisher)

        # HOST METERS ---------------------------------------------------------

        meters = config.items('agent')
        for (meter, value) in meters:
            try:
                if self.HOST_METER.get(meter):
                    self.tasks.append(self.HOST_METER[meter](getattr(
                        self, '_callback_' + meter), int(value)))
            except ValueError:
                logging.exception('Host meter %s ommitted due to ValueError: '
                                  '\'%s\' is not of type \'int\'' %
                                  (meter, value))

        # uptime = config.get('agent', 'host_uptime')
        # cpu_load = config.get('agent', 'host_cpu_load')
        # mem_usage = config.get('agent', 'host_memory_usage')
        # disk_io = config.get('agent', 'host_disk_io')
        # network_io = config.get('agent', 'host_network_io')

        # host meter `uptime`
        # if uptime:
        #     self.tasks.append(Host_UPTIME(
        #                         self._callback_host_uptime,
        #                         int(uptime)))

        # host meter `CPU load`
        # if cpu_load:
        #     self.tasks.append(Host_CPU_Load(
        #                         self._callback_host_cpu_load,
        #                         int(loadavg)))

        # host meter `memory`
        # if mem_usage:
        #     self.tasks.append(Host_MEMORY_Usage(
        #                         self._callback_host_memory_usage,
        #                         int(mem_usage)))

        # host meter `network I/O`
        # if network_io:
        #     self.tasks.append(Host_NETWORK_IO(
        #                         self._callback_host_network_io,
        #                         int(network_io)))

        # INSTANCE METERS -----------------------------------------------------

        for (meter, value) in meters:
            try:
                if self.INST_METER.get(meter):
                    self.tasks.append(self.INST_METER[meter](getattr(
                        self, '_callback_' + meter), int(value)))
            except ValueError:
                logging.exception(
                    'Instance meter %s ommitted due to ValueError: '
                    '\'%s\' is not of type \'int\'' % (meter, value))
Example #2
0
    def __init__(self, cfg=None):
        """
        Initializes a new Agent.
        """

        # fetch config parameters
        config = Config(cfg if cfg else 'giraffe.cfg')

        # configure agent
        self.timer = False
        self.tasks = []
        self.publisher = publisher.AgentPublisher(self)

        # add publisher to tasks
        self.tasks.append(self.publisher)

        # HOST METERS ---------------------------------------------------------

        meters = config.items('agent')
        for (meter, value) in meters:
            try:
                if self.HOST_METER.get(meter):
                    self.tasks.append(self.HOST_METER[meter](
                                        getattr(self, '_callback_' + meter),
                                        int(value)))
            except ValueError:
                logging.exception('Host meter %s ommitted due to ValueError: '
                                  '\'%s\' is not of type \'int\'' % (meter, value))

        # uptime = config.get('agent', 'host_uptime')
        # cpu_load = config.get('agent', 'host_cpu_load')
        # mem_usage = config.get('agent', 'host_memory_usage')
        # disk_io = config.get('agent', 'host_disk_io')
        # network_io = config.get('agent', 'host_network_io')

        # host meter `uptime`
        # if uptime:
        #     self.tasks.append(Host_UPTIME(
        #                         self._callback_host_uptime,
        #                         int(uptime)))

        # host meter `CPU load`
        # if cpu_load:
        #     self.tasks.append(Host_CPU_Load(
        #                         self._callback_host_cpu_load,
        #                         int(loadavg)))

        # host meter `memory`
        # if mem_usage:
        #     self.tasks.append(Host_MEMORY_Usage(
        #                         self._callback_host_memory_usage,
        #                         int(mem_usage)))

        # host meter `network I/O`
        # if network_io:
        #     self.tasks.append(Host_NETWORK_IO(
        #                         self._callback_host_network_io,
        #                         int(network_io)))

        # INSTANCE METERS -----------------------------------------------------

        for (meter, value) in meters:
            try:
                if self.INST_METER.get(meter):
                    self.tasks.append(self.INST_METER[meter](
                                        getattr(self, '_callback_' + meter),
                                        int(value)))
            except ValueError:
                logging.exception('Instance meter %s ommitted due to ValueError: '
                                  '\'%s\' is not of type \'int\'' % (meter, value))