Git Product home page Git Product logo

occimon-live's Introduction

occimon-live

(Short URL: tinyurl.com/occimon)

A VirtualBox testbed with a monitoring infrastructure configured using the OCCI Monitoring model

Summary

This repository provides a simple demo of the OCCI Monitoring extension. The demo does not contain the OCCI front-end, the one across which the user inputs the description of the monitoring framework, and assumes that the description has already been loaded in a web server. Instead, the demo contains the engine that, using the description, creates the monitoring framework.

The monitored provision is composed of three VMs

  • server - it is the web server that delivers the description as HTTP response content (encoded in JSON),
  • sensor - it represents the entity that manages the monitoring stream,
  • pc1 - it is the target resource of the monitoring activity.

The testbed is generated by Vagrant with a single vagrant up command. Next you run the commands that create the monitoring infrastructure.

The sample monitoring consists of the measurement of the CPU load on the resource, and the connectivity with another host: the CPU load is filtered using a Exponentially Weighted Moving Average, and delivered to the guest machine as UDP datagrams on port 8888, while the connectivity is recorded in a logfile (partially implemented).

You can modify the configuration files to create an infrastructure at your taste.

HOWTO

You need to have DropBox and Vagrant (version > 1.6.5) installed on the guest machine to run the demo. The first time you need also a fast Internet connection to download approx. 500Mb for a disk image (a Vagrant box)

  • Clone this repository
  • Run
$ vagrant up

The system is generated and booted. The first time you run this command a disk image is downloaded, so expect a significant delay.

Launch the HTTP server on server. It provides the web pages containing the OCCI documents:

me@mydesktop:~/demodir$ vagrant ssh server
...
vagrant@server:~$ sudo service httpserver start
 * Starting HTTP server

Launch the metric container on pc1. Use the command probe.sh with the id of the monitored resource urn:uuid:c2222

me@mydesktop:~/demodir$ vagrant ssh pc1
...
vagrant@pc1:~$ ./probe.sh urn:uuid:c2222
Launch collector endpoint http://192.168.5.2:6789/urn:uuid:c2222
Metric container is ready (192.168.5.3:12312)

The metric container is now up and running, and waits for input from the sensor.

Launch the sensor container on sensor. Use the command sensor.sh with the id of the sensor resource(s): urn:uuid:s1111

me@mydesktop:~/demodir$ vagrant ssh sensor
...
vagrant@sensor:~$ ./sensor.sh urn:uuid:s1111
Launching sensor urn:uuid:s1111
Sensor receiving from TCP socket 192.168.5.6:52812
Launching remote collectors: [urn:uuid:2345]
Sensor launching collector from 192.168.5.3:12312
Logging true to my/log/file
ewma input: 1.0
sendudp: sending 1.0
Logging true to my/log/file
ewma input: 1.0
sendudp: sending 1.0
...

The sensor description is loaded from the web server. The sensor thread opens an input socket and fetches from the server the description of the collector. Using this information it instructs the metric container on pc1 to start its activity. Data is received, processed with the EWMA filter, and delivered as a stream of datagrams to the guest machine.

Now you can switch on the guest machine and observe the stream of UDP packets:

me@mydesktop:~/Desktop$ nc -ul 8888
Data: 2.3689306
Data: 2.2884052
Data: 2.2126167
Data: 2.1412864
...

Under the hood...

The configuration files are in the www directory: you can play with them. In order to see the results you need to stop the whole and restart the server, and the components.

To restart the server

sudo service httpserver restart

References

research paper that illustrates the concepts behind the extension and how it works

Ciuffoletti, Augusto (2014) A simple and generic interface for a Cloud Monitoring System. In: CLOSER 2014 - 4th International Conference on Cloud Computing and Services Science, April 2-5 2014, Barcelona.

proposal a draft of the OGF document that defines the extension repository of the Java code of the metricContainer and of the sensorContainer as an Eclipse project.

Who do I talk to?

  • augusto.at.di.unipi.it
  • OCCI working group maillist

occimon-live's People

Contributors

mastrogeppetto avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.