コード例 #1
0
    def run(self, registry):
        import copy
        from liota.dccs.graphite import Graphite
        from liota.dcc_comms.socket_comms import SocketDccComms
        from liota.lib.utilities.offline_buffering import BufferingParams

        # Acquire resources from registry
        # Creating a copy of system object to keep original object "clean"
        edge_system = copy.copy(registry.get("edge_system"))

        # Get values from configuration file
        config_path = registry.get("package_conf")
        config = read_user_config(config_path + '/sampleProp.conf')

        # Initialize DCC object with transport
        offline_buffering = BufferingParams(persistent_storage=True,
                                            queue_size=-1,
                                            data_drain_size=10,
                                            draining_frequency=1)
        self.graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'],
                                                port=config['GraphitePort']),
                                 buffering_params=offline_buffering)

        # Register gateway system
        graphite_edge_system = self.graphite.register(edge_system)

        registry.register("graphite", self.graphite)
        registry.register("graphite_edge_system", graphite_edge_system)
コード例 #2
0
ファイル: test_graphite.py プロジェクト: zhangshun2014/liota
    def test_graphite_dcc_init_fail_without_DCCComms(self):
        with self.assertRaises(Exception):
            g = Graphite("asd")
            assert not isinstance(g, Graphite)

        with self.assertRaises(Exception):
            # noinspection PyArgumentList
            g = Graphite()
            assert g is None
コード例 #3
0
ファイル: graphite.py プロジェクト: sanket-mindstix/liota
class PackageClass(LiotaPackage):
    """
    This package creates a Graphite DCC object and registers system on
    Graphite to acquire "registered edge system", i.e. graphite_edge_system.
    """
    def run(self, registry):
        import copy
        from liota.dccs.graphite import Graphite
        from liota.dcc_comms.socket_comms import SocketDccComms

        # Acquire resources from registry
        # Creating a copy of system object to keep original object "clean"
        edge_system = copy.copy(registry.get("edge_system"))

        # Get values from configuration file
        config_path = registry.get("package_conf")
        config = {}
        execfile(config_path + '/sampleProp.conf', config)

        # Initialize DCC object with transport
        self.graphite = Graphite(
            SocketDccComms(ip=config['GraphiteIP'],
                           port=config['GraphitePort']))

        # Register gateway system
        graphite_edge_system = self.graphite.register(edge_system)

        registry.register("graphite", self.graphite)
        registry.register("graphite_edge_system", graphite_edge_system)

    def clean_up(self):
        self.graphite.comms.sock.close()
コード例 #4
0
ファイル: graphite.py プロジェクト: d0ivanov/liota
    def run(self, registry):
        import copy
        from liota.dccs.graphite import Graphite
        from liota.dcc_comms.socket_comms import Socket

        # Acquire resources from registry
        # Creating a copy of system object to keep original object "clean"
        edge_system = copy.copy(registry.get("edge_system"))

        # Get values from configuration file
        config_path = registry.get("package_conf")
        config = {}
        execfile(config_path + '/sampleProp.conf', config)

        # Initialize DCC object with transport
        self.graphite = Graphite(
            Socket(ip=config['GraphiteIP'],
                   port=config['GraphitePort'])
        )

        # Register gateway system
        graphite_edge_system = self.graphite.register(edge_system)

        registry.register("graphite", self.graphite)
        registry.register("graphite_edge_system", graphite_edge_system)
コード例 #5
0
ファイル: graphite.py プロジェクト: d0ivanov/liota
class PackageClass(LiotaPackage):
    """
    This package creates a Graphite DCC object and registers system on
    Graphite to acquire "registered edge system", i.e. graphite_edge_system.
    """

    def run(self, registry):
        import copy
        from liota.dccs.graphite import Graphite
        from liota.dcc_comms.socket_comms import Socket

        # Acquire resources from registry
        # Creating a copy of system object to keep original object "clean"
        edge_system = copy.copy(registry.get("edge_system"))

        # Get values from configuration file
        config_path = registry.get("package_conf")
        config = {}
        execfile(config_path + '/sampleProp.conf', config)

        # Initialize DCC object with transport
        self.graphite = Graphite(
            Socket(ip=config['GraphiteIP'],
                   port=config['GraphitePort'])
        )

        # Register gateway system
        graphite_edge_system = self.graphite.register(edge_system)

        registry.register("graphite", self.graphite)
        registry.register("graphite_edge_system", graphite_edge_system)

    def clean_up(self):
        self.graphite.comms.sock.close()
