In [3]:
import docker, json, os
import urllib.request
from RSPClient import RSPClient

client = docker.DockerClient(base_url='http://rspcollector.westeurope.cloudapp.azure.com:2375')

In [3]:
tobserve = []
rsp = None
experiment_execution={}

def w(p, i):
    experiment_execution[p] = i

webURL= urllib.request.urlopen('https://rsplab.blob.core.windows.net/experiments/experiment.json')
data = webURL.read()
encoding = webURL.info().get_content_charset('utf-8')
experiment = json.loads(data.decode(encoding))

print(json.dumps(experiment, indent=4, sort_keys=True))
print(experiment['engine'])
print(experiment['engine']['port'])

rsp = RSPClient(experiment['engine']['host'], experiment['engine']['port'])

experiment_execution['Experiment'] = experiment
experiment_execution['E'] = rsp.engine()
experiment_execution['D'] = None
experiment_execution['S'] = None
experiment_execution['Q'] = []
experiment_execution['K'] = None # save the KPIs
experiment_execution['R'] = None # save the result location

root = experiment_execution['E']['runUUID']


datasets=[]
for d in experiment['datasets']:
    	print("Registering dataset: " + str(d['name']))
    	datasets.append(rsp.register_dataset( d['name'], d['location'], d['serialization'],d['default']))

        
streams=[]
for s in experiment['streams']:
    	print("Registering stream: " + str(s['name']))
    	streams.append(rsp.register_stream( s['name'], s['location'] ))

w('S',streams)

for q in experiment['queries']:
    print("Registering query " + q['name'] +" "+ str(q['repeat']) + " times.")
    for i in range(0,q['repeat']):
        print(rsp.register_query(q['name'], q['type'], q['body']))
        for o in  q['observers']:
            print("Registering observers for "+q['name']+ " : " + o['name'])
            ro = rsp.new_observer(q['name'], o['name'], o);
            if o['persist']:
                tobserve.append((q,ro));
        w('Q', rsp.queries());

pretty=json.dumps(experiment_execution, indent=4, sort_keys=True)

for (q,ro) in tobserve:
    print(ro)
    client.containers.run("rspsink", name=ro['@id']+"_collector",
                                     command=[ro['sld:streamLocation'], q['name'], "./data/"+root+"/"+q["result_path"]+ro['@id']+"/", str(experiment['metadata']['duration']), pretty],
                                     volumes={'resultsdata': {'bind': '/usr/src/app/data', 'mode': 'rw'}},
                                     detach=True)

    
client.containers.list()
print("END")


{
    "engine": {
        "host": "http://csparql.westeurope.cloudapp.azure.com",
        "port": 8182
    },
    "metadata": {
        "data": "Tue Apr  4 15:05:33 CEST 2017",
        "duration": 10,
        "id": "1"
    },
    "queries": [
        {
            "body": "REGISTER STREAM Q2 AS CONSTRUCT {?s ?p ?o} FROM STREAM <AarhusTrafficData158505> [RANGE 30s STEP 5s] \n FROM STREAM <AarhusTrafficData182955> [RANGE 30s STEP 5s] WHERE {?s ?p ?o}",
            "name": "Q2",
            "observers": [
                {
                    "host": "csparql.westeurope.cloudapp.azure.com",
                    "name": "observer3",
                    "persist": true,
                    "port": 9101,
                    "type": "ws"
                }
            ],
            "repeat": 1,
            "result_path": "./"
        }
    ],
    "static": [],
    "streams": [
        {
            "location": "http://triplewave1.westeurope.cloudapp.azure.com:4000/sgraph",
            "name": "AarhusTrafficData158505",
            "scale_factor": 1
        },
        {
            "location": "http://triplewave1.westeurope.cloudapp.azure.com:4001/sgraph",
            "name": "AarhusTrafficData182955",
            "scale_factor": 1
        }
    ]
}
{'port': 8182, 'host': 'http://csparql.westeurope.cloudapp.azure.com'}
8182
Registering dataset: AarhusTrafficData158505
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-3-15fba5982f72> in <module>()
     31 for d in experiment['streams']:
     32         print("Registering dataset: " + str(d['name']))
---> 33         streams.append(rsp.register_dataset( d['name'], d['location'], d['serialization'],d['default']))
     34 
     35 

NameError: name 'streams' is not defined

In [13]:



Out[13]:
{'backloop': True,
 'empty_results': False,
 'host': 'cqels/',
 'inference': False,
 'name': 'cqels',
 'port': 8182,
 'runUUID': '55e77d10-1b9f-11e7-85a8-000d3a2755dc',
 'timestam_function': False}

