orbit management, control & measurement framework (omf) max ott nicta [email protected]
TRANSCRIPT
Orbit Management, Control & MeasurementFramework (OMF)
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
Max Ott © NICTA 20083
Common Data Model
OMF - User View
Experimental Platform(s)
ResultsExperimentDescription
Co
ntr
ol
Mea
sure
Deploy & Configure
Max Ott © NICTA 20084
....
defGroup('sources') do |node| node.prototype("test:proto:sender2", 'destinationHost' => node('recv0').net.w0.ip )end
...
Defining the Experiment
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
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
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);
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;
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