コード例 #6
0
    def run(self, registry):
        import copy
        from liota.dccs.graphite import Graphite
        from liota.dcc_comms.socket_comms import SocketDccComms

        # Acquire resources from registry
        # Creating a copy of system object to keep original object "clean"
        edge_system = copy.copy(registry.get("edge_system"))

        # Get values from configuration file
        config_path = registry.get("package_conf")
        config = read_user_config(config_path + '/sampleProp.conf')

        # Initialize DCC object with transport
        self.graphite = Graphite(
            SocketDccComms(ip=config['GraphiteIP'],
                           port=config['GraphitePort']))

        # Register gateway system
        graphite_edge_system = self.graphite.register(edge_system)

        registry.register("graphite", self.graphite)
        registry.register("graphite_edge_system", graphite_edge_system)
コード例 #7
0
def udm1():
    return comms_channel.get(block=True)

#---------------------------------------------------------------------------
# In this example, we demonstrate how an event stream of data can be directed to graphite
# data center component using Liota by setting sampling_interval_sec parameter to zero.

if __name__ == '__main__':

    edge_system = Dk300EdgeSystem(config['EdgeSystemName'])

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name = config['MetricName']
    content_metric = Metric(
        name=metric_name,
        unit=None,
        interval=0,
        aggregation_size=6,
        sampling_function=udm1
    )
    reg_content_metric = graphite.register(content_metric)
    graphite.create_relationship(graphite_reg_edge_system, reg_content_metric)
    reg_content_metric.start_collecting()
コード例 #8
0
#---------------------------------------------------------------------------
# In this example, we demonstrate how data from a simulated device generating
# random physical variables can be directed to graphite data center component
# using Liota.