In [16]:



Out[16]:
[{'id': 'Q1', 'status': 'RUNNING', 'type': 'STREAM'},
 {'id': 'Q10x5', 'status': 'RUNNING', 'type': 'STREAM'}]

In [7]:
!ls


AltairTutorial			  __pycache__
cli.py				  query.py
experiment.json			  QueryTest.ipynb
ExperimentRegistrationTest.ipynb  RSPClient.py
NotebookRSPLab.ipynb		  StreamSpawner.ipynb
NotebookRSPLab.ipynb.orig	  test.py

In [5]:
for c in client.containers.list():
    print(c.name)


notebook
grafana

In [1]:
from altair import tutorial
tutorial()


Copying notebooks into fresh tutorial directory: ./AltairTutorial
Click on the following notebooks to explore the tutorial:
./AltairTutorial/
  01-Index.ipynb
  07-LayeredCharts.ipynb
  05-LineCharts.ipynb
  example.html
  12-Measles.ipynb
  02-Introduction.ipynb
  04-BarCharts.ipynb
  06-AreaCharts.ipynb
  08-GroupedRegressionCharts.ipynb
  10-Heatmaps.ipynb
  API.ipynb
  Untitled.ipynb
  03-ScatterCharts.ipynb
  09-CarsDataset.ipynb
./AltairTutorial/auto_examples/
  text_table_heatmap.ipynb
  bar_layered_transparent.ipynb
  stacked_bar_sum_opacity.ipynb
  bar_size_default.ipynb
  line_detail.ipynb
  bar_grouped_horizontal.ipynb
  stacked_area_normalize.ipynb
  errorbar_aggregate.ipynb
  bar_grouped.ipynb
  stacked_bar_population.ipynb
  stacked_bar_size.ipynb
  stacked_bar_v.ipynb
  trellis_row_column.ipynb
  scatter_color_quantitative.ipynb
  line_step.ipynb
  scatter_binned_color.ipynb
  point_dot_timeunit_color.ipynb
  point_1d.ipynb
  stacked_area.ipynb
  scatter.ipynb
  line_quarter.ipynb
  bar_size_fit.ipynb
  stacked_bar_h_order.ipynb
  scatter_binned_size.ipynb
  line_monotone.ipynb
  overlay_line_short.ipynb
  text_scatter_colored.ipynb
  circle.ipynb
  trellis_stacked_bar.ipynb
  area.ipynb
  scatter_bubble.ipynb
  line_quarter_legend.ipynb
  stacked_bar_h.ipynb
  scatter_color_order.ipynb
  line.ipynb
  trellis_scatter.ipynb
  point_filled.ipynb
  bar_aggregate.ipynb
  overlay_area_short.ipynb
  stacked_area_binned.ipynb
  bar_1d.ipynb
  trellis_bar.ipynb
  trellis_scatter_binned_row.ipynb
  bar_size_explicit_bad.ipynb
  trellis_bar_histogram.ipynb
  bubble_health_income.ipynb
  scatter_binned.ipynb
  scatter_aggregate_detail.ipynb
  stacked_bar_weather.ipynb
  layer_histogram.ipynb
  stacked_bar_1d.ipynb
  square.ipynb
  scatter_connected.ipynb
  overlay_line_full.ipynb
  bar_size_explicit.ipynb
  scatter_colored_with_shape.ipynb
  line_slope.ipynb
  box_plot.ipynb
  bar_1d_bandsize_config.ipynb
  bar_aggregate_size.ipynb
  area_vertical.ipynb
  scatter_shape_custom.ipynb
  line_month.ipynb
  tick_dot_thickness.ipynb
  trellis_barley.ipynb
  scatter_color.ipynb
  tick_dot.ipynb
  stacked_area_ordinal.ipynb
  scatter_color_ordinal.ipynb
  stacked_area_stream.ipynb
  bar_yearmonth.ipynb
  trellis_anscombe.ipynb
  scatter_opacity.ipynb
  github_punchcard.ipynb
  scatter_color_custom.ipynb
  layer_line_color_rule.ipynb
  bar_aggregate_vertical.ipynb
  tick_strip.ipynb
  scatter_color_shape_constant.ipynb
  overlay_area_full.ipynb
  histogram.ipynb
  scatter_color_ordinal_custom.ipynb
  line_color.ipynb
  Index.ipynb
  errorbar_horizontal_aggregate.ipynb
  stacked_bar_normalize.ipynb

In [ ]: