orbit management, control & measurement framework (omf) max ott nicta [email protected]

9
Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA [email protected]

Upload: bertina-rose

Post on 02-Jan-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Orbit Management, Control & MeasurementFramework (OMF)

Max [email protected]

Page 2: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Max Ott © NICTA 20082

Introduction

• Experiments are primarily about collecting measurements

• … Lots of them.• How to collect them efficiently in a

distributed environment like ORBIT?• How to collect them centrally & in real-

time – to allow dynamic steering of experiments– to minimize collection overhead after end of

experiment

Introduction

Page 3: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Max Ott © NICTA 20083

Common Data Model

OMF - User View

Experimental Platform(s)

ResultsExperimentDescription

Co

ntr

ol

Mea

sure

Deploy & Configure

Page 4: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Max Ott © NICTA 20084

....

defGroup('sources') do |node| node.prototype("test:proto:sender2", 'destinationHost' => node('recv0').net.w0.ip )end

...

Defining the Experiment

Page 5: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Max Ott © NICTA 20085

defPrototype("test:proto:sender2") do |p| p.defProperty('destinationHost', 'Host to send packets to') ... p.addApplication("test:app:otg") do |otg| otg.bindProperty('dsthostname', 'destinationHost') ... otg.measure('senderport', :samples => 10) do |m| m.addMetric(“pkt_size”).filter(“avg”) end endend

Defining What SHOULD Be Collected

Page 6: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Max Ott © NICTA 20086

defApplication('test:app:otg', 'otg') do |a| a.version(1, 1, 2) a.shortDescription "Programmable traffic generator" ... a.defMP("senderport") do |m| m.defMetric('pkt_seqno', 'long', 'Sequence nu..') m.defMetric('pkt_size', 'long', 'Size of packet in bytes') ... dodo

Defining What CAN Be Collected

Page 7: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Max Ott © NICTA 20087

Automatic Database Schema

sqlite> .schemaCREATE TABLE sources_otg_senderport (

oml_sender_id INTEGER, oml_seq INTEGER, oml_ts REAL,

pkt_size_avg INTEGER, pkt_size_min INTEGER, pkt_size_max INTEGER);

Page 8: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Max Ott © NICTA 20088

Analyze

function nsf(dbServer, dbUser, dbPW, database);

% Part where we retrieve data from the database;mysql('open',dbServer, dbUser, dbPW);mysql('use', database);output = struct('time',[],'thr_all',[],'node',[]);[output.time, output.thr_all, output.node] = mysql('select timestamp, throughput, node_id from group2');[thru1_4, time1_4, thru3_1, time3_1] = sort_mysql(output);

% Finally, the plotting partsubplot(2,1,1); plot(time1_4, thru1_4, '-*');title('Throughput On Obstructed Link');xlabel('Time (sec)'); ylabel('Throuhput (bps)'); grid on;subplot(2,1,2); plot(time3_1, thru3_1, '-*');title('Throughput On Monitor Node'); xlabel('Time (sec)');

ylabel('Throuhput (bps)'); grid on;

Page 9: Orbit Management, Control & Measurement Framework (OMF) Max Ott NICTA max.ott@nicta.com.au

Max Ott © NICTA 20089

Conclusions

• OML is a generic, scalable and flexible framework for the collection of measurements

• Reduces the burden of experimenter– Easy to collect data– Supports real-time filtering to reduce collection size

• Reduces the burden of application developer– Simple API to report measurement

• In daily use• Usable OUTSIDE Orbit