if __name__ == '__main__':

    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

    # initialize and run the physical model (simulated device)
    bike_model = BikeSimulated(name=config['DeviceName'], ureg=ureg)

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(
        SocketDccComms(ip=config['GraphiteIP'], port=config['GraphitePort']))
    graphite_reg_dev = graphite.register(bike_model)

    metric_name = "model.bike.speed"
    bike_speed = Metric(name=metric_name,
                        unit=(ureg.m / ureg.sec),
                        interval=5,
                        sampling_function=get_bike_speed)
    reg_bike_speed = graphite.register(bike_speed)
    graphite.create_relationship(graphite_reg_dev, reg_bike_speed)
    reg_bike_speed.start_collecting()

    metric_name = "model.bike.power"
    bike_power = Metric(name=metric_name,
                        unit=ureg.watt,
                        interval=5,
コード例 #9
0
        reg_mem_free_metric.start_collecting()

        swap_mem_free_metric = Metric(name="Swap Memory Free",
                                      unit=None,
                                      interval=8,
                                      aggregation_size=5,
                                      sampling_function=read_swap_mem_free)
        reg_swap_mem_free_metric = iotcc.register(swap_mem_free_metric)
        iotcc.create_relationship(reg_ram_device, reg_swap_mem_free_metric)
        reg_swap_mem_free_metric.start_collecting()

    except RegistrationFailure:
        print "Registration to IOTCC failed"

    # Multiple DCC support
    # Sending data to an alternate data center component (e.g. data lake for analytics)
    # Graphite is a data center component
    # Socket is the transport which the agent uses to connect to the graphite instance
    graphite = Graphite(
        SocketDccComms(ip=config['GraphiteIP'], port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)
    simulated_metric = Metric(name="edge.simulated.metric",
                              unit=None,
                              interval=10,
                              aggregation_size=5,
                              sampling_function=simulated_value)
    reg_simulated_metric = graphite.register(simulated_metric)
    graphite.create_relationship(graphite_reg_edge_system,
                                 reg_simulated_metric)
    reg_simulated_metric.start_collecting()
コード例 #10
0
    return random.randint(10, 25)


def get_vibration():
    return round(random.uniform(0.480, 0.7), 3)


# ---------------------------------------------------------------------------------------
# In this example, we demonstrate how metrics collected from a SensorTag device over BLE
# can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application developers.

if __name__ == '__main__':

    # create a data center object, graphite in this case, using websocket as a transport layer
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'], port=8080))

    try:
        # create a System object encapsulating the particulars of a IoT System
        # argument is the name of this IoT System
        edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

        # resister the IoT System with the graphite instance
        # this call creates a representation (a Resource) in graphite for this IoT System with the name given
        reg_edge_system = graphite.register(edge_system)

        tf_rpm_metric = Metric(name="windmill.RPM",
                               unit=None,
                               interval=1,
                               aggregation_size=1,
                               sampling_function=get_rpm)
コード例 #11
0
    return round((100 - cpu_pcts['idle']), 2)

# ---------------------------------------------------------------------------
# In this example, we demonstrate how a Dell5000 Gateway metric (e.g.,
# CPU utilization) can be directed to graphite data center component
# using Liota. The program illustrates the ease of use Liota brings
# to IoT application developers.

if __name__ == '__main__':

    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name = config['MetricName']
    cpu_utilization = Metric(
        name=metric_name,
        unit=None,
        interval=10,
        aggregation_size=2,
        sampling_function=read_cpu_utilization
    )
    reg_cpu_utilization = graphite.register(cpu_utilization)
    graphite.create_relationship(graphite_reg_edge_system, reg_cpu_utilization)
    reg_cpu_utilization.start_collecting()
コード例 #12
0
    print value


if __name__ == '__main__':

    rpm_limit = 45
    vib_limit = 0.500
    ModelRule = lambda rpm, vib: 1 if (rpm >= rpm_limit and vib >= vib_limit
                                       ) else 0
    exceed_limit = 2  #number of consecutive times a limit can be exceeded

    edge_component = RuleEdgeComponent(ModelRule,
                                       exceed_limit,
                                       actuator_udm=action_actuator)

    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'], port=8080),
                        edge_component)

    # create a System object encapsulating the particulars of a IoT System
    # argument is the name of this IoT System
    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

    # resister the IoT System with the graphite instance
    # this call creates a representation (a Resource) in graphite for this IoT System with the name given

    rule_rpm_metric = Metric(name="rpm",
                             unit=None,
                             interval=1,
                             aggregation_size=1,
                             sampling_function=get_rpm)

    rule_reg_rpm_metric = graphite.register(rule_rpm_metric)
コード例 #13
0
# In this example, we demonstrate how data from a simulated device generating
# random physical variables can be directed to graphite data center component
# using Liota.

if __name__ == '__main__':

    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

    # initialize and run the physical model (simulated device)
    thermistor_model = ThermistorSimulated(name=config['DeviceName'], ureg=ureg)

    # Sending data to a data center component
    # Graphite is a data center component
    # Socket is the transport which the agent uses to connect to the graphite
    # instance
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))

    graphite_reg_dev = graphite.register(thermistor_model)

    metric_name = "model.thermistor.temperature"
    thermistor_temper = Metric(
        name=metric_name,
        unit=ureg.degC,
        interval=5,
        sampling_function=get_thermistor_temperature
    )
    reg_thermistor_temper = graphite.register(thermistor_temper)
    graphite.create_relationship(graphite_reg_dev, reg_thermistor_temper)
    reg_thermistor_temper.start_collecting()
コード例 #14
0

def udm1():
    return comms_channel.get(block=True)


#---------------------------------------------------------------------------
# In this example, we demonstrate how an event stream of data can be directed to graphite
# data center component using Liota by setting sampling_interval_sec parameter to zero.

