(mOSAIC) Monitoring

Web UI schemas

/dashboard/<identifier>

{
        title : <string>,
        subtitle : <string>, // optional
        description : <string>, // optional
        sections : [
                {
                        title : <string>,
                        subtitle : <string>, // optional
                        description : <string>, // optional
                        charts : [
                                {
                                        title : <string>, // optional
                                        subtitle : <string>, // optional
                                        description : <string>, // optional
                                        definition : <url>,
                                        width : <scale:float>,
                                        height : <scale:float>,
                                        css-id : <string>, // * bonus points
                                        css-classes : [<string>, ...], // * bonus points
                                },
                                ...
                        ],
                        links : ..., // like below
                },
                ...
        ],
        links : [
                {
                        label : <string>,
                        description : <string>,
                        url : <url>,
                },
                ...
        ],
        css-urls : [<url>, ...], // * bonus points
}

/charts/<identifier>

{
        type : "pie",
        title : <string>, // optional
        subtitle : <string>, // optional
        description : <string>, // optional
        slices : {
                <slice-identifier:string> : {
                        label : <string>,
                        description : <string>, // optional
                        color : <string>,
                },
                ...
        },
        source : {
                type: "poll",
                url: <url>,
                interval: <seconds:float>,
                bindings : {
                        <slice-identifier> : {
                                object : <object-identifier:string>,
                                metric : <metric-identifier:string>,
                        },
                        ...
                },
        },
}

{
        type : "line",
        title : <string>,
        subtitle : <string>,
        description : <string>,
        axis : {
            <axis-identifier:string> : {
                type : "x" | "y",
                scale : "linear" | "log2" | "log10",
                label : <string>,
                description : <string>,
                color : <string>,
            },
            ...
        },
        lines : {
                <line-identifier:string> : {
                        label : <string>,
                        x-axis : <axis-identifier:string>,
                        y-axis : <axis-identifier:string>,
                        description : <string>,
                        color : <string>,
                },
                ...
        },
        source : {
                type: "poll",
                url: <url>,
                interval: <seconds:float>,
                bindings : {
                        <line-identifier> : {
                                x : "timestamp" | {
                                        object : <object-identifier:string>,
                                        metric : <metric-identifier:string>,
                                },
                                y : {
                                        object : <object-identifier:string>,
                                        metric : <metric-identifier:string>,
                                },
                        },
                        ...
                },
        },
}

/metrics/<data-source-identifier>

{
        data : [
                {
                        object : <object-identifier:string>,
                        timestamp : <seconds:float>,
                        values : {
                                <metric-identifier:string> : <value:float>,
                        },
                        annotations : { // * bonus points
                                <annotation-category:string> : <string>,
                        },
                },
                ...
        ],
        timestamp : <seconds:float>,
}