Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: None
-
Labels:
-
Story Points:10
-
Epic Link:
-
Team:SQuaRE
Description
This ticket will implement a plot from validate_drp in the QA Dashboard as a proof-of-concept for how existing matplotlib plots can be re-implemented in Bokeh with data from the QA database.
Stretch goals (maybe for a future ticket) will be to overplot the validate_drp output of one job against another’s to understand performance changes.
Attachments
Issue Links
- is child task of
-
DM-7441 Manage multiple bokeh apps
- Done
Activity
Field | Original Value | New Value |
---|---|---|
Epic Link |
|
Status | To Do [ 10001 ] | In Progress [ 3 ] |
Story Points | 0.5 |
Story Points | 0.5 | 1.4 |
Story Points | 1.4 | 1.9 |
Labels | squash |
Assignee | Jonathan Sick [ jsick ] | Angelo Fausti [ afausti ] |
Summary | Implement validate_drp plot in Bokeh as proof-of-concept for QA Dashboard | Implement validate_drp static plots in Bokeh as proof-of-concept for QA Dashboard |
Summary | Implement validate_drp static plots in Bokeh as proof-of-concept for QA Dashboard | Implement validate_drp static plots in Bokeh as proof-of-concept for SQUASH |
Story Points | 1.9 | 10 |
Comment |
[ @jsick currently the job JSON has a structure like this
{code:java} "measurements": [ { "metric": "AM1", "value": 7.15136555363356 }, { "metric": "AM2", "value": 6.80681963522785 }, { "metric": "PA1", "value": 14.9064428565398 } ] {code} I imagine replacing the scalar measurement by the new measurement JSON: {code:java} data['measurements'][0].keys() [u'blobs', u'parameters', u'metric', u'value', u'extras', u'spec_name', u'filter_name', u'identifier', u'unit'] {code} For measurements that are done in different filters or depend on those we can have multiple measurements for the same metric. That means we should have a list of measurements for each metric, e.g {code:java} "measurements": [ { "metric": "AM1", ---> "measurement": [] <--- }, { "metric": "AM2", "measurement": [] }, { "metric": "PA1", "measurement": [] } ] {code} For the datasets produced for each job we also need the blob JSON, example: {code:java} data['blobs'][0].keys() [u'identifier', u'data', u'name'] {code} {code:java} { "ci_id": "2", "ci_name": "demo", "ci_dataset": "cfht", "ci_label": "centos-7", "date": "2016-06-02T05:21:57.298935Z", "ci_url": "https://ci.lsst.codes/job/validate_drp/dataset=cfht,label=centos-7/2/", "status": 0, ---> "blobs": {} <--- "measurements": [ { "metric": "AM1", "measurement": [ ] }, { "metric": "AM2", "measurement": [ ] }, { "metric": "PA1", "value": [ ] } ], {code} if it sounds reasonable I can mock that to continue development. The important thing for me now is to be able to retrieve the measurement JSON from the SQUASH API given the ci_id, ci_dataset and the metric and then call an URL to load the corresponding bokeh app {code:java} https://angelo-squash-bokeh.lsst.codes/photometry?metric=PA1&ci_dataset=cfht&ci_id=1 {code} ] |
Resolution | Done [ 10000 ] | |
Status | In Progress [ 3 ] | Done [ 10002 ] |
Jonathan Sick this can be interesting for the serialization of plot information in validate_drp, there is an open issue for bokeh to support JSON data structures following the Vega-Lite specification
https://github.com/bokeh/bokeh/issues/4844