if __name__ == '__main__':

    edge_system = Dk300EdgeSystem(config['EdgeSystemName'])

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(
        Socket(ip=config['GraphiteIP'], port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name = config['MetricName']
    content_metric = Metric(name=metric_name,
                            unit=None,
                            interval=0,
                            aggregation_size=6,
                            sampling_function=udm1)
    reg_content_metric = graphite.register(content_metric)
    graphite.create_relationship(graphite_reg_edge_system, reg_content_metric)
    reg_content_metric.start_collecting()
コード例 #15
0
ファイル: test_graphite.py プロジェクト: zhangshun2014/liota
 def test_graphite_dcc_init_takes_DCCComms(self):
     mock_dccc = mock.create_autospec(DCCComms)
     g = Graphite(mock_dccc)
     assert isinstance(g, Graphite)
# random numbers can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application
# developers.


def xmpp_subscribe():
    xmpp_conn = XmppDeviceComms("[email protected]", "m1ndst1x", "127.0.0.1",
                                "5222")
    xmpp_conn.subscribe("pubsub.127.0.0.1", "/vmware11",
                        callback_openfire_data)


if __name__ == '__main__':
    xmpp_subscribe()
    edge_system = SimulatedEdgeSystem('EdgeSystemName')

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(SocketDccComms(ip='127.0.0.1', port=80))
    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name = 'OpenfireData'
    openfire_metric = Metric(
        name=metric_name,
        interval=0,
        sampling_function=lambda: get_value(openfire_data))
    reg_openfire_metric = graphite.register(openfire_metric)
    graphite.create_relationship(graphite_reg_edge_system, reg_openfire_metric)
    reg_openfire_metric.start_collecting()
コード例 #17
0
    return round((100 - cpu_pcts['idle']), 2)

# ---------------------------------------------------------------------------
# In this example, we demonstrate how a Dell5000 Gateway metric (e.g.,
# CPU utilization) can be directed to graphite data center component
# using Liota. The program illustrates the ease of use Liota brings
# to IoT application developers.

if __name__ == '__main__':

    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name = config['MetricName']
    cpu_utilization = Metric(
        name=metric_name,
        unit=None,
        interval=10,
        aggregation_size=2,
        sampling_function=read_cpu_utilization
    )
    reg_cpu_utilization = graphite.register(cpu_utilization)
    graphite.create_relationship(graphite_reg_edge_system, reg_cpu_utilization)
    reg_cpu_utilization.start_collecting()
コード例 #18
0

# ---------------------------------------------------------------------------
# In this example, we demonstrate how a Raspberry Pi Gateway metric (e.g.,
# CPU utilization) can be directed to graphite data center component
# using Liota. The program illustrates the ease of use Liota brings
# to IoT application developers.

if __name__ == '__main__':

    edge_system = RaspberrypiEdgeSystem(config['EdgeSystemName'])

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(
        SocketDccComms(ip=config['GraphiteIP'], port=config['GraphitePort']))

    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name_t = config['MetricName_temperature']
    temperature = Metric(name=metric_name_t,
                         interval=3,
                         sampling_function=get_temperature)
    reg_temperature = graphite.register(temperature)
    graphite.create_relationship(graphite_reg_edge_system, reg_temperature)
    reg_temperature.start_collecting()

    metric_name_p = config['MetricName_pressure']
    pressure = Metric(name=metric_name_p,
                      interval=3,
                      sampling_function=get_pressure)
コード例 #19
0
        rule_rpm_metric = Metric(name="rpm",
                                 unit=None,
                                 interval=1,
                                 aggregation_size=1,
                                 sampling_function=get_rpm)

        rpm_limit = 45
        vib_limit = 0.500
        ModelRule = lambda rpm, vib: 1 if (rpm >= rpm_limit and vib >=
                                           vib_limit) else 0
        exceed_limit = 1  #number of consecutive times a limit can be exceeded

        edge_component = RuleEdgeComponent(ModelRule,
                                           exceed_limit,
                                           actuator_udm=action_actuator)
        graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'], port=8080),
                            edge_component)
        reg_edge_system = graphite.register(edge_system)

        rule_reg_rpm_metric = graphite.register(rule_rpm_metric)
        rule_reg_rpm_metric.start_collecting()

        rule_vib_metric = Metric(name="vib",
                                 unit=None,
                                 interval=2,
                                 aggregation_size=1,
                                 sampling_function=get_vibration)

        rule_reg_vib_metric = graphite.register(rule_vib_metric)
        rule_reg_vib_metric.start_collecting()

    except RegistrationFailure:
コード例 #20
0
def random_function():
    return 3


def on_message(client, data, msg):
    d = eval(msg.payload)
    print(d)


# getting values from conf file
config = {}
execfile('sampleProp.conf', config)

if __name__ == '__main__':
    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])
    graphite = Graphite(
        SocketDccComms(ip=config['GraphiteIP'], port=config['GraphitePort']))
    graphite_reg_dev = graphite.register(edge_system)
    mqtt = MqttDeviceComms(url="test.mosquitto.org",
                           port=1883,
                           clean_session=True,
                           conn_disconn_timeout=1000)
    print('Connection to broker established...')
    mqtt.subscribe("random_data", callback=on_message, qos=2)
    print('Subscribed to random_data')
    metric_name = "model.device_data"
    random_metric = Metric(name=metric_name,
                           interval=5,
                           sampling_function=random_function)
    reg_metric = graphite.register(random_metric)
    graphite.create_relationship(graphite_reg_dev, reg_metric)
    reg_metric.start_collecting()
