var fastUpdateLineChart = function()

in source/web_site/js/dash.js [470:517]


    var fastUpdateLineChart = function(data, chartData, chart, queryTime, labelFunc=identity) {
        var serviceCallLabels = chartData.labels;
        var serviceCallTimes = chartData.times;
        var serviceCallMap = chartData.values;

        var items = data.Items;
        for (var i=0; i<items.length; i++) {
            queryTime = items[i].EventTime;
            var timeToPut = getTimeLabel(queryTime)

            serviceCallLabels.push(timeToPut);
            serviceCallTimes.push(new Date(toUTC(queryTime)).getTime());
            ddbitem = JSON.parse(items[i].Data);

            ddbkeys = new Set(Object.keys(ddbitem));

            for (var key in  serviceCallMap) {

                if (!ddbkeys.has(key)) {ddbitem[key]=0;}
            }
            for (let entry of Object.keys(ddbitem)) {
                if (entry in serviceCallMap) {
                    serviceCallMap[entry].push(ddbitem[entry]);
                }
                else {
                    var newServiceEntry = new Array(serviceCallLabels.length-1);
                    newServiceEntry.fill(0);
                    newServiceEntry.push(ddbitem[entry]);
                    serviceCallMap[entry] = newServiceEntry;
                }
            }
        }
        if (items.length == 0) {
            serviceCallTimes.push(new Date(toUTC(queryTime)).getTime());
            var timeToPut = queryTime.split('.')[0].split(' ')[1];
            serviceCallLabels.push(timeToPut);


            for (var key in  serviceCallMap) {
                serviceCallMap[key].push(0);
            }
            time10sAgo = getTimeSecsAgo(10);
            queryTime = (queryTime > time10sAgo?queryTime: time10sAgo);
        }
        updateData(chart, serviceCallLabels,  Object.values(serviceCallMap), Object.keys(serviceCallMap).map(labelFunc));

        return queryTime;
    }