Skip to content
Snippets Groups Projects
Select Git revision
  • cc690fac2b49d5b0ab7618a1e506ba7d29ebec0a
  • without_tipselection default
  • develop protected
  • fix/grafana-local-dashboard
  • wasp
  • fix/dashboard-explorer-freeze
  • master
  • feat/timerqueue
  • test/sync_debug_and_650
  • feat/sync_revamp_inv
  • wip/sync
  • tool/db-recovery
  • portcheck/fix
  • fix/synchronization
  • feat/new-dashboard-analysis
  • feat/refactored-analysis-dashboard
  • feat/new-analysis-dashboard
  • test/demo-prometheus-fpc
  • prometheus_metrics
  • wip/analysis-server
  • merge/fpc-test-value-transfer
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.3
  • v0.1.2
  • v0.1.1
  • v0.1.0
28 results

tps_template.go

Blame
  • user avatar
    Hans Moog authored
    7bf35dbe
    History
    tps_template.go 9.68 KiB
    package dashboard
    
    var tpsTemplate = `
    <!DOCTYPE html>
    <html>
    
    <head>
        <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
        <script src="https://code.highcharts.com/stock/highstock.js"></script>
        <script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
        <script src="https://code.highcharts.com/stock/modules/export-data.js"></script>
        <div id="container" style="height: 400px; min-width: 310px"></div>
    </head>
    
    <body>
        <script>
            Highcharts.createElement('link', {
                href: 'https://fonts.googleapis.com/css?family=Unica+One',
                rel: 'stylesheet',
                type: 'text/css'
            }, null, document.getElementsByTagName('head')[0]);
    
            Highcharts.theme = {
                colors: ['#2b908f', '#90ee7e', '#f45b5b', '#7798BF', '#aaeeee', '#ff0066',
                    '#eeaaee', '#55BF3B', '#DF5353', '#7798BF', '#aaeeee'],
                chart: {
                    backgroundColor: {
                        linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
                        stops: [
                            [0, '#2a2a2b'],
                            [1, '#3e3e40']
                        ]
                    },
                    // style: {
                    //     fontFamily: 'sans-serif'
                    // },
                    plotBorderColor: '#606063'
                },
                title: {
                    style: {
                        color: '#E0E0E3',
                        // textTransform: 'uppercase',
                        fontSize: '20px'
                    }
                },
                subtitle: {
                    style: {
                        color: '#E0E0E3',
                        // textTransform: 'uppercase'
                    }
                },
                xAxis: {
                    gridLineColor: '#707073',
                    labels: {
                        style: {
                            color: '#E0E0E3'
                        }
                    },
                    lineColor: '#707073',
                    minorGridLineColor: '#505053',
                    tickColor: '#707073',
                    title: {
                        style: {
                            color: '#A0A0A3'
    
                        }
                    }
                },
                yAxis: {
                    gridLineColor: '#707073',
                    labels: {
                        style: {
                            color: '#E0E0E3'
                        }
                    },
                    lineColor: '#707073',
                    minorGridLineColor: '#505053',
                    tickColor: '#707073',
                    tickWidth: 1,
                    title: {
                        style: {
                            color: '#A0A0A3'
                        }
                    }
                },
                tooltip: {
                    backgroundColor: 'rgba(0, 0, 0, 0.85)',
                    style: {
                        color: '#F0F0F0'
                    }
                },
                plotOptions: {
                    series: {
                        dataLabels: {
                            color: '#B0B0B3'
                        },
                        marker: {
                            lineColor: '#333'
                        }
                    },
                    boxplot: {
                        fillColor: '#505053'
                    },
                    candlestick: {
                        lineColor: 'white'
                    },
                    errorbar: {
                        color: 'white'
                    }
                },
                legend: {
                    itemStyle: {
                        color: '#E0E0E3'
                    },
                    itemHoverStyle: {
                        color: '#FFF'
                    },
                    itemHiddenStyle: {
                        color: '#606063'
                    }
                },
                credits: {
                    style: {
                        color: '#666'
                    }
                },
                labels: {
                    style: {
                        color: '#707073'
                    }
                },
    
                drilldown: {
                    activeAxisLabelStyle: {
                        color: '#F0F0F3'
                    },
                    activeDataLabelStyle: {
                        color: '#F0F0F3'
                    }
                },
    
                navigation: {
                    buttonOptions: {
                        symbolStroke: '#DDDDDD',
                        theme: {
                            fill: '#505053'
                        }
                    }
                },
    
                // scroll charts
                rangeSelector: {
                    buttonTheme: {
                        fill: '#505053',
                        stroke: '#000000',
                        style: {
                            color: '#CCC'
                        },
                        states: {
                            hover: {
                                fill: '#707073',
                                stroke: '#000000',
                                style: {
                                    color: 'white'
                                }
                            },
                            select: {
                                fill: '#000003',
                                stroke: '#000000',
                                style: {
                                    color: 'white'
                                }
                            }
                        }
                    },
                    inputBoxBorderColor: '#505053',
                    inputStyle: {
                        backgroundColor: '#333',
                        color: 'silver'
                    },
                    labelStyle: {
                        color: 'silver'
                    }
                },
    
                navigator: {
                    handles: {
                        backgroundColor: '#666',
                        borderColor: '#AAA'
                    },
                    outlineColor: '#CCC',
                    maskFill: 'rgba(255,255,255,0.1)',
                    series: {
                        color: '#7798BF',
                        lineColor: '#A6C7ED'
                    },
                    xAxis: {
                        gridLineColor: '#505053'
                    }
                },
    
                scrollbar: {
                    barBackgroundColor: '#808083',
                    barBorderColor: '#808083',
                    buttonArrowColor: '#CCC',
                    buttonBackgroundColor: '#606063',
                    buttonBorderColor: '#606063',
                    rifleColor: '#FFF',
                    trackBackgroundColor: '#404043',
                    trackBorderColor: '#404043'
                },
    
                // special colors for some of the
                legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
                background2: '#505053',
                dataLabelsColor: '#B0B0B3',
                textColor: '#C0C0C0',
                contrastTextColor: '#F0F0F3',
                maskColor: 'rgba(255,255,255,0.3)'
            };
    
            // Apply the theme
            Highcharts.setOptions(Highcharts.theme);
    
            // Start Here
            var time = Date.now() - 3000;
            var start_draw = time + 5000;
            const update_rate = 5;
            var counter = 0;
            data = [[time - 5000, 0]];
            var tzoffset = new Date().getTimezoneOffset();
            var chart = Highcharts.stockChart('container', {
                rangeSelector: {
                    selected: 1
                },
    
                title: {
                    text: 'Transactions per second'
                },
    
                time: {
                    timezoneOffset: tzoffset
                },
    
                rangeSelector: {
                    buttons: [
                        {
                            type: 'minute',
                            count: 5,
                            text: '5m'
                        }, {
                            type: 'minute',
                            count: 15,
                            text: '15m'
                        }, {
                            type: 'minute',
                            count: 30,
                            text: '30m'
                        }, {
                            type: 'hour',
                            count: 60,
                            text: '1h'
                        }],
                    inputEnabled: false
                },
    
                series: [{
                    name: 'Transactions per second',
                    data: data,
                    type: 'areaspline',
                    threshold: null,
                    tooltip: {
                        valueDecimals: 0
                    },
                    fillColor: {
                        linearGradient: {
                            x1: 0,
                            y1: 0,
                            x2: 0,
                            y2: 1
                        },
                        stops: [
                            [0, Highcharts.getOptions().colors[0]],
                            [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
                        ]
                    }
                }]
            });
    
            const dataStr = '{{.Data}}'
            const parsedData = JSON.parse(dataStr.replace(/ /g, ','));
            time = Date.now() - 1000 * (parsedData.length + 1);
            for (let i = 0; i < parsedData.length; i++) {
                chart.series[0].addPoint([time += 1000, parseInt(parsedData[i], 10)], false);
            }
    		chart.redraw();
            console.log(parsedData);
    
            const conn = new WebSocket("ws://{{.Host}}/ws");
            conn.binaryType = 'arraybuffer';
            conn.onopen = evt => {
                console.log("WebSocket is open now.");
                console.log("WebSocket done.");
            }
            conn.onclose = () => {
                // console.log('Connection closed');
            }
            conn.onmessage = evt => {
                console.log('metric updated');
                const data = evt.data;
                const dv = new DataView(data);
                // var value = dv.getUint32(4, true) << 32 | dv.getUint32(0, true);
                const value = dv.getUint32(0, true);
                chart.series[0].addPoint([time += 1000, value], true); //((counter += 1) % update_rate == 4));
                console.log(value);
                console.log(dv);
            }
        </script>
    </body>
    
    </html>
    `