コード例 #21
0
    return rpm_model_queue.get(block=True)


def action_actuator(value):
    print value


# ---------------------------------------------------------------------------------------
# In this example, we demonstrate how metrics collected from a SensorTag device over BLE
# can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application developers.

if __name__ == '__main__':

    # create a data center object, graphite in this case, using websocket as a transport layer
    graphite = Graphite(
        SocketDccComms(ip=config['GraphiteIP'], port=config['GraphitePort']))

    try:
        # create a System object encapsulating the particulars of a IoT System
        # argument is the name of this IoT System
        edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

        # resister the IoT System with the graphite instance
        # this call creates a representation (a Resource) in graphite for this IoT System with the name given
        reg_edge_system = graphite.register(edge_system)

        # Operational metrics of EdgeSystem
        cpu_utilization_metric = Metric(name="windmill.CPU_Utilization",
                                        unit=None,
                                        interval=10,
                                        aggregation_size=2,
コード例 #22
0
    return list_of_timestamp_value_tuples

# ---------------------------------------------------------------------------
# In this example, we demonstrate how data for a simulated metric generating
# random numbers can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application
# developers.

if __name__ == '__main__':

    edge_system = SimulatedEdgeSystem(config['EdgeSystemName'])

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(Socket(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)

    # A simple simulated metric which generates metric value every 10 seconds
    simple_metric_name = config['MetricName']
    simple_metric = Metric(name=simple_metric_name, interval=10,
                              sampling_function=simulated_value_sampling_function)
    reg_simple_metric = graphite.register(simple_metric)
    graphite.create_relationship(graphite_reg_edge_system, reg_simple_metric)
    reg_simple_metric.start_collecting()

    # A simulated metric producing sample value along with timestamp when the sample was generated
    metric_with_own_ts_name = config['MetricWithOwnTsName']
    metric_with_own_ts = Metric(name=metric_with_own_ts_name, interval=10,
                              sampling_function=simulated_timestamp_value_sampling_function)
    reg_metric_with_own_ts = graphite.register(metric_with_own_ts)
コード例 #23
0
            name="Swap Memory Free",
            unit=None,
            interval=8,
            aggregation_size=5,
            sampling_function=read_swap_mem_free
        )
        reg_swap_mem_free_metric = iotcc.register(swap_mem_free_metric)
        iotcc.create_relationship(reg_ram_device, reg_swap_mem_free_metric)
        reg_swap_mem_free_metric.start_collecting()

    except RegistrationFailure:
        print "Registration to IOTCC failed"

    # Multiple DCC support
    # Sending data to an alternate data center component (e.g. data lake for analytics)
    # Graphite is a data center component
    # Socket is the transport which the agent uses to connect to the graphite instance
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)
    simulated_metric = Metric(
        name="edge.simulated.metric",
        unit=None,
        interval=10,
        aggregation_size=5,
        sampling_function=simulated_value
    )
    reg_simulated_metric = graphite.register(simulated_metric)
    graphite.create_relationship(graphite_reg_edge_system, reg_simulated_metric)
    reg_simulated_metric.start_collecting()
コード例 #24
0
#---------------------------------------------------------------------------
# In this example, we demonstrate how data from a simulated device generating
# random physical variables can be directed to graphite data center component
# using Liota.

