Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-5945

Implement validate_drp static plots in Bokeh as proof-of-concept for SQUASH

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      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

            Activity

            jsick Jonathan Sick created issue -
            jsick Jonathan Sick made changes -
            Field Original Value New Value
            Epic Link DM-5555 [ 23391 ]
            jsick Jonathan Sick made changes -
            Status To Do [ 10001 ] In Progress [ 3 ]
            jsick Jonathan Sick made changes -
            Story Points 0.5
            jsick Jonathan Sick made changes -
            Story Points 0.5 1.4
            jsick Jonathan Sick made changes -
            Story Points 1.4 1.9
            jhoblitt Joshua Hoblitt made changes -
            Labels squash
            jsick Jonathan Sick made changes -
            Epic Link DM-5555 [ 23391 ] DM-6196 [ 24712 ]
            jsick Jonathan Sick made changes -
            Assignee Jonathan Sick [ jsick ] Angelo Fausti [ afausti ]
            afausti Angelo Fausti made changes -
            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
            afausti Angelo Fausti made changes -
            Link This issue is child task of DM-7441 [ DM-7441 ]
            afausti Angelo Fausti made changes -
            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
            afausti Angelo Fausti made changes -
            Story Points 1.9 10
            afausti Angelo Fausti made changes -
            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}
            ]
            afausti Angelo Fausti made changes -
            Resolution Done [ 10000 ]
            Status In Progress [ 3 ] Done [ 10002 ]

              People

              Assignee:
              afausti Angelo Fausti
              Reporter:
              jsick Jonathan Sick
              Watchers:
              Angelo Fausti, Jonathan Sick
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.