From b2893f5a99468803743d1bd4fc09f0b99d4f4f98 Mon Sep 17 00:00:00 2001 From: cuigh Date: Thu, 22 Mar 2018 16:13:54 +0800 Subject: [PATCH] Add chart management page --- Gopkg.lock | 5 +- assets/swirl/css/swirl.css | 10 +- assets/swirl/js/swirl.js | 424 +++++++++++++++++++++++------- assets/swirl/js/swirl.js.map | 2 +- assets/swirl/ts/chart/list.ts | 70 +++++ assets/swirl/ts/core/graph.ts | 353 +++++++++++++++++++++++++ assets/swirl/ts/core/page.ts | 16 -- assets/swirl/ts/core/validator.ts | 2 +- assets/swirl/ts/index.ts | 17 ++ assets/swirl/ts/service/stats.ts | 174 ++---------- biz/chart.go | 158 +++++++++++ biz/metric.go | 47 ++-- config/i18n/en.yml | 13 +- config/i18n/zh.yml | 13 +- controller/chart.go | 143 ++++++++++ controller/home.go | 15 +- controller/service.go | 39 +-- dao/dao.go | 7 + dao/mongo/chart.go | 65 +++++ main.go | 1 + model/metric.go | 87 ++++++ model/service.go | 26 -- model/system.go | 3 + scaler/scaler.go | 6 +- security/perm.go | 11 + views/_layouts/default.jet | 1 + views/index.jet | 90 +++---- views/service/stats.jet | 35 ++- views/system/chart/_base.jet | 36 +++ views/system/chart/edit.jet | 126 +++++++++ views/system/chart/list.jet | 82 ++++++ views/system/event/list.jet | 5 +- views/system/role/_base.jet | 3 + views/system/setting/index.jet | 5 +- views/system/user/_base.jet | 3 + 35 files changed, 1670 insertions(+), 423 deletions(-) create mode 100644 assets/swirl/ts/chart/list.ts create mode 100644 assets/swirl/ts/core/graph.ts delete mode 100644 assets/swirl/ts/core/page.ts create mode 100644 assets/swirl/ts/index.ts create mode 100644 biz/chart.go create mode 100644 controller/chart.go create mode 100644 dao/mongo/chart.go create mode 100644 model/metric.go create mode 100644 views/system/chart/_base.jet create mode 100644 views/system/chart/edit.jet create mode 100644 views/system/chart/list.jet diff --git a/Gopkg.lock b/Gopkg.lock index cb16517..acfeb1e 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -56,7 +56,8 @@ "util/cast", "util/debug", "util/i18n", - "util/lazy" + "util/lazy", + "util/run" ] revision = "772f5a654db9ee95a5dc851e9562253bc0b2f11d" @@ -224,6 +225,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "c829e2bd1f0dc356225caad79652e6732d0572e0e59580a5e6c5b6baab134755" + inputs-digest = "dea823c7646b8b71101e0443b1c0c36a723989261f733ad4cb44c6e9b0d3942d" solver-name = "gps-cdcl" solver-version = 1 diff --git a/assets/swirl/css/swirl.css b/assets/swirl/css/swirl.css index 5639a65..a050939 100644 --- a/assets/swirl/css/swirl.css +++ b/assets/swirl/css/swirl.css @@ -171,6 +171,14 @@ dd { color: whitesmoke; } +.card-header-title, .card-header-icon, .card-footer-item { + padding: 0.5rem 0.75rem; +} + +.card-content { + padding: 0.75rem; +} + .block { font-size: 1rem; } @@ -246,7 +254,7 @@ dd { font-family: monospace; } -textarea.code{ +textarea.code { padding: 0.75em; } diff --git a/assets/swirl/js/swirl.js b/assets/swirl/js/swirl.js index c30c55c..68dd2fc 100644 --- a/assets/swirl/js/swirl.js +++ b/assets/swirl/js/swirl.js @@ -451,7 +451,7 @@ var Swirl; } class RegexRule { validate($form, $input, arg) { - let regex = new RegExp(arg, 'i'); + let regex = new RegExp(arg); let value = $.trim($input.val()); return { ok: !value || regex.test(value) }; } @@ -1858,149 +1858,298 @@ var Swirl; })(Swirl || (Swirl = {})); var Swirl; (function (Swirl) { - var Service; - (function (Service) { - class MetricChartOptions { + var Core; + (function (Core) { + class GraphOptions { constructor() { this.type = "line"; + this.width = 12; this.height = 50; } } - class MetricChart { + Core.GraphOptions = GraphOptions; + class Graph { constructor(elem, opts) { - this.colors = [ - 'rgb(255, 99, 132)', - 'rgb(75, 192, 192)', - 'rgb(255, 159, 64)', - 'rgb(54, 162, 235)', - 'rgb(153, 102, 255)', - 'rgb(255, 205, 86)', - 'rgb(201, 203, 207)', - ]; - opts = $.extend(new MetricChartOptions(), opts); + this.$elem = $(elem); + this.opts = $.extend(new GraphOptions(), opts); + this.name = this.$elem.data("chart-name"); + } + getName() { + return this.name; + } + } + Core.Graph = Graph; + class ValueGraph extends Graph { + constructor(elem, opts) { + super(elem, opts); + } + setData(d) { + } + setSize(w, h) { + } + } + Core.ValueGraph = ValueGraph; + class ComplexGraph extends Graph { + constructor(elem, opts) { + super(elem, opts); + if (!this.opts.colors) { + this.opts.colors = ComplexGraph.defaultColors; + } this.config = { type: opts.type, data: {}, options: { - title: { - text: opts.title || 'NONE' - }, animation: { duration: 0, }, - scales: { - xAxes: [{ - type: 'time', - time: { - unit: 'minute', - tooltipFormat: 'YYYY/MM/DD HH:mm:ss', - displayFormats: { - minute: 'HH:mm' - } - }, - }], - yAxes: [{}] - }, } }; - if (opts.labelX) { - this.config.options.scales.xAxes[0].scaleLabel = { - display: true, - labelString: opts.labelX, - }; - } - if (opts.labelY) { - this.config.options.scales.yAxes[0].scaleLabel = { - display: true, - labelString: opts.labelY, - }; - } - if (opts.tickY) { - this.config.options.scales.yAxes[0].ticks = { - callback: opts.tickY, - }; - } - let ctx = $(elem).get(0).getContext('2d'); + this.fillConfig(); + this.ctx = $(elem).find("canvas").get(0).getContext('2d'); if (opts.height) { - ctx.canvas.height = opts.height; + this.ctx.canvas.height = opts.height; } - this.chart = new Chart(ctx, this.config); + this.chart = new Chart(this.ctx, this.config); } - setData(datasets) { + setData(d) { + } + setSize(w, h) { + this.ctx.canvas.height = h; + this.chart.update(); + } + fillConfig() { + } + static formatValue(value, unit) { + switch (unit) { + case "percent:100": + return value.toFixed(1) + "%"; + case "percent:1": + return (value * 100).toFixed(1) + "%"; + case "time:s": + if (value < 1) { + return (value * 1000).toFixed(0) + 'ms'; + } + else { + return value.toFixed(2) + 's'; + } + case "size:bytes": + if (value < 1024) { + return value.toString() + 'B'; + } + else if (value < 1048576) { + return (value / 1024).toFixed(2) + 'K'; + } + else if (value < 1073741824) { + return (value / 1048576).toFixed(2) + 'M'; + } + else { + return (value / 1073741824).toFixed(2) + 'G'; + } + default: + return value.toFixed(2); + } + } + } + ComplexGraph.defaultColors = [ + 'rgb(255, 99, 132)', + 'rgb(75, 192, 192)', + 'rgb(255, 159, 64)', + 'rgb(54, 162, 235)', + 'rgb(153, 102, 255)', + 'rgb(255, 205, 86)', + 'rgb(201, 203, 207)', + ]; + Core.ComplexGraph = ComplexGraph; + class VectorGraph extends ComplexGraph { + fillConfig() { + this.config.options.legend = { + position: "right" + }; + this.config.options.tooltips = { + callbacks: { + label: (tooltipItem, data) => { + let label = data.labels[tooltipItem.index] + ": "; + let p = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; + if (typeof p == "number") { + label += ComplexGraph.formatValue(p, this.opts.unit); + } + return label; + } + }, + }; + } + setData(d) { + this.config.data.datasets = [{ + data: d.data, + backgroundColor: this.opts.colors, + }]; + this.config.data.labels = d.labels; + this.chart.update(); + } + } + Core.VectorGraph = VectorGraph; + class MatrixGraph extends ComplexGraph { + constructor(elem, opts) { + super(elem, opts); + } + fillConfig() { + this.config.options.scales = { + xAxes: [{ + type: 'time', + time: { + unit: 'minute', + tooltipFormat: 'YYYY/MM/DD HH:mm:ss', + displayFormats: { + minute: 'HH:mm' + } + }, + }], + }; + if (this.opts.unit) { + this.config.options.scales.yAxes = [{ + ticks: { + callback: (n) => ComplexGraph.formatValue(n, this.opts.unit), + } + }]; + this.config.options.tooltips = { + callbacks: { + label: (tooltipItem, data) => { + let label = data.datasets[tooltipItem.datasetIndex].label + ": "; + let p = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; + label += ComplexGraph.formatValue(p.y, this.opts.unit); + return label; + } + }, + }; + } + } + setData(d) { + let datasets = (d); datasets.forEach((ds, i) => { - let color = (i < this.colors.length) ? this.colors[i] : this.colors[0]; + let color = (i < this.opts.colors.length) ? this.opts.colors[i] : this.opts.colors[0]; ds.backgroundColor = Chart.helpers.color(color).alpha(0.3).rgbString(); ds.borderColor = color; ds.borderWidth = 2; ds.pointRadius = 2; }); - this.config.data.datasets = datasets; + this.config.data.datasets = d; this.chart.update(); } } - class StatsPage { - constructor() { - this.chartOptions = { - "cpu": { tickY: (value) => value + '%' }, - "memory": { tickY: StatsPage.formatSize }, - "network_in": { tickY: StatsPage.formatSize }, - "network_out": { tickY: StatsPage.formatSize }, - "threads": {}, - "goroutines": {}, - "gc_duration": { tickY: (value) => value * 1000 + 'ms' }, + Core.MatrixGraph = MatrixGraph; + class GraphFactory { + static create(elem) { + let $elem = $(elem); + let opts = { + type: $elem.data("chart-type"), + unit: $elem.data("chart-unit"), + height: $elem.data("chart-height"), + colors: $elem.data("chart-colors"), }; - this.charts = {}; - let $cb_time = $("#cb-time"); - if ($cb_time.length == 0) { - return; + switch (opts.type) { + case "value": + return new ValueGraph($elem, opts); + case "line": + case "bar": + return new MatrixGraph($elem, opts); + case "pie": + return new VectorGraph($elem, opts); } - $cb_time.change(this.loadData.bind(this)); - $("#cb-refresh").change(() => { - if (this.timer) { - clearTimeout(this.timer); - this.timer = null; - } - else { - this.refreshData(); - } - }); - $.each(this.chartOptions, (name, opt) => { - let $el = $("#canvas_" + name); - if ($el.length > 0) { - this.charts[name] = new MetricChart($el, opt); + return null; + } + } + Core.GraphFactory = GraphFactory; + class GraphPanelOptions { + constructor() { + this.time = "30m"; + this.refreshInterval = 15000; + } + } + Core.GraphPanelOptions = GraphPanelOptions; + class GraphPanel { + constructor(elems, opts) { + this.charts = []; + this.opts = $.extend(new GraphPanelOptions(), opts); + $(elems).each((i, e) => { + let g = GraphFactory.create(e); + if (g != null) { + this.charts.push(g); } }); this.refreshData(); } refreshData() { this.loadData(); - if ($("#cb-refresh").prop("checked")) { - this.timer = setTimeout(this.refreshData.bind(this), 15000); + if (this.opts.refreshInterval > 0) { + this.timer = setTimeout(this.refreshData.bind(this), this.opts.refreshInterval); } } + refresh() { + if (!this.timer) { + this.loadData(); + if (this.opts.refreshInterval > 0) { + this.timer = setTimeout(this.refreshData.bind(this), this.opts.refreshInterval); + } + } + } + stop() { + clearTimeout(this.timer); + this.timer = 0; + } + setTime(time) { + this.opts.time = time; + this.loadData(); + } loadData() { - let time = $("#cb-time").val(); - $ajax.get(`metrics`, { time: time }).json((d) => { - $.each(this.charts, (name, chart) => { - if (d[name]) { - chart.setData(d[name]); + let args = { + dashboard: this.opts.name, + time: this.opts.time, + }; + if (this.opts.id) { + args.id = this.opts.id; + } + $ajax.get(`/system/chart/data`, args).json((d) => { + $.each(this.charts, (i, g) => { + if (d[g.getName()]) { + g.setData(d[g.getName()]); } }); }); } - static formatSize(size) { - if (size < 1024) { - return size.toString() + 'B'; - } - else if (size < 1048576) { - return (size / 1024).toFixed(2) + 'K'; - } - else if (size < 1073741824) { - return (size / 1048576).toFixed(2) + 'M'; - } - else { - return (size / 1073741824).toFixed(2) + 'G'; + } + Core.GraphPanel = GraphPanel; + })(Core = Swirl.Core || (Swirl.Core = {})); +})(Swirl || (Swirl = {})); +var Swirl; +(function (Swirl) { + var Service; + (function (Service) { + var Modal = Swirl.Core.Modal; + var GraphPanel = Swirl.Core.GraphPanel; + class StatsPage { + constructor() { + let $cb_time = $("#cb-time"); + if ($cb_time.length == 0) { + return; } + this.panel = new GraphPanel($("#div-charts").children("div"), { + name: "service", + id: $("#h2-service-name").text() + }); + $("#btn-add").click(() => { + Modal.alert("Coming soon..."); + }); + $cb_time.change(e => { + this.panel.setTime($(e.target).val()); + }); + $("#cb-refresh").change(e => { + if ($(e.target).prop("checked")) { + this.panel.refresh(); + } + else { + this.panel.stop(); + } + }); } } Service.StatsPage = StatsPage; @@ -2305,4 +2454,77 @@ var Swirl; Volume.NewPage = NewPage; })(Volume = Swirl.Volume || (Swirl.Volume = {})); })(Swirl || (Swirl = {})); +var Swirl; +(function (Swirl) { + var Modal = Swirl.Core.Modal; + var GraphPanel = Swirl.Core.GraphPanel; + class IndexPage { + constructor() { + this.panel = new GraphPanel($("#div-charts").children("div"), { name: "home" }); + $("#btn-add").click(() => { + Modal.alert("Coming soon..."); + }); + } + } + Swirl.IndexPage = IndexPage; +})(Swirl || (Swirl = {})); +var Swirl; +(function (Swirl) { + var Metric; + (function (Metric) { + var Modal = Swirl.Core.Modal; + var Dispatcher = Swirl.Core.Dispatcher; + class FilterBox { + constructor(elem, callback, timeout) { + this.$elem = $(elem); + this.$elem.keyup(() => { + if (this.timer > 0) { + clearTimeout(this.timer); + } + let text = this.$elem.val().toLowerCase(); + this.timer = setTimeout(() => callback(text), timeout || 500); + }); + } + } + class ListPage { + constructor() { + this.$charts = $("#div-charts").children(); + this.fb = new FilterBox("#txt-query", this.filterCharts.bind(this)); + Dispatcher.bind("#div-charts").on("delete-chart", this.deleteChart.bind(this)); + } + deleteChart(e) { + let $container = $(e.target).closest("div.column"); + let name = $container.data("name"); + Modal.confirm(`Are you sure to delete chart: ${name}?`, "Delete chart", (dlg, e) => { + $ajax.post(name + "/delete").trigger(e.target).json(r => { + $container.remove(); + dlg.close(); + }); + }); + } + filterCharts(text) { + if (!text) { + this.$charts.show(); + return; + } + this.$charts.each((i, elem) => { + let $elem = $(elem), texts = [ + $elem.data("name").toLowerCase(), + $elem.data("title").toLowerCase(), + $elem.data("desc").toLowerCase(), + ]; + for (let i = 0; i < texts.length; i++) { + let index = texts[i].indexOf(text); + if (index >= 0) { + $(elem).show(); + return; + } + } + $(elem).hide(); + }); + } + } + Metric.ListPage = ListPage; + })(Metric = Swirl.Metric || (Swirl.Metric = {})); +})(Swirl || (Swirl = {})); //# sourceMappingURL=swirl.js.map \ No newline at end of file diff --git a/assets/swirl/js/swirl.js.map b/assets/swirl/js/swirl.js.map index 10c1f11..875bf4e 100644 --- a/assets/swirl/js/swirl.js.map +++ b/assets/swirl/js/swirl.js.map @@ -1 +1 @@ -{"version":3,"file":"swirl.js","sourceRoot":"","sources":["../ts/core/bulma.ts","../ts/core/ajax.ts","../ts/core/validator.ts","../ts/core/form.ts","../ts/core/dispatcher.ts","../ts/core/table.ts","../ts/core/core.ts","../ts/config/list.ts","../ts/config/new.ts","../ts/container/list.ts","../ts/core/page.ts","../ts/image/list.ts","../ts/network/detail.ts","../ts/network/list.ts","../ts/network/new.ts","../ts/node/edit.ts","../ts/node/list.ts","../ts/perm/edit.ts","../ts/registry/list.ts","../ts/role/edit.ts","../ts/role/list.ts","../ts/role/new.ts","../ts/secret/list.ts","../ts/secret/new.ts","../ts/service/edit.ts","../ts/service/list.ts","../ts/service/stats.ts","../ts/service/template/list.ts","../ts/setting/index.ts","../ts/stack/archive/edit.ts","../ts/stack/archive/list.ts","../ts/stack/task/list.ts","../ts/user/list.ts","../ts/volume/list.ts","../ts/volume/new.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"swirl.js","sourceRoot":"","sources":["../ts/core/bulma.ts","../ts/core/ajax.ts","../ts/core/validator.ts","../ts/core/form.ts","../ts/core/dispatcher.ts","../ts/core/table.ts","../ts/core/core.ts","../ts/config/list.ts","../ts/config/new.ts","../ts/container/list.ts","../ts/image/list.ts","../ts/network/detail.ts","../ts/network/list.ts","../ts/network/new.ts","../ts/node/edit.ts","../ts/node/list.ts","../ts/perm/edit.ts","../ts/registry/list.ts","../ts/role/edit.ts","../ts/role/list.ts","../ts/role/new.ts","../ts/secret/list.ts","../ts/secret/new.ts","../ts/service/edit.ts","../ts/service/list.ts","../ts/core/graph.ts","../ts/service/stats.ts","../ts/service/template/list.ts","../ts/setting/index.ts","../ts/stack/archive/edit.ts","../ts/stack/archive/list.ts","../ts/stack/task/list.ts","../ts/user/list.ts","../ts/volume/list.ts","../ts/volume/new.ts","../ts/index.ts","../ts/chart/list.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/assets/swirl/ts/chart/list.ts b/assets/swirl/ts/chart/list.ts new file mode 100644 index 0000000..77eb16f --- /dev/null +++ b/assets/swirl/ts/chart/list.ts @@ -0,0 +1,70 @@ +/// +namespace Swirl.Metric { + import Modal = Swirl.Core.Modal; + import AjaxResult = Swirl.Core.AjaxResult; + import Dispatcher = Swirl.Core.Dispatcher; + + class FilterBox { + private $elem: JQuery; + private timer: number; + + constructor(elem: string | Element | JQuery, callback: (text: string) => void, timeout?: number) { + this.$elem = $(elem); + this.$elem.keyup(() => { + if (this.timer > 0) { + clearTimeout(this.timer); + } + let text: string = this.$elem.val().toLowerCase(); + this.timer = setTimeout(() => callback(text), timeout || 500); + }); + } + } + + export class ListPage { + private fb: FilterBox; + private $charts: JQuery; + + constructor() { + this.$charts = $("#div-charts").children(); + this.fb = new FilterBox("#txt-query", this.filterCharts.bind(this)); + + // bind events + Dispatcher.bind("#div-charts").on("delete-chart", this.deleteChart.bind(this)); + } + + private deleteChart(e: JQueryEventObject) { + let $container = $(e.target).closest("div.column"); + let name = $container.data("name"); + Modal.confirm(`Are you sure to delete chart: ${name}?`, "Delete chart", (dlg, e) => { + $ajax.post(name + "/delete").trigger(e.target).json(r => { + $container.remove(); + dlg.close(); + }) + }); + } + + private filterCharts(text: string) { + if (!text) { + this.$charts.show(); + return; + } + + this.$charts.each((i, elem) => { + let $elem = $(elem), + texts: string[] = [ + $elem.data("name").toLowerCase(), + $elem.data("title").toLowerCase(), + $elem.data("desc").toLowerCase(), + ]; + for (let i = 0; i= 0) { + $(elem).show(); + return; + } + } + $(elem).hide(); + }) + } + } +} \ No newline at end of file diff --git a/assets/swirl/ts/core/graph.ts b/assets/swirl/ts/core/graph.ts new file mode 100644 index 0000000..caa17ee --- /dev/null +++ b/assets/swirl/ts/core/graph.ts @@ -0,0 +1,353 @@ +namespace Swirl.Core { + export class GraphOptions { + type?: string = "line"; + unit?: string; + width?: number = 12; + height?: number = 50; + colors?: string[]; + } + + export abstract class Graph { + protected $elem: JQuery; + protected opts?: GraphOptions; + private readonly name: string; + + protected constructor(elem: string | Element | JQuery, opts?: GraphOptions) { + this.$elem = $(elem); + this.opts = $.extend(new GraphOptions(), opts); + this.name = this.$elem.data("chart-name"); + } + + getName(): string { + return this.name; + } + + abstract setSize(w: number, h: number): void; + + abstract setData(d: any): void; + } + + /** + * Simple value + */ + export class ValueGraph extends Graph { + private $canvas: JQuery; + + constructor(elem: string | Element | JQuery, opts?: GraphOptions) { + super(elem, opts); + } + + setData(d: any): void { + } + + setSize(w: number, h: number): void { + } + } + + export class ComplexGraph extends Graph { + protected chart: Chart; + protected ctx: CanvasRenderingContext2D; + protected config: Chart.ChartConfiguration; + protected static defaultColors = [ + 'rgb(255, 99, 132)', // red + 'rgb(75, 192, 192)', // green + 'rgb(255, 159, 64)', // orange + 'rgb(54, 162, 235)', // blue + 'rgb(153, 102, 255)', // purple + 'rgb(255, 205, 86)', // yellow + 'rgb(201, 203, 207)', // grey + ]; + + constructor(elem: string | Element | JQuery, opts?: GraphOptions) { + super(elem, opts); + + if (!this.opts.colors) { + this.opts.colors = ComplexGraph.defaultColors; + } + + this.config = { + type: opts.type, + data: {}, + options: { + // title: { + // // display: true, + // text: opts.title || 'NONE' + // }, + // legend: { + // position: "bottom" + // }, + animation: { + duration: 0, + // easing: 'easeOutBounce', + }, + // tooltips: { + // callbacks: { + // label: function (tooltipItem: Chart.ChartTooltipItem, data: Chart.ChartData) { + // let label = data.datasets[tooltipItem.datasetIndex].label || ''; + // if (label) { + // label += ': '; + // } + // + // let p = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; + // if (typeof p == "number") { + // label += ComplexGraph.formatValue(p, opts.unit); + // } else { + // label += ComplexGraph.formatValue(p.y, opts.unit); + // } + // return label; + // } + // }, + // } + } + }; + + + this.fillConfig(); + + this.ctx = ($(elem).find("canvas").get(0)).getContext('2d'); + if (opts.height) { + this.ctx.canvas.height = opts.height; + } + this.chart = new Chart(this.ctx, this.config); + } + + setData(d: any): void { + } + + setSize(w: number, h: number): void { + this.ctx.canvas.height = h; + this.chart.update(); + } + + protected fillConfig() { + } + + protected static formatValue(value: number, unit: string): string { + switch (unit) { + case "percent:100": + return value.toFixed(1) + "%"; + case "percent:1": + return (value * 100).toFixed(1) + "%"; + case "time:s": + if (value < 1) { // 1 + return (value * 1000).toFixed(0) + 'ms'; + } else { + return value.toFixed(2) + 's'; + } + case "size:bytes": + if (value < 1024) { // 1K + return value.toString() + 'B'; + } else if (value < 1048576) { // 1M + return (value / 1024).toFixed(2) + 'K'; + } else if (value < 1073741824) { // 1G + return (value / 1048576).toFixed(2) + 'M'; + } else { + return (value / 1073741824).toFixed(2) + 'G'; + } + default: + return value.toFixed(2); + } + } + } + + /** + * Pie etc. + */ + export class VectorGraph extends ComplexGraph { + protected fillConfig() { + this.config.options.legend = { + position: "right" + }; + this.config.options.tooltips = { + callbacks: { + label: (tooltipItem: Chart.ChartTooltipItem, data: Chart.ChartData): string => { + let label = data.labels[tooltipItem.index] + ": "; + let p = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; + if (typeof p == "number") { + label += ComplexGraph.formatValue(p, this.opts.unit); + } + return label; + } + }, + } + } + + setData(d: any): void { + // data = { + // datasets: [{ + // data: [10, 20, 30] + // }], + // + // // These labels appear in the legend and in the tooltips when hovering different arcs + // labels: [ + // 'Red', + // 'Yellow', + // 'Blue' + // ] + // }; + this.config.data.datasets = [{ + data: d.data, + backgroundColor: this.opts.colors, + }]; + this.config.data.labels = d.labels; + // this.config.data.datasets = [{ + // data: [10, 20, 30], + // backgroundColor: this.opts.colors, + // }]; + // this.config.data.labels = [ + // 'Red', + // 'Yellow', + // 'Blue' + // ]; + this.chart.update(); + } + } + + /** + * Line/Bar etc. + */ + export class MatrixGraph extends ComplexGraph { + constructor(elem: string | Element | JQuery, opts?: GraphOptions) { + super(elem, opts); + } + + protected fillConfig() { + this.config.options.scales = { + xAxes: [{ + type: 'time', + time: { + // min: new Date(), + // max: new Date(), + unit: 'minute', + tooltipFormat: 'YYYY/MM/DD HH:mm:ss', + displayFormats: { + minute: 'HH:mm' + } + }, + }], + }; + if (this.opts.unit) { + this.config.options.scales.yAxes = [{ + ticks: { + callback: (n: number) => ComplexGraph.formatValue(n, this.opts.unit), + } + }]; + this.config.options.tooltips = { + callbacks: { + label: (tooltipItem: Chart.ChartTooltipItem, data: Chart.ChartData): string => { + let label = data.datasets[tooltipItem.datasetIndex].label + ": "; + let p: any = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; + label += ComplexGraph.formatValue(p.y, this.opts.unit); + return label; + } + }, + } + } + } + + setData(d: any): void { + let datasets = (d); + datasets.forEach((ds, i) => { + let color = (i < this.opts.colors.length) ? this.opts.colors[i] : this.opts.colors[0]; + ds.backgroundColor = Chart.helpers.color(color).alpha(0.3).rgbString(); + ds.borderColor = color; + ds.borderWidth = 2; + ds.pointRadius = 2; + // ds.fill = false; + }); + this.config.data.datasets = d; + this.chart.update(); + } + } + + export class GraphFactory { + static create(elem: string | Element | JQuery): Graph { + let $elem = $(elem); + let opts: GraphOptions = { + type: $elem.data("chart-type"), + unit: $elem.data("chart-unit"), + height: $elem.data("chart-height"), + colors: $elem.data("chart-colors"), + }; + switch (opts.type) { + case "value": + return new ValueGraph($elem, opts); + case "line": + case "bar": + return new MatrixGraph($elem, opts); + case "pie": + return new VectorGraph($elem, opts); + } + return null; + } + } + + export class GraphPanelOptions { + name: string; + id?: string; + time?: string = "30m"; + refreshInterval?: number = 15000; // ms + } + + export class GraphPanel { + private opts: GraphPanelOptions; + private charts: Graph[] = []; + private timer: number; + + constructor(elems: string | Element | JQuery, opts?: GraphPanelOptions) { + this.opts = $.extend(new GraphPanelOptions(), opts); + + $(elems).each((i, e) => { + let g = GraphFactory.create(e); + if (g != null) { + this.charts.push(g); + } + }); + + this.refreshData(); + } + + private refreshData() { + this.loadData(); + if (this.opts.refreshInterval > 0) { + this.timer = setTimeout(this.refreshData.bind(this), this.opts.refreshInterval); + } + } + + refresh() { + if (!this.timer) { + this.loadData(); + if (this.opts.refreshInterval > 0) { + this.timer = setTimeout(this.refreshData.bind(this), this.opts.refreshInterval); + } + } + } + + stop() { + clearTimeout(this.timer); + this.timer = 0; + } + + setTime(time: string) { + this.opts.time = time; + this.loadData(); + } + + private loadData() { + let args: any = { + dashboard: this.opts.name, + time: this.opts.time, + }; + if (this.opts.id) { + args.id = this.opts.id; + } + $ajax.get(`/system/chart/data`, args).json((d: { [index: string]: Chart.ChartDataSets[] }) => { + $.each(this.charts, (i: number, g: Graph) => { + if (d[g.getName()]) { + g.setData(d[g.getName()]); + } + }); + }); + } + } +} \ No newline at end of file diff --git a/assets/swirl/ts/core/page.ts b/assets/swirl/ts/core/page.ts deleted file mode 100644 index 14c1574..0000000 --- a/assets/swirl/ts/core/page.ts +++ /dev/null @@ -1,16 +0,0 @@ -// namespace Swirl.Core { -// export class ListBasePage { -// protected $table: ListTable; -// -// constructor() { -// this.$table = new ListTable("#table-items"); -// } -// } -// -// export class TestListPage extends ListBasePage { -// constructor() { -// super(); -// this.$table.on("", null); -// } -// } -// } \ No newline at end of file diff --git a/assets/swirl/ts/core/validator.ts b/assets/swirl/ts/core/validator.ts index 0abb459..588e89f 100644 --- a/assets/swirl/ts/core/validator.ts +++ b/assets/swirl/ts/core/validator.ts @@ -188,7 +188,7 @@ namespace Swirl.Core { */ class RegexRule implements ValidationRule { validate($form: JQuery, $input: JQuery, arg?: string): {ok: boolean, error?: string} { - let regex = new RegExp(arg, 'i'); + let regex = new RegExp(arg); let value = $.trim($input.val()); return {ok: !value || regex.test(value)}; } diff --git a/assets/swirl/ts/index.ts b/assets/swirl/ts/index.ts new file mode 100644 index 0000000..dc4863f --- /dev/null +++ b/assets/swirl/ts/index.ts @@ -0,0 +1,17 @@ +/// +/// +namespace Swirl { + import Modal = Swirl.Core.Modal; + import GraphPanel = Swirl.Core.GraphPanel; + + export class IndexPage { + private panel: GraphPanel; + + constructor() { + this.panel = new GraphPanel($("#div-charts").children("div"), {name: "home"}); + $("#btn-add").click(() => { + Modal.alert("Coming soon..."); + }); + } + } +} \ No newline at end of file diff --git a/assets/swirl/ts/service/stats.ts b/assets/swirl/ts/service/stats.ts index f82a5cd..3f9450f 100644 --- a/assets/swirl/ts/service/stats.ts +++ b/assets/swirl/ts/service/stats.ts @@ -1,118 +1,11 @@ /// +/// namespace Swirl.Service { - class MetricChartOptions { - type?: string = "line"; - height?: number = 50; - title?: string; - labelX?: string; - labelY?: string; - tickY?: (value: number) => string; - // tooltipLabel?: (tooltipItem: Chart.ChartTooltipItem, data: Chart.ChartData) => string | string[]; - } - - class MetricChart { - private chart: any; - private readonly config: any; - private colors = [ - 'rgb(255, 99, 132)', // red - 'rgb(75, 192, 192)', // green - 'rgb(255, 159, 64)', // orange - 'rgb(54, 162, 235)', // blue - 'rgb(153, 102, 255)', // purple - 'rgb(255, 205, 86)', // yellow - 'rgb(201, 203, 207)', // grey - ]; - - constructor(elem: string | Element | JQuery, opts?: MetricChartOptions) { - opts = $.extend(new MetricChartOptions(), opts); - this.config = { - type: opts.type, - data: {}, - options: { - title: { - // display: true, - text: opts.title || 'NONE' - }, - // legend: { - // position: "bottom" - // }, - animation: { - duration: 0, - // easing: 'easeOutBounce', - }, - scales: { - xAxes: [{ - type: 'time', - time: { - // min: new Date(), - // max: new Date(), - unit: 'minute', - tooltipFormat: 'YYYY/MM/DD HH:mm:ss', - displayFormats: { - minute: 'HH:mm' - } - }, - }], - yAxes: [{}] - }, - // tooltips: { - // callbacks: { - // label: opts.tooltipLabel, - // }, - // } - } - }; - if (opts.labelX) { - this.config.options.scales.xAxes[0].scaleLabel = { - display: true, - labelString: opts.labelX, - } - } - if (opts.labelY) { - this.config.options.scales.yAxes[0].scaleLabel = { - display: true, - labelString: opts.labelY, - } - } - if (opts.tickY) { - this.config.options.scales.yAxes[0].ticks = { - callback: opts.tickY, - } - } - - let ctx = ($(elem).get(0)).getContext('2d'); - if (opts.height) { - ctx.canvas.height = opts.height; - } - this.chart = new Chart(ctx, this.config); - } - - public setData(datasets: Chart.ChartDataSets[]) { - datasets.forEach((ds, i) => { - let color = (i < this.colors.length) ? this.colors[i] : this.colors[0]; - ds.backgroundColor = Chart.helpers.color(color).alpha(0.3).rgbString(); - ds.borderColor = color; - ds.borderWidth = 2; - ds.pointRadius = 2; - // ds.fill = false; - }); - this.config.data.datasets = datasets; - this.chart.update(); - } - } + import Modal = Swirl.Core.Modal; + import GraphPanel = Swirl.Core.GraphPanel; export class StatsPage { - private chartOptions: { [index: string]: MetricChartOptions } = { - "cpu": {tickY: (value: number): string => value + '%'}, - "memory": {tickY: StatsPage.formatSize}, - "network_in": {tickY: StatsPage.formatSize}, - "network_out": {tickY: StatsPage.formatSize}, - "threads": {}, - "goroutines": {}, - "gc_duration": {tickY: (value: number): string => value * 1000 + 'ms'}, - }; - private charts: { [index: string]: MetricChart } = {}; - private timer: number; + private panel: GraphPanel; constructor() { let $cb_time = $("#cb-time"); @@ -120,53 +13,24 @@ namespace Swirl.Service { return; } - $cb_time.change(this.loadData.bind(this)); - $("#cb-refresh").change(() => { - if (this.timer) { - clearTimeout(this.timer); - this.timer = null; + this.panel = new GraphPanel($("#div-charts").children("div"), { + name: "service", + id: $("#h2-service-name").text() + }); + + $("#btn-add").click(() => { + Modal.alert("Coming soon..."); + }); + $cb_time.change(e => { + this.panel.setTime($(e.target).val()); + }); + $("#cb-refresh").change(e => { + if ($(e.target).prop("checked")) { + this.panel.refresh(); } else { - this.refreshData(); + this.panel.stop(); } }); - - $.each(this.chartOptions, (name, opt) => { - let $el = $("#canvas_" + name); - if ($el.length > 0) { - this.charts[name] = new MetricChart($el, opt); - } - }); - this.refreshData(); - } - - private refreshData() { - this.loadData(); - if ($("#cb-refresh").prop("checked")) { - this.timer = setTimeout(this.refreshData.bind(this), 15000); - } - } - - private loadData() { - let time = $("#cb-time").val(); - $ajax.get(`metrics`, {time: time}).json((d: {[index: string]: Chart.ChartDataSets[]}) => { - $.each(this.charts, (name: string, chart: MetricChart) => { - if (d[name]) { - chart.setData(d[name]); - } - }); - }); - } - - private static formatSize(size: number): string { - if (size < 1024) { // 1K - return size.toString() + 'B'; - } else if (size < 1048576) { // 1M - return (size / 1024).toFixed(2) + 'K'; - } else if (size < 1073741824) { // 1G - return (size / 1048576).toFixed(2) + 'M'; - } else { - return (size / 1073741824).toFixed(2) + 'G'; - } } } } \ No newline at end of file diff --git a/biz/chart.go b/biz/chart.go new file mode 100644 index 0000000..033f78b --- /dev/null +++ b/biz/chart.go @@ -0,0 +1,158 @@ +package biz + +import ( + "fmt" + "strings" + "time" + + "github.com/cuigh/auxo/data" + "github.com/cuigh/auxo/log" + "github.com/cuigh/auxo/net/web" + "github.com/cuigh/swirl/biz/docker" + "github.com/cuigh/swirl/dao" + "github.com/cuigh/swirl/model" +) + +// Chart return a chart biz instance. +var Chart = &chartBiz{} + +type chartBiz struct { +} + +func (b *chartBiz) List() (charts []*model.Chart, err error) { + do(func(d dao.Interface) { + charts, err = d.ChartList() + }) + return +} + +func (b *chartBiz) Create(chart *model.Chart, user web.User) (err error) { + do(func(d dao.Interface) { + //chart.CreatedAt = time.Now() + //chart.UpdatedAt = chart.CreatedAt + err = d.ChartCreate(chart) + }) + return +} + +func (b *chartBiz) Delete(id string, user web.User) (err error) { + do(func(d dao.Interface) { + err = d.ChartDelete(id) + }) + return +} + +func (b *chartBiz) Get(name string) (chart *model.Chart, err error) { + do(func(d dao.Interface) { + chart, err = d.ChartGet(name) + }) + return +} + +func (b *chartBiz) Update(chart *model.Chart, user web.User) (err error) { + do(func(d dao.Interface) { + //chart.UpdatedAt = time.Now() + err = d.ChartUpdate(chart) + }) + return +} + +func (b *chartBiz) GetServiceCharts(name string) (charts []*model.Chart, err error) { + service, _, err := docker.ServiceInspect(name) + if err != nil { + return nil, err + } + + var categories []string + if label := service.Spec.Labels["swirl.metrics"]; label != "" { + categories = strings.Split(label, ",") + } + + charts = append(charts, model.NewChart("cpu", "CPU", "${name}", `rate(container_cpu_user_seconds_total{container_label_com_docker_swarm_service_name="%s"}[5m]) * 100`, "percent:100")) + charts = append(charts, model.NewChart("memory", "Memory", "${name}", `container_memory_usage_bytes{container_label_com_docker_swarm_service_name="%s"}`, "size:bytes")) + charts = append(charts, model.NewChart("network_in", "Network Receive", "${name}", `sum(irate(container_network_receive_bytes_total{container_label_com_docker_swarm_service_name="%s"}[5m])) by(name)`, "size:bytes")) + charts = append(charts, model.NewChart("network_out", "Network Send", "${name}", `sum(irate(container_network_transmit_bytes_total{container_label_com_docker_swarm_service_name="%s"}[5m])) by(name)`, "size:bytes")) + for _, c := range categories { + if c == "java" { + charts = append(charts, model.NewChart("threads", "Threads", "${instance}", `jvm_threads_current{service="%s"}`, "")) + charts = append(charts, model.NewChart("gc_duration", "GC Duration", "${instance}", `rate(jvm_gc_collection_seconds_sum{service="%s"}[1m])`, "time:s")) + } else if c == "go" { + charts = append(charts, model.NewChart("threads", "Threads", "${instance}", `go_threads{service="%s"}`, "")) + charts = append(charts, model.NewChart("goroutines", "Goroutines", "${instance}", `go_goroutines{service="%s"}`, "")) + charts = append(charts, model.NewChart("gc_duration", "GC Duration", "${instance}", `sum(go_gc_duration_seconds{service="%s"}) by (instance)`, "time:s")) + } + } + for i, c := range charts { + charts[i].Query = fmt.Sprintf(c.Query, name) + } + return +} + +// nolint: gocyclo +func (b *chartBiz) Panel(panel model.ChartPanel) (charts []*model.Chart, err error) { + do(func(d dao.Interface) { + if len(panel.Charts) == 0 { + return + } + + names := make([]string, len(panel.Charts)) + for i, c := range panel.Charts { + names[i] = c.Name + } + + var cs []*model.Chart + cs, err = d.ChartBatch(names...) + if err != nil { + return + } + + if len(cs) > 0 { + m := make(map[string]*model.Chart) + for _, c := range cs { + m[c.Name] = c + } + for _, c := range panel.Charts { + if chart := m[c.Name]; chart != nil { + if c.Width > 0 { + chart.Width = c.Width + } + if c.Height > 0 { + chart.Height = c.Height + } + if len(c.Colors) > 0 { + chart.Colors = c.Colors + } + charts = append(charts, chart) + } + } + } + }) + return +} + +// todo: +func (b *chartBiz) FetchDatas(charts []*model.Chart, period time.Duration) (data.Map, error) { + datas := data.Map{} + end := time.Now() + start := end.Add(-period) + for _, chart := range charts { + switch chart.Type { + case "line", "bar": + m, err := Metric.GetMatrix(chart.Query, chart.Label, start, end) + if err != nil { + log.Get("metric").Error(err) + } else { + datas[chart.Name] = m + } + case "pie", "table": + m, err := Metric.GetVector(chart.Query, chart.Label, end) + if err != nil { + log.Get("metric").Error(err) + } else { + datas[chart.Name] = m + } + case "value": + } + } + return datas, nil +} diff --git a/biz/metric.go b/biz/metric.go index 28ed309..4d589bf 100644 --- a/biz/metric.go +++ b/biz/metric.go @@ -3,6 +3,7 @@ package biz import ( "context" "fmt" + "os" "time" "github.com/cuigh/auxo/ext/times" @@ -37,18 +38,18 @@ type metricBiz struct { } func (b *metricBiz) GetServiceCharts(service string, categories []string) (charts []model.ChartInfo) { - charts = append(charts, model.NewChartInfo("cpu", "CPU", "name", `rate(container_cpu_user_seconds_total{container_label_com_docker_swarm_service_name="%s"}[5m]) * 100`)) - charts = append(charts, model.NewChartInfo("memory", "Memory", "name", `container_memory_usage_bytes{container_label_com_docker_swarm_service_name="%s"}`)) - charts = append(charts, model.NewChartInfo("network_in", "Network Receive", "name", `sum(irate(container_network_receive_bytes_total{container_label_com_docker_swarm_service_name="%s"}[5m])) by(name)`)) - charts = append(charts, model.NewChartInfo("network_out", "Network Send", "name", `sum(irate(container_network_transmit_bytes_total{container_label_com_docker_swarm_service_name="%s"}[5m])) by(name)`)) + charts = append(charts, model.NewChartInfo("cpu", "CPU", "${name}", `rate(container_cpu_user_seconds_total{container_label_com_docker_swarm_service_name="%s"}[5m]) * 100`)) + charts = append(charts, model.NewChartInfo("memory", "Memory", "${name}", `container_memory_usage_bytes{container_label_com_docker_swarm_service_name="%s"}`)) + charts = append(charts, model.NewChartInfo("network_in", "Network Receive", "${name}", `sum(irate(container_network_receive_bytes_total{container_label_com_docker_swarm_service_name="%s"}[5m])) by(name)`)) + charts = append(charts, model.NewChartInfo("network_out", "Network Send", "${name}", `sum(irate(container_network_transmit_bytes_total{container_label_com_docker_swarm_service_name="%s"}[5m])) by(name)`)) for _, c := range categories { if c == "java" { - charts = append(charts, model.NewChartInfo("threads", "Threads", "instance", `jvm_threads_current{service="%s"}`)) - charts = append(charts, model.NewChartInfo("gc_duration", "GC Duration", "instance", `rate(jvm_gc_collection_seconds_sum{service="%s"}[1m])`)) + charts = append(charts, model.NewChartInfo("threads", "Threads", "${instance}", `jvm_threads_current{service="%s"}`)) + charts = append(charts, model.NewChartInfo("gc_duration", "GC Duration", "${instance}", `rate(jvm_gc_collection_seconds_sum{service="%s"}[1m])`)) } else if c == "go" { - charts = append(charts, model.NewChartInfo("threads", "Threads", "instance", `go_threads{service="%s"}`)) - charts = append(charts, model.NewChartInfo("goroutines", "Goroutines", "instance", `go_goroutines{service="%s"}`)) - charts = append(charts, model.NewChartInfo("gc_duration", "GC Duration", "instance", `sum(go_gc_duration_seconds{service="%s"}) by (instance)`)) + charts = append(charts, model.NewChartInfo("threads", "Threads", "${instance}", `go_threads{service="%s"}`)) + charts = append(charts, model.NewChartInfo("goroutines", "Goroutines", "${instance}", `go_goroutines{service="%s"}`)) + charts = append(charts, model.NewChartInfo("gc_duration", "GC Duration", "${instance}", `sum(go_gc_duration_seconds{service="%s"}) by (instance)`)) } } for i, c := range charts { @@ -75,7 +76,7 @@ func (b *metricBiz) GetMatrix(query, label string, start, end time.Time) (lines matrix := value.(pmodel.Matrix) for _, stream := range matrix { - line := model.ChartLine{Label: string(stream.Metric[pmodel.LabelName(label)])} + line := model.ChartLine{Label: b.formatLabel(label, stream.Metric)} for _, v := range stream.Values { p := model.ChartPoint{ X: int64(v.Timestamp), @@ -103,20 +104,25 @@ func (b *metricBiz) GetScalar(query string, t time.Time) (v float64, err error) return float64(scalar.Value), nil } -func (b *metricBiz) GetVector(query string, t time.Time) (values []float64, err error) { - api, err := b.getAPI() +func (b *metricBiz) GetVector(query, label string, t time.Time) (cv model.ChartVector, err error) { + var api papi.API + api, err = b.getAPI() if err != nil { - return nil, err + return } - value, err := api.Query(context.Background(), query, t) + var value pmodel.Value + value, err = api.Query(context.Background(), query, t) if err != nil { - return nil, err + return } vector := value.(pmodel.Vector) for _, sample := range vector { - values = append(values, float64(sample.Value)) + cv.Data = append(cv.Data, float64(sample.Value)) + if label != "" { + cv.Labels = append(cv.Labels, b.formatLabel(label, sample.Metric)) + } } return } @@ -143,3 +149,12 @@ func (b *metricBiz) getAPI() (api papi.API, err error) { } return v.(papi.API), nil } + +func (b *metricBiz) formatLabel(label string, metric pmodel.Metric) string { + return os.Expand(label, func(key string) string { + if s := string(metric[pmodel.LabelName(key)]); s != "" { + return s + } + return "[" + key + "]" + }) +} diff --git a/config/i18n/en.yml b/config/i18n/en.yml index 711af9f..2a63858 100644 --- a/config/i18n/en.yml +++ b/config/i18n/en.yml @@ -45,6 +45,12 @@ field.driver: Driver field.scope: Scope field.role: Roles field.user: Users +field.width: Width +field.height: Height +field.unit: Unit +field.title: Title +field.label: Label +field.dashboard: Dashboard # menu menu.home: Home @@ -69,6 +75,7 @@ menu.role: Roles menu.user: Users menu.setting: Settings menu.event: Events +menu.chart: Charts menu.version: Version menu.profile: Profile menu.password: Password @@ -90,7 +97,7 @@ home.node: Nodes home.network: Networks home.service: Services home.stack: Stacks -home.feature: Features +home.monitor: Monitors # image pages image.title: Image @@ -169,6 +176,10 @@ setting.description: Manage Swirl system settings. event.title: Event event.description: Manage all user events. +# chart pages +chart.title: Chart +chart.description: Manage all metric charts. + # profile pages profile.title: Profile profile.description: User profiles. diff --git a/config/i18n/zh.yml b/config/i18n/zh.yml index f2db3d7..915050d 100644 --- a/config/i18n/zh.yml +++ b/config/i18n/zh.yml @@ -45,6 +45,12 @@ field.driver: 驱动 field.scope: 范围 field.role: 角色 field.user: 用户 +field.width: 宽度 +field.height: 高度 +field.unit: 单位 +field.title: 标题 +field.label: 标签 +field.dashboard: 仪表盘 # menu menu.home: 首页 @@ -69,6 +75,7 @@ menu.role: 角色 menu.user: 用户 menu.setting: 设置 menu.event: 事件 +menu.chart: 图表 menu.version: 版本 menu.profile: 资料 menu.password: 密码 @@ -90,7 +97,7 @@ home.node: 节点 home.network: 网络 home.service: 服务 home.stack: 编排 -home.feature: 功能 +home.monitor: 监控 # image pages image.title: 镜像 @@ -169,6 +176,10 @@ setting.description: 管理 Swirl 系统设置。 event.title: 事件 event.description: 管理用户操作日志。 +# chart pages +chart.title: 图表 +chart.description: 管理监控图表。 + # profile pages profile.title: 资料 profile.description: 用户个人信息。 diff --git a/controller/chart.go b/controller/chart.go new file mode 100644 index 0000000..7c6fa99 --- /dev/null +++ b/controller/chart.go @@ -0,0 +1,143 @@ +package controller + +import ( + "time" + + "github.com/cuigh/auxo/net/web" + "github.com/cuigh/auxo/util/cast" + "github.com/cuigh/swirl/biz" + "github.com/cuigh/swirl/model" +) + +// ChartController is a controller of metric chart. +type ChartController struct { + List web.HandlerFunc `path:"/" name:"chart.list" authorize:"!" desc:"chart list page"` + Query web.HandlerFunc `path:"/query" name:"chart.query" authorize:"?" desc:"chart query"` + New web.HandlerFunc `path:"/new" name:"chart.new" authorize:"!" desc:"new chart page"` + Create web.HandlerFunc `path:"/new" method:"post" name:"chart.create" authorize:"!" desc:"create chart"` + Edit web.HandlerFunc `path:"/:name/edit" name:"chart.edit" authorize:"!" desc:"edit chart page"` + Delete web.HandlerFunc `path:"/:name/delete" method:"post" name:"chart.delete" authorize:"!" desc:"delete chart"` + Update web.HandlerFunc `path:"/:name/edit" method:"post" name:"chart.update" authorize:"!" desc:"update chart"` + Data web.HandlerFunc `path:"/data" name:"chart.data" authorize:"?" desc:"fetch chart datas"` +} + +// Chart creates an instance of RoleController +func Chart() (c *ChartController) { + return &ChartController{ + List: chartList, + Query: chartQuery, + New: chartNew, + Create: chartCreate, + Edit: chartEdit, + Update: chartUpdate, + Delete: chartDelete, + Data: chartData, + } +} + +func chartList(ctx web.Context) error { + charts, err := biz.Chart.List() + if err != nil { + return err + } + + m := newModel(ctx).Set("Charts", charts) + return ctx.Render("system/chart/list", m) +} + +func chartQuery(ctx web.Context) error { + charts, err := biz.Chart.List() + if err != nil { + return err + } + + dashboard := ctx.Q("dashboard") + var list []*model.Chart + for _, c := range charts { + if c.Dashboard == dashboard || c.Dashboard == "" { + list = append(list, c) + } + } + return ctx.JSON(list) +} + +func chartNew(ctx web.Context) error { + m := newModel(ctx).Set("Chart", &model.Chart{ + Width: 12, + Height: 50, + Type: "line", + Dashboard: "service", + }) + return ctx.Render("system/chart/edit", m) +} + +func chartCreate(ctx web.Context) error { + chart := &model.Chart{} + err := ctx.Bind(chart, true) + if err == nil { + err = biz.Chart.Create(chart, ctx.User()) + } + return ajaxResult(ctx, err) +} + +func chartEdit(ctx web.Context) error { + name := ctx.P("name") + chart, err := biz.Chart.Get(name) + if err != nil { + return err + } + if chart == nil { + return web.ErrNotFound + } + + m := newModel(ctx).Set("Chart", chart) + return ctx.Render("system/chart/edit", m) +} + +func chartUpdate(ctx web.Context) error { + chart := &model.Chart{} + err := ctx.Bind(chart) + if err == nil { + err = biz.Chart.Update(chart, ctx.User()) + } + return ajaxResult(ctx, err) +} + +func chartDelete(ctx web.Context) error { + name := ctx.P("name") + err := biz.Chart.Delete(name, ctx.User()) + return ajaxResult(ctx, err) +} + +// todo: +func chartData(ctx web.Context) error { + period := cast.ToDuration(ctx.Q("time"), time.Hour) + dashboard := ctx.Q("dashboard") + + var ( + charts []*model.Chart + err error + ) + if dashboard == "home" { + var setting *model.Setting + setting, err = biz.Setting.Get() + if err != nil { + return err + } + charts, err = biz.Chart.Panel(setting.Dashboard.Home) + + } else if dashboard == "service" { + id := ctx.Q("id") + charts, err = biz.Chart.GetServiceCharts(id) + } + + if err != nil { + return err + } + + datas, err := biz.Chart.FetchDatas(charts, period) + if err != nil { + return err + } + return ctx.JSON(datas) +} diff --git a/controller/home.go b/controller/home.go index 334de2a..6a1a998 100644 --- a/controller/home.go +++ b/controller/home.go @@ -32,8 +32,10 @@ func Home() (c *HomeController) { func homeIndex(ctx web.Context) (err error) { var ( - count int - m = newModel(ctx) + count int + setting *model.Setting + charts []*model.Chart + m = newModel(ctx) ) if count, err = docker.NodeCount(); err != nil { @@ -56,6 +58,15 @@ func homeIndex(ctx web.Context) (err error) { } m.Set("StackCount", count) + if setting, err = biz.Setting.Get(); err != nil { + return + } + charts, err = biz.Chart.Panel(setting.Dashboard.Home) + if err != nil { + return err + } + m.Set("Charts", charts) + return ctx.Render("index", m) } diff --git a/controller/service.go b/controller/service.go index dfef2c9..65279bd 100644 --- a/controller/service.go +++ b/controller/service.go @@ -5,7 +5,6 @@ import ( "strings" "time" - "github.com/cuigh/auxo/data" "github.com/cuigh/auxo/data/set" "github.com/cuigh/auxo/errors" "github.com/cuigh/auxo/net/web" @@ -32,7 +31,6 @@ type ServiceController struct { PermEdit web.HandlerFunc `path:"/:name/perm" name:"service.perm.edit" authorize:"!" perm:"write,service,name"` PermUpdate web.HandlerFunc `path:"/:name/perm" method:"post" name:"service.perm.update" authorize:"!" perm:"write,service,name"` Stats web.HandlerFunc `path:"/:name/stats" name:"service.stats" authorize:"!" perm:"read,service,name"` - Metrics web.HandlerFunc `path:"/:name/metrics" name:"service.metrics" authorize:"?"` } // Service creates an instance of ServiceController @@ -52,7 +50,6 @@ func Service() (c *ServiceController) { PermEdit: servicePermEdit, PermUpdate: permUpdate("service", "name"), Stats: serviceStats, - Metrics: serviceMetrics, } } @@ -297,13 +294,9 @@ func serviceStats(ctx web.Context) error { return err } - var charts []model.ChartInfo + var charts []*model.Chart if setting.Metrics.Prometheus != "" { - var categories []string - if label := service.Spec.Labels["swirl.metrics"]; label != "" { - categories = strings.Split(label, ",") - } - charts = biz.Metric.GetServiceCharts(name, categories) + charts, err = biz.Chart.GetServiceCharts(name) } period := cast.ToDuration(ctx.Q("time"), time.Hour) @@ -312,31 +305,3 @@ func serviceStats(ctx web.Context) error { Set("Refresh", refresh).Set("Charts", charts) return ctx.Render("service/stats", m) } - -func serviceMetrics(ctx web.Context) error { - name := ctx.P("name") - service, _, err := docker.ServiceInspect(name) - if err != nil { - return err - } - - var categories []string - if label := service.Spec.Labels["swirl.metrics"]; label != "" { - categories = strings.Split(label, ",") - } - charts := biz.Metric.GetServiceCharts(name, categories) - - period := cast.ToDuration(ctx.Q("time"), time.Hour) - end := time.Now() - start := end.Add(-period) - - m := data.Map{} - for _, c := range charts { - matrix, err := biz.Metric.GetMatrix(c.Query, c.Label, start, end) - if err != nil { - return err - } - m[c.Name] = matrix - } - return ctx.JSON(m) -} diff --git a/dao/dao.go b/dao/dao.go index 423b98e..6b1d416 100644 --- a/dao/dao.go +++ b/dao/dao.go @@ -62,6 +62,13 @@ type Interface interface { SettingGet() (setting *model.Setting, err error) SettingUpdate(setting *model.Setting) error + + ChartGet(name string) (*model.Chart, error) + ChartBatch(names ...string) ([]*model.Chart, error) + ChartList() (charts []*model.Chart, err error) + ChartCreate(chart *model.Chart) error + ChartUpdate(chart *model.Chart) error + ChartDelete(name string) error } // Get return a dao instance according to DB_TYPE. diff --git a/dao/mongo/chart.go b/dao/mongo/chart.go new file mode 100644 index 0000000..b646da2 --- /dev/null +++ b/dao/mongo/chart.go @@ -0,0 +1,65 @@ +package mongo + +import ( + "github.com/cuigh/swirl/model" + "github.com/globalsign/mgo" + "github.com/globalsign/mgo/bson" +) + +func (d *Dao) ChartList() (charts []*model.Chart, err error) { + d.do(func(db *database) { + charts = []*model.Chart{} + err = db.C("chart").Find(nil).All(&charts) + }) + return +} + +func (d *Dao) ChartCreate(chart *model.Chart) (err error) { + d.do(func(db *database) { + err = db.C("chart").Insert(chart) + }) + return +} + +func (d *Dao) ChartGet(name string) (chart *model.Chart, err error) { + d.do(func(db *database) { + chart = &model.Chart{} + err = db.C("chart").FindId(name).One(chart) + if err == mgo.ErrNotFound { + chart, err = nil, nil + } else if err != nil { + chart = nil + } + }) + return +} + +func (d *Dao) ChartBatch(names ...string) (charts []*model.Chart, err error) { + d.do(func(db *database) { + q := bson.M{"_id": bson.M{"$in": names}} + charts = make([]*model.Chart, 0) + err = db.C("chart").Find(q).All(&charts) + return + }) + return +} + +func (d *Dao) ChartUpdate(chart *model.Chart) (err error) { + d.do(func(db *database) { + //update := bson.M{ + // "$set": bson.M{ + // "name": chart.Name, + // "desc": chart.Description, + // }, + //} + err = db.C("chart").UpdateId(chart.Name, chart) + }) + return +} + +func (d *Dao) ChartDelete(name string) (err error) { + d.do(func(db *database) { + err = db.C("chart").RemoveId(name) + }) + return +} diff --git a/main.go b/main.go index 8914e1c..f013caa 100644 --- a/main.go +++ b/main.go @@ -116,6 +116,7 @@ func server(setting *model.Setting) *web.Server { g.Handle("/system/role", controller.Role()) g.Handle("/system/setting", controller.Setting()) g.Handle("/system/event", controller.Event()) + g.Handle("/system/chart", controller.Chart()) return ws } diff --git a/model/metric.go b/model/metric.go new file mode 100644 index 0000000..a651251 --- /dev/null +++ b/model/metric.go @@ -0,0 +1,87 @@ +package model + +import ( + "github.com/cuigh/auxo/data" +) + +// Chart represents a dashboard chart. +type Chart struct { + Name string `json:"name" bson:"_id" valid:"required"` // unique, the name of build-in charts has '$' prefix. + Title string `json:"title" valid:"required"` + Description string `json:"desc"` + Label string `json:"label"` // ${name} - ${instance} + Query string `json:"query" valid:"required"` + Kind string `json:"kind"` // builtin/custom + Dashboard string `json:"dashboard"` // home/service/task... + Type string `json:"type"` // pie/line... + Unit string `json:"unit"` // bytes/milliseconds/percent:100... + Width int32 `json:"width"` // 1-12(12 columns total) + Height int32 `json:"height"` // default 50 + Colors []string `json:"colors"` + Options data.Map `json:"options"` +} + +func NewChart(name, title, label, query, unit string) *Chart { + return &Chart{ + Name: name, + Title: title, + Description: title, + Label: label, + Query: query, + Type: "line", + Unit: unit, + Width: 12, + Height: 50, + } +} + +type ChartItem struct { + Name string `json:"name"` + Width int32 `json:"width"` + Height int32 `json:"height"` + Colors []string `json:"colors"` +} + +type ChartPanel struct { + Refresh bool `json:"refresh"` + Period int32 `json:"period"` // minutes + Charts []ChartItem `json:"charts"` +} + +//type ChartPanel []ChartItem + +type ChartPoint struct { + X int64 `json:"x"` + Y float64 `json:"y"` +} + +type ChartLine struct { + Label string `json:"label"` + Data []ChartPoint `json:"data"` +} + +type ChartValue struct { + Label string `json:"label"` + Data float64 `json:"data"` +} + +type ChartVector struct { + Data []float64 `json:"data"` + Labels []string `json:"labels"` +} + +type ChartInfo struct { + Name string `json:"name"` + Title string `json:"title"` + Label string `json:"label"` + Query string `json:"query"` +} + +func NewChartInfo(name, title, label, query string) ChartInfo { + return ChartInfo{ + Name: name, + Title: title, + Label: label, + Query: query, + } +} diff --git a/model/service.go b/model/service.go index 245bf61..0519f11 100644 --- a/model/service.go +++ b/model/service.go @@ -33,29 +33,3 @@ type TemplateListArgs struct { PageIndex int `bind:"page"` PageSize int `bind:"size"` } - -type ChartPoint struct { - X int64 `json:"x"` - Y float64 `json:"y"` -} - -type ChartLine struct { - Label string `json:"label"` - Data []ChartPoint `json:"data"` -} - -type ChartInfo struct { - Name string `json:"name"` - Title string `json:"title"` - Label string `json:"label"` - Query string `json:"query"` -} - -func NewChartInfo(name, title, label, query string) ChartInfo { - return ChartInfo{ - Name: name, - Title: title, - Label: label, - Query: query, - } -} diff --git a/model/system.go b/model/system.go index 2754471..0a8b976 100644 --- a/model/system.go +++ b/model/system.go @@ -47,6 +47,9 @@ type Setting struct { Metrics struct { Prometheus string `bson:"prometheus" json:"prometheus"` } `bson:"metrics" json:"metrics"` + Dashboard struct { + Home ChartPanel `bson:"home" json:"home"` + } `bson:"dashboard" json:"dashboard"` UpdatedBy string `bson:"updated_by" json:"updated_by,omitempty"` UpdatedAt time.Time `bson:"updated_at" json:"updated_at,omitempty"` } diff --git a/scaler/scaler.go b/scaler/scaler.go index a6e28f7..d864106 100644 --- a/scaler/scaler.go +++ b/scaler/scaler.go @@ -159,16 +159,16 @@ func checkArg(service string, arg data.Option) (scaleType, float64) { func cpuChecker(service string, low, high float64) (scaleType, float64) { query := fmt.Sprintf(`avg(rate(container_cpu_user_seconds_total{container_label_com_docker_swarm_service_name="%s"}[5m]) * 100)`, service) - values, err := biz.Metric.GetVector(query, time.Now()) + vector, err := biz.Metric.GetVector(query, "", time.Now()) if err != nil { log.Get("scaler").Error("scaler > Failed to query metrics: ", err) return scaleNone, 0 } - if len(values) == 0 { + if len(vector.Data) == 0 { return scaleNone, 0 } - value := values[0] + value := vector.Data[0] if value <= low { return scaleDown, value } else if value >= high { diff --git a/security/perm.go b/security/perm.go index 0e762d4..61341e5 100644 --- a/security/perm.go +++ b/security/perm.go @@ -221,4 +221,15 @@ var Perms = []PermGroup{ {Key: "event.list", Text: "View list"}, }, }, + { + Name: "Chart", + Perms: []Perm{ + {Key: "chart.list", Text: "View list"}, + {Key: "chart.new", Text: "View new"}, + {Key: "chart.edit", Text: "View edit"}, + {Key: "chart.create", Text: "Create"}, + {Key: "chart.delete", Text: "Delete"}, + {Key: "chart.update", Text: "Update"}, + }, + }, } diff --git a/views/_layouts/default.jet b/views/_layouts/default.jet index ff5d2d1..c6b1d39 100644 --- a/views/_layouts/default.jet +++ b/views/_layouts/default.jet @@ -55,6 +55,7 @@ {{ i18n("menu.user") }} {{ i18n("menu.setting") }} {{ i18n("menu.event") }} + {{ i18n("menu.chart") }}