if __name__ == '__main__':

    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

    # initialize and run the physical model (simulated device)
    bike_model = BikeSimulated(name=config['DeviceName'], ureg=ureg)

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(Socket(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))
    graphite_reg_dev = graphite.register(bike_model)

    metric_name = "model.bike.speed"
    bike_speed = Metric(
        name=metric_name,
        unit=(ureg.m / ureg.sec),
        interval=5,
        sampling_function=get_bike_speed
    )
    reg_bike_speed = graphite.register(bike_speed)
    graphite.create_relationship(graphite_reg_dev, reg_bike_speed)
    reg_bike_speed.start_collecting()

    metric_name = "model.bike.power"
    bike_power = Metric(
コード例 #25
0
    return temp_kelvin.magnitude


# --------------------------------------------------------------------------
# In this example, we demonstrate how data from a simulated device generating
# random numbers can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application developers.

if __name__ == '__main__':

    edge_system = Dk300EdgeSystem(config['EdgeSystemName'])

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(
        Socket(ip=config['GraphiteIP'], port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name_temp_degC = config['MetricNameTempDegC']
    temp_metric_degC = Metric(name=metric_name_temp_degC,
                              unit=ureg.degC,
                              interval=33,
                              aggregation_size=6,
                              sampling_function=getTempDegC)
    reg_temp_metric_degC = graphite.register(temp_metric_degC)
    graphite.create_relationship(graphite_reg_edge_system,
                                 reg_temp_metric_degC)
    reg_temp_metric_degC.start_collecting()

    metric_name_temp_degF = config['MetricNameTempDegF']
    temp_metric_degF = Metric(name=metric_name_temp_degF,
コード例 #26
0
# In this example, we demonstrate how data from a simulated device generating
# random physical variables can be directed to graphite data center component
# using Liota.

if __name__ == '__main__':

    edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

    # initialize and run the physical model (simulated device)
    thermistor_model = ThermistorSimulated(name=config['DeviceName'], ureg=ureg)

    # Sending data to a data center component
    # Graphite is a data center component
    # Socket is the transport which the agent uses to connect to the graphite
    # instance
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))

    graphite_reg_dev = graphite.register(thermistor_model)

    metric_name = "model.thermistor.temperature"
    thermistor_temper = Metric(
        name=metric_name,
        unit=ureg.degC,
        interval=5,
        sampling_function=get_thermistor_temperature
    )
    reg_thermistor_temper = graphite.register(thermistor_temper)
    graphite.create_relationship(graphite_reg_dev, reg_thermistor_temper)
    reg_thermistor_temper.start_collecting()
コード例 #27
0
    temp_kelvin = temp.to('kelvin')
    return temp_kelvin.magnitude

# --------------------------------------------------------------------------
# In this example, we demonstrate how data from a simulated device generating
# random numbers can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application developers.

if __name__ == '__main__':

    edge_system = Dk300EdgeSystem(config['EdgeSystemName'])

    # Sending data to Graphite data center component
    # Socket is the underlying transport used to connect to the Graphite
    # instance
    graphite = Graphite(SocketDccComms(ip=config['GraphiteIP'],
                               port=config['GraphitePort']))
    graphite_reg_edge_system = graphite.register(edge_system)

    metric_name_temp_degC = config['MetricNameTempDegC']
    temp_metric_degC = Metric(
        name=metric_name_temp_degC,
        unit=ureg.degC,
        interval=33,
        aggregation_size=6,
        sampling_function=getTempDegC
    )
    reg_temp_metric_degC = graphite.register(temp_metric_degC)
    graphite.create_relationship(graphite_reg_edge_system, reg_temp_metric_degC)
    reg_temp_metric_degC.start_collecting()

    metric_name_temp_degF = config['MetricNameTempDegF']
コード例 #28
0
    return rpm_model_queue.get(block=True)


def action_actuator(value):
    print value


# ---------------------------------------------------------------------------------------
# In this example, we demonstrate how metrics collected from a SensorTag device over BLE
# can be directed to graphite data center component using Liota.
# The program illustrates the ease of use Liota brings to IoT application developers.

if __name__ == '__main__':

    # create a data center object, graphite in this case, using websocket as a transport layer
    graphite = Graphite(
        SocketDccComms(ip=config['GraphiteIP'], port=config['GraphitePort']))

    try:
        # create a System object encapsulating the particulars of a IoT System
        # argument is the name of this IoT System
        edge_system = Dell5KEdgeSystem(config['EdgeSystemName'])

        # resister the IoT System with the graphite instance
        # this call creates a representation (a Resource) in graphite for this IoT System with the name given
        reg_edge_system = graphite.register(edge_system)

        # Operational metrics of EdgeSystem
        cpu_utilization_metric = Metric(name="windmill.CPU_Utilization",
                                        unit=None,
                                        interval=10,
                                        aggregation_size=2,