+
+
+
-
+
No Dashboards or Folders found.
diff --git a/public/app/features/dashboard/specs/dashboard_list_ctrl.jest.ts b/public/app/features/dashboard/specs/dashboard_list_ctrl.jest.ts
index ea1e1d6ea00..dd9fb7f6caf 100644
--- a/public/app/features/dashboard/specs/dashboard_list_ctrl.jest.ts
+++ b/public/app/features/dashboard/specs/dashboard_list_ctrl.jest.ts
@@ -61,6 +61,63 @@ describe('DashboardListCtrl', () => {
});
});
+ describe('when searching dashboards', () => {
+ beforeEach(() => {
+ const response = [
+ {
+ id: 410,
+ title: "afolder",
+ type: "dash-folder",
+ items: [
+ {
+ id: 399,
+ title: "Dashboard Test",
+ url: "dashboard/db/dashboard-test",
+ icon: 'fa fa-folder',
+ tags: [],
+ isStarred: false,
+ folderId: 410,
+ folderTitle: "afolder",
+ folderSlug: "afolder"
+ }
+ ],
+ tags: [],
+ isStarred: false
+ },
+ {
+ id: 0,
+ title: "Root",
+ icon: 'fa fa-folder-open',
+ uri: "db/something-else",
+ type: "dash-db",
+ items: [
+ {
+ id: 500,
+ title: "Dashboard Test",
+ url: "dashboard/db/dashboard-test",
+ icon: 'fa fa-folder',
+ tags: [],
+ isStarred: false
+ }
+ ],
+ tags: [],
+ isStarred: false,
+ }
+ ];
+ ctrl = createCtrlWithStubs(response);
+ ctrl.query.query = 'd';
+ return ctrl.getDashboards();
+ });
+
+ it('should set checked to false on all sections and children', () => {
+ expect(ctrl.sections.length).toEqual(2);
+ expect(ctrl.sections[0].checked).toEqual(false);
+ expect(ctrl.sections[0].items[0].checked).toEqual(false);
+ expect(ctrl.sections[1].checked).toEqual(false);
+ expect(ctrl.sections[1].items[0].checked).toEqual(false);
+ });
+ });
+
describe('when selecting dashboards', () => {
let ctrl;
diff --git a/public/app/features/panel/metrics_panel_ctrl.ts b/public/app/features/panel/metrics_panel_ctrl.ts
index f4d329908b1..0b3b145bbe4 100644
--- a/public/app/features/panel/metrics_panel_ctrl.ts
+++ b/public/app/features/panel/metrics_panel_ctrl.ts
@@ -11,7 +11,6 @@ import {metricsTabDirective} from './metrics_tab';
class MetricsPanelCtrl extends PanelCtrl {
scope: any;
- loading: boolean;
datasource: any;
datasourceName: any;
$q: any;
diff --git a/public/app/features/panel/panel_ctrl.ts b/public/app/features/panel/panel_ctrl.ts
index 74ed531cef9..b6cae5c7ece 100644
--- a/public/app/features/panel/panel_ctrl.ts
+++ b/public/app/features/panel/panel_ctrl.ts
@@ -29,6 +29,7 @@ export class PanelCtrl {
containerHeight: any;
events: Emitter;
timing: any;
+ loading: boolean;
constructor($scope, $injector) {
this.$injector = $injector;
diff --git a/public/app/plugins/datasource/influxdb/influx_series.d.ts b/public/app/plugins/datasource/influxdb/influx_series.d.ts
deleted file mode 100644
index c3318b8e133..00000000000
--- a/public/app/plugins/datasource/influxdb/influx_series.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare var test: any;
-export default test;
diff --git a/public/app/plugins/datasource/influxdb/influx_series.js b/public/app/plugins/datasource/influxdb/influx_series.ts
similarity index 75%
rename from public/app/plugins/datasource/influxdb/influx_series.js
rename to public/app/plugins/datasource/influxdb/influx_series.ts
index 6d35b020075..e17e83026e7 100644
--- a/public/app/plugins/datasource/influxdb/influx_series.js
+++ b/public/app/plugins/datasource/influxdb/influx_series.ts
@@ -1,28 +1,27 @@
-define([
- 'lodash',
- 'app/core/table_model',
-],
-function (_, TableModel) {
- 'use strict';
+import _ from 'lodash';
+import TableModel from 'app/core/table_model';
- function InfluxSeries(options) {
+export default class InfluxSeries {
+
+ series: any;
+ alias: any;
+ annotation: any;
+
+ constructor(options) {
this.series = options.series;
this.alias = options.alias;
this.annotation = options.annotation;
}
- var p = InfluxSeries.prototype;
-
- p.getTimeSeries = function() {
+ getTimeSeries() {
var output = [];
- var self = this;
var i, j;
- if (self.series.length === 0) {
+ if (this.series.length === 0) {
return output;
}
- _.each(self.series, function(series) {
+ _.each(this.series, (series) => {
var columns = series.columns.length;
var tags = _.map(series.tags, function(value, key) {
return key + ': ' + value;
@@ -35,8 +34,8 @@ function (_, TableModel) {
seriesName = seriesName + '.' + columnName;
}
- if (self.alias) {
- seriesName = self._getSeriesName(series, j);
+ if (this.alias) {
+ seriesName = this._getSeriesName(series, j);
} else if (series.tags) {
seriesName = seriesName + ' {' + tags.join(', ') + '}';
}
@@ -53,9 +52,9 @@ function (_, TableModel) {
});
return output;
- };
+ }
- p._getSeriesName = function(series, index) {
+ _getSeriesName(series, index) {
var regex = /\$(\w+)|\[\[([\s\S]+?)\]\]/g;
var segments = series.name.split('.');
@@ -72,30 +71,29 @@ function (_, TableModel) {
if (!series.tags) { return match; }
return series.tags[tag];
});
- };
+ }
- p.getAnnotations = function () {
+ getAnnotations() {
var list = [];
- var self = this;
- _.each(this.series, function (series) {
+ _.each(this.series, (series) => {
var titleCol = null;
var timeCol = null;
var tagsCol = [];
var textCol = null;
- _.each(series.columns, function(column, index) {
+ _.each(series.columns, (column, index) => {
if (column === 'time') { timeCol = index; return; }
if (column === 'sequence_number') { return; }
if (!titleCol) { titleCol = index; }
- if (column === self.annotation.titleColumn) { titleCol = index; return; }
- if (_.includes((self.annotation.tagsColumn || '').replace(' ', '').split(","), column)) { tagsCol.push(index); return; }
- if (column === self.annotation.textColumn) { textCol = index; return; }
+ if (column === this.annotation.titleColumn) { titleCol = index; return; }
+ if (_.includes((this.annotation.tagsColumn || '').replace(' ', '').split(","), column)) { tagsCol.push(index); return; }
+ if (column === this.annotation.textColumn) { textCol = index; return; }
});
- _.each(series.values, function (value) {
+ _.each(series.values, (value) => {
var data = {
- annotation: self.annotation,
+ annotation: this.annotation,
time: + new Date(value[timeCol]),
title: value[titleCol],
// Remove empty values, then split in different tags for comma separated values
@@ -108,18 +106,17 @@ function (_, TableModel) {
});
return list;
- };
+ }
- p.getTable = function() {
- var table = new TableModel.default();
- var self = this;
+ getTable() {
+ var table = new TableModel();
var i, j;
- if (self.series.length === 0) {
+ if (this.series.length === 0) {
return table;
}
- _.each(self.series, function(series, seriesIndex) {
+ _.each(this.series, (series, seriesIndex) => {
if (seriesIndex === 0) {
table.columns.push({text: 'Time', type: 'time'});
@@ -151,7 +148,11 @@ function (_, TableModel) {
});
return table;
- };
+ }
+}
+
+
+
+
+
- return InfluxSeries;
-});
diff --git a/public/app/plugins/datasource/influxdb/response_parser.ts b/public/app/plugins/datasource/influxdb/response_parser.ts
index 23173674361..d52a4e2d0fc 100644
--- a/public/app/plugins/datasource/influxdb/response_parser.ts
+++ b/public/app/plugins/datasource/influxdb/response_parser.ts
@@ -1,5 +1,3 @@
-///
-
import _ from 'lodash';
export default class ResponseParser {
diff --git a/public/app/plugins/datasource/influxdb/specs/influx_query_specs.ts b/public/app/plugins/datasource/influxdb/specs/influx_query.jest.ts
similarity index 73%
rename from public/app/plugins/datasource/influxdb/specs/influx_query_specs.ts
rename to public/app/plugins/datasource/influxdb/specs/influx_query.jest.ts
index 47ad3498ece..e576f2a7494 100644
--- a/public/app/plugins/datasource/influxdb/specs/influx_query_specs.ts
+++ b/public/app/plugins/datasource/influxdb/specs/influx_query.jest.ts
@@ -1,5 +1,3 @@
-import {describe, it, expect} from 'test/lib/common';
-
import InfluxQuery from '../influx_query';
describe('InfluxQuery', function() {
@@ -12,7 +10,7 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval) fill(null)');
+ expect(queryText).toBe('SELECT mean("value") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval) fill(null)');
});
});
@@ -24,7 +22,7 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") FROM "5m_avg"."cpu" WHERE $timeFilter GROUP BY time($__interval) fill(null)');
+ expect(queryText).toBe('SELECT mean("value") FROM "5m_avg"."cpu" WHERE $timeFilter GROUP BY time($__interval) fill(null)');
});
});
@@ -43,7 +41,7 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") /100 AS "text" FROM "cpu" WHERE $timeFilter GROUP BY time($__interval) fill(null)');
+ expect(queryText).toBe('SELECT mean("value") /100 AS "text" FROM "cpu" WHERE $timeFilter GROUP BY time($__interval) fill(null)');
});
});
@@ -57,7 +55,7 @@ describe('InfluxQuery', function() {
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE ("hostname" = \'server\\\\1\') AND $timeFilter'
+ expect(queryText).toBe('SELECT mean("value") FROM "cpu" WHERE ("hostname" = \'server\\\\1\') AND $timeFilter'
+ ' GROUP BY time($__interval)');
});
@@ -69,7 +67,7 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE ("app" =~ /e.*/) AND $timeFilter GROUP BY time($__interval)');
+ expect(queryText).toBe('SELECT mean("value") FROM "cpu" WHERE ("app" =~ /e.*/) AND $timeFilter GROUP BY time($__interval)');
});
});
@@ -82,7 +80,7 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE ("hostname" = \'server1\' AND "app" = \'email\') AND ' +
+ expect(queryText).toBe('SELECT mean("value") FROM "cpu" WHERE ("hostname" = \'server1\' AND "app" = \'email\') AND ' +
'$timeFilter GROUP BY time($__interval)');
});
});
@@ -96,7 +94,7 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE ("hostname" = \'server1\' OR "hostname" = \'server2\') AND ' +
+ expect(queryText).toBe('SELECT mean("value") FROM "cpu" WHERE ("hostname" = \'server1\' OR "hostname" = \'server2\') AND ' +
'$timeFilter GROUP BY time($__interval)');
});
});
@@ -110,7 +108,7 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE ("value" > 5) AND $timeFilter');
+ expect(queryText).toBe('SELECT mean("value") FROM "cpu" WHERE ("value" > 5) AND $timeFilter');
});
});
@@ -123,7 +121,7 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval), "host"');
+ expect(queryText).toBe('SELECT mean("value") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval), "host"');
});
});
@@ -135,7 +133,7 @@ describe('InfluxQuery', function() {
groupBy: [],
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT "value" FROM "cpu" WHERE $timeFilter');
+ expect(queryText).toBe('SELECT "value" FROM "cpu" WHERE $timeFilter');
});
});
@@ -147,7 +145,7 @@ describe('InfluxQuery', function() {
groupBy: [{type: 'time'}, {type: 'fill', params: ['0']}],
}, templateSrv, {});
var queryText = query.render();
- expect(queryText).to.be('SELECT "value" FROM "cpu" WHERE $timeFilter GROUP BY time($__interval) fill(0)');
+ expect(queryText).toBe('SELECT "value" FROM "cpu" WHERE $timeFilter GROUP BY time($__interval) fill(0)');
});
});
@@ -160,10 +158,10 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
query.addGroupBy('tag(host)');
- expect(query.target.groupBy.length).to.be(3);
- expect(query.target.groupBy[1].type).to.be('tag');
- expect(query.target.groupBy[1].params[0]).to.be('host');
- expect(query.target.groupBy[2].type).to.be('fill');
+ expect(query.target.groupBy.length).toBe(3);
+ expect(query.target.groupBy[1].type).toBe('tag');
+ expect(query.target.groupBy[1].params[0]).toBe('host');
+ expect(query.target.groupBy[2].type).toBe('fill');
});
it('should add tag last if no fill', function() {
@@ -173,8 +171,8 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
query.addGroupBy('tag(host)');
- expect(query.target.groupBy.length).to.be(1);
- expect(query.target.groupBy[0].type).to.be('tag');
+ expect(query.target.groupBy.length).toBe(1);
+ expect(query.target.groupBy[0].type).toBe('tag');
});
});
@@ -188,8 +186,8 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
query.addSelectPart(query.selectModels[0], 'mean');
- expect(query.target.select[0].length).to.be(2);
- expect(query.target.select[0][1].type).to.be('mean');
+ expect(query.target.select[0].length).toBe(2);
+ expect(query.target.select[0][1].type).toBe('mean');
});
it('should replace sum by mean', function() {
@@ -199,8 +197,8 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
query.addSelectPart(query.selectModels[0], 'sum');
- expect(query.target.select[0].length).to.be(2);
- expect(query.target.select[0][1].type).to.be('sum');
+ expect(query.target.select[0].length).toBe(2);
+ expect(query.target.select[0][1].type).toBe('sum');
});
it('should add math before alias', function() {
@@ -210,8 +208,8 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
query.addSelectPart(query.selectModels[0], 'math');
- expect(query.target.select[0].length).to.be(4);
- expect(query.target.select[0][2].type).to.be('math');
+ expect(query.target.select[0].length).toBe(4);
+ expect(query.target.select[0][2].type).toBe('math');
});
it('should add math last', function() {
@@ -221,8 +219,8 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
query.addSelectPart(query.selectModels[0], 'math');
- expect(query.target.select[0].length).to.be(3);
- expect(query.target.select[0][2].type).to.be('math');
+ expect(query.target.select[0].length).toBe(3);
+ expect(query.target.select[0][2].type).toBe('math');
});
it('should replace math', function() {
@@ -232,8 +230,8 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
query.addSelectPart(query.selectModels[0], 'math');
- expect(query.target.select[0].length).to.be(3);
- expect(query.target.select[0][2].type).to.be('math');
+ expect(query.target.select[0].length).toBe(3);
+ expect(query.target.select[0][2].type).toBe('math');
});
it('should add math when one only query part', function() {
@@ -243,8 +241,8 @@ describe('InfluxQuery', function() {
}, templateSrv, {});
query.addSelectPart(query.selectModels[0], 'math');
- expect(query.target.select[0].length).to.be(2);
- expect(query.target.select[0][1].type).to.be('math');
+ expect(query.target.select[0].length).toBe(2);
+ expect(query.target.select[0][1].type).toBe('math');
});
describe('when render adhoc filters', function() {
@@ -256,7 +254,7 @@ describe('InfluxQuery', function() {
{key: 'key2', operator: '!=', value: 'value2'},
]);
- expect(queryText).to.be('"key1" = \'value1\' AND "key2" != \'value2\'');
+ expect(queryText).toBe('"key1" = \'value1\' AND "key2" != \'value2\'');
});
});
diff --git a/public/app/plugins/datasource/influxdb/specs/influx_series_specs.ts b/public/app/plugins/datasource/influxdb/specs/influx_series.jest.ts
similarity index 66%
rename from public/app/plugins/datasource/influxdb/specs/influx_series_specs.ts
rename to public/app/plugins/datasource/influxdb/specs/influx_series.jest.ts
index ef0a742528f..99bfac107e7 100644
--- a/public/app/plugins/datasource/influxdb/specs/influx_series_specs.ts
+++ b/public/app/plugins/datasource/influxdb/specs/influx_series.jest.ts
@@ -1,4 +1,3 @@
-import {describe, it, expect} from 'test/lib/common';
import InfluxSeries from '../influx_series';
describe('when generating timeseries from influxdb response', function() {
@@ -19,24 +18,24 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var result = series.getTimeSeries();
- expect(result.length).to.be(3);
- expect(result[0].target).to.be('cpu.mean {app: test, server: server1}');
- expect(result[0].datapoints[0][0]).to.be(10);
- expect(result[0].datapoints[0][1]).to.be(1431946625000);
- expect(result[0].datapoints[1][0]).to.be(20);
- expect(result[0].datapoints[1][1]).to.be(1431946626000);
+ expect(result.length).toBe(3);
+ expect(result[0].target).toBe('cpu.mean {app: test, server: server1}');
+ expect(result[0].datapoints[0][0]).toBe(10);
+ expect(result[0].datapoints[0][1]).toBe(1431946625000);
+ expect(result[0].datapoints[1][0]).toBe(20);
+ expect(result[0].datapoints[1][1]).toBe(1431946626000);
- expect(result[1].target).to.be('cpu.max {app: test, server: server1}');
- expect(result[1].datapoints[0][0]).to.be(11);
- expect(result[1].datapoints[0][1]).to.be(1431946625000);
- expect(result[1].datapoints[1][0]).to.be(21);
- expect(result[1].datapoints[1][1]).to.be(1431946626000);
+ expect(result[1].target).toBe('cpu.max {app: test, server: server1}');
+ expect(result[1].datapoints[0][0]).toBe(11);
+ expect(result[1].datapoints[0][1]).toBe(1431946625000);
+ expect(result[1].datapoints[1][0]).toBe(21);
+ expect(result[1].datapoints[1][1]).toBe(1431946626000);
- expect(result[2].target).to.be('cpu.min {app: test, server: server1}');
- expect(result[2].datapoints[0][0]).to.be(9);
- expect(result[2].datapoints[0][1]).to.be(1431946625000);
- expect(result[2].datapoints[1][0]).to.be(19);
- expect(result[2].datapoints[1][1]).to.be(1431946626000);
+ expect(result[2].target).toBe('cpu.min {app: test, server: server1}');
+ expect(result[2].datapoints[0][0]).toBe(9);
+ expect(result[2].datapoints[0][1]).toBe(1431946625000);
+ expect(result[2].datapoints[1][0]).toBe(19);
+ expect(result[2].datapoints[1][1]).toBe(1431946626000);
});
});
@@ -47,9 +46,9 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var result = series.getTimeSeries();
- expect(result[0].target).to.be('new series');
- expect(result[1].target).to.be('new series');
- expect(result[2].target).to.be('new series');
+ expect(result[0].target).toBe('new series');
+ expect(result[1].target).toBe('new series');
+ expect(result[2].target).toBe('new series');
});
});
@@ -60,9 +59,9 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var result = series.getTimeSeries();
- expect(result[0].target).to.be('alias: cpu -> server1 (cpu)');
- expect(result[1].target).to.be('alias: cpu -> server1 (cpu)');
- expect(result[2].target).to.be('alias: cpu -> server1 (cpu)');
+ expect(result[0].target).toBe('alias: cpu -> server1 (cpu)');
+ expect(result[1].target).toBe('alias: cpu -> server1 (cpu)');
+ expect(result[2].target).toBe('alias: cpu -> server1 (cpu)');
});
});
@@ -90,8 +89,8 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var result = series.getTimeSeries();
- expect(result[0].target).to.be('cpu {app: test, server: server1}');
- expect(result[1].target).to.be('cpu {app: test2, server: server2}');
+ expect(result[0].target).toBe('cpu {app: test, server: server1}');
+ expect(result[1].target).toBe('cpu {app: test2, server: server2}');
});
});
@@ -122,18 +121,18 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var result = series.getTimeSeries();
- expect(result.length).to.be(2);
- expect(result[0].target).to.be('cpu.mean {app: test, server: server1}');
- expect(result[0].datapoints[0][0]).to.be(10);
- expect(result[0].datapoints[0][1]).to.be(1431946625000);
- expect(result[0].datapoints[1][0]).to.be(12);
- expect(result[0].datapoints[1][1]).to.be(1431946626000);
+ expect(result.length).toBe(2);
+ expect(result[0].target).toBe('cpu.mean {app: test, server: server1}');
+ expect(result[0].datapoints[0][0]).toBe(10);
+ expect(result[0].datapoints[0][1]).toBe(1431946625000);
+ expect(result[0].datapoints[1][0]).toBe(12);
+ expect(result[0].datapoints[1][1]).toBe(1431946626000);
- expect(result[1].target).to.be('cpu.mean {app: test2, server: server2}');
- expect(result[1].datapoints[0][0]).to.be(15);
- expect(result[1].datapoints[0][1]).to.be(1431946625000);
- expect(result[1].datapoints[1][0]).to.be(16);
- expect(result[1].datapoints[1][1]).to.be(1431946626000);
+ expect(result[1].target).toBe('cpu.mean {app: test2, server: server2}');
+ expect(result[1].datapoints[0][0]).toBe(15);
+ expect(result[1].datapoints[0][1]).toBe(1431946625000);
+ expect(result[1].datapoints[1][0]).toBe(16);
+ expect(result[1].datapoints[1][1]).toBe(1431946626000);
});
});
@@ -143,7 +142,7 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var result = series.getTimeSeries();
- expect(result[0].target).to.be('new series');
+ expect(result[0].target).toBe('new series');
});
});
@@ -154,8 +153,8 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var result = series.getTimeSeries();
- expect(result[0].target).to.be('alias: cpu -> server1 (cpu)');
- expect(result[1].target).to.be('alias: cpu -> server2 (cpu)');
+ expect(result[0].target).toBe('alias: cpu -> server1 (cpu)');
+ expect(result[1].target).toBe('alias: cpu -> server2 (cpu)');
});
});
@@ -180,7 +179,7 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var result = series.getTimeSeries();
- expect(result[0].target).to.be('alias: prod -> count');
+ expect(result[0].target).toBe('alias: prod -> count');
});
});
@@ -201,9 +200,9 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var table = series.getTable();
- expect(table.type).to.be('table');
- expect(table.columns.length).to.be(5);
- expect(table.rows[0]).to.eql([1431946625000, 'Africa', 'server2', 23, 10]);
+ expect(table.type).toBe('table');
+ expect(table.columns.length).toBe(5);
+ expect(table.rows[0]).toEqual([1431946625000, 'Africa', 'server2', 23, 10]);
});
});
@@ -228,7 +227,7 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var annotations = series.getAnnotations();
- expect(annotations[0].tags.length).to.be(0);
+ expect(annotations[0].tags.length).toBe(0);
});
});
@@ -254,9 +253,9 @@ describe('when generating timeseries from influxdb response', function() {
var series = new InfluxSeries(options);
var annotations = series.getAnnotations();
- expect(annotations[0].tags.length).to.be(2);
- expect(annotations[0].tags[0]).to.be('America');
- expect(annotations[0].tags[1]).to.be('backend');
+ expect(annotations[0].tags.length).toBe(2);
+ expect(annotations[0].tags[0]).toBe('America');
+ expect(annotations[0].tags[1]).toBe('backend');
});
});
});
diff --git a/public/app/plugins/datasource/influxdb/specs/query_part_specs.ts b/public/app/plugins/datasource/influxdb/specs/query_part.jest.ts
similarity index 58%
rename from public/app/plugins/datasource/influxdb/specs/query_part_specs.ts
rename to public/app/plugins/datasource/influxdb/specs/query_part.jest.ts
index 131eea80806..57017938063 100644
--- a/public/app/plugins/datasource/influxdb/specs/query_part_specs.ts
+++ b/public/app/plugins/datasource/influxdb/specs/query_part.jest.ts
@@ -1,6 +1,3 @@
-
-import {describe, it, expect} from 'test/lib/common';
-
import queryPart from '../query_part';
describe('InfluxQueryPart', () => {
@@ -12,8 +9,8 @@ describe('InfluxQueryPart', () => {
params: ['10s'],
});
- expect(part.text).to.be('derivative(10s)');
- expect(part.render('mean(value)')).to.be('derivative(mean(value), 10s)');
+ expect(part.text).toBe('derivative(10s)');
+ expect(part.render('mean(value)')).toBe('derivative(mean(value), 10s)');
});
it('should nest spread function', () => {
@@ -21,8 +18,8 @@ describe('InfluxQueryPart', () => {
type: 'spread'
});
- expect(part.text).to.be('spread()');
- expect(part.render('value')).to.be('spread(value)');
+ expect(part.text).toBe('spread()');
+ expect(part.render('value')).toBe('spread(value)');
});
it('should handle suffix parts', () => {
@@ -31,8 +28,8 @@ describe('InfluxQueryPart', () => {
params: ['/ 100'],
});
- expect(part.text).to.be('math(/ 100)');
- expect(part.render('mean(value)')).to.be('mean(value) / 100');
+ expect(part.text).toBe('math(/ 100)');
+ expect(part.render('mean(value)')).toBe('mean(value) / 100');
});
it('should handle alias parts', () => {
@@ -41,8 +38,8 @@ describe('InfluxQueryPart', () => {
params: ['test'],
});
- expect(part.text).to.be('alias(test)');
- expect(part.render('mean(value)')).to.be('mean(value) AS "test"');
+ expect(part.text).toBe('alias(test)');
+ expect(part.render('mean(value)')).toBe('mean(value) AS "test"');
});
});
diff --git a/public/app/plugins/datasource/influxdb/specs/response_parser_specs.ts b/public/app/plugins/datasource/influxdb/specs/response_parser.jest.ts
similarity index 76%
rename from public/app/plugins/datasource/influxdb/specs/response_parser_specs.ts
rename to public/app/plugins/datasource/influxdb/specs/response_parser.jest.ts
index b24baec8f89..45313e047d9 100644
--- a/public/app/plugins/datasource/influxdb/specs/response_parser_specs.ts
+++ b/public/app/plugins/datasource/influxdb/specs/response_parser.jest.ts
@@ -1,9 +1,10 @@
import _ from 'lodash';
-import {describe, it, expect} from 'test/lib/common';
import ResponseParser from '../response_parser';
-describe("influxdb response parser", () => {
- this.parser = new ResponseParser();
+describe('influxdb response parser', () => {
+
+ const parser = new ResponseParser();
+
describe("SHOW TAG response", () => {
var query = 'SHOW TAG KEYS FROM "cpu"';
var response = {
@@ -20,10 +21,10 @@ describe("influxdb response parser", () => {
]
};
- var result = this.parser.parse(query, response);
+ var result = parser.parse(query, response);
it("expects three results", () => {
- expect(_.size(result)).to.be(3);
+ expect(_.size(result)).toBe(3);
});
});
@@ -45,12 +46,12 @@ describe("influxdb response parser", () => {
]
};
- var result = this.parser.parse(query, response);
+ var result = parser.parse(query, response);
it("should get two responses", () => {
- expect(_.size(result)).to.be(2);
- expect(result[0].text).to.be("server1");
- expect(result[1].text).to.be("server2");
+ expect(_.size(result)).toBe(2);
+ expect(result[0].text).toBe("server1");
+ expect(result[1].text).toBe("server2");
});
});
@@ -80,13 +81,13 @@ describe("influxdb response parser", () => {
]
};
- var result = this.parser.parse(query, response);
+ var result = parser.parse(query, response);
it("should get two responses", () => {
- expect(_.size(result)).to.be(3);
- expect(result[0].text).to.be('site');
- expect(result[1].text).to.be('api');
- expect(result[2].text).to.be('webapi');
+ expect(_.size(result)).toBe(3);
+ expect(result[0].text).toBe('site');
+ expect(result[1].text).toBe('api');
+ expect(result[2].text).toBe('webapi');
});
});
});
@@ -110,9 +111,9 @@ describe("influxdb response parser", () => {
]
};
- var result = this.parser.parse(query, response);
+ var result = parser.parse(query, response);
it("should get two responses", () => {
- expect(_.size(result)).to.be(6);
+ expect(_.size(result)).toBe(6);
});
});
@@ -131,10 +132,10 @@ describe("influxdb response parser", () => {
]
};
- var result = this.parser.parse(query, response);
+ var result = parser.parse(query, response);
it("should get two responses", () => {
- expect(_.size(result)).to.be(1);
+ expect(_.size(result)).toBe(1);
});
});
});
diff --git a/public/app/plugins/datasource/prometheus/dashboards/prometheus_2_stats.json b/public/app/plugins/datasource/prometheus/dashboards/prometheus_2_stats.json
new file mode 100644
index 00000000000..6d6a1972d16
--- /dev/null
+++ b/public/app/plugins/datasource/prometheus/dashboards/prometheus_2_stats.json
@@ -0,0 +1,1237 @@
+{
+ "__inputs": [
+ {
+ "name": "DS_NAME",
+ "type": "datasource",
+ "pluginId": "prometheus",
+ "pluginName": "Prometheus"
+ }
+ ],
+ "annotations": {
+ "list": []
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 1,
+ "hideControls": false,
+ "id": null,
+ "links": [
+ {
+ "icon": "info",
+ "tags": [],
+ "targetBlank": true,
+ "title": "Grafana Docs",
+ "tooltip": "",
+ "type": "link",
+ "url": "http://docs.grafana.org/"
+ },
+ {
+ "icon": "info",
+ "tags": [],
+ "targetBlank": true,
+ "title": "Prometheus Docs",
+ "type": "link",
+ "url": "http://prometheus.io/docs/introduction/overview/"
+ }
+ ],
+ "refresh": "1m",
+ "revision": "1.0",
+ "rows": [
+ {
+ "collapse": false,
+ "height": "200",
+ "panels": [
+ {
+ "aliasColors": {
+ "prometheus": "#C15C17",
+ "{instance=\"localhost:9090\",job=\"prometheus\"}": "#CCA300"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid": {},
+ "id": 3,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 3,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(irate(prometheus_tsdb_head_samples_appended_total{job=\"prometheus\"}[5m]))",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "samples",
+ "metric": "",
+ "refId": "A",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Samples Appended",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid": {},
+ "id": 14,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 3,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "topk(5, max(scrape_duration_seconds) by (job))",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "{{job}}",
+ "metric": "",
+ "refId": "A",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Scrape Duration",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "s",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "description": "",
+ "fill": 0,
+ "id": 16,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 3,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(process_resident_memory_bytes{job=\"prometheus\"})",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "p8s process resident memory",
+ "refId": "D",
+ "step": 20
+ },
+ {
+ "expr": "process_virtual_memory_bytes{job=\"prometheus\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "virtual memory",
+ "refId": "C",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Profile",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "${DS_NAME}",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 37,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 3,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "tsdb_wal_corruptions_total{job=\"prometheus\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "0.1,1",
+ "title": "WAL Corruptions",
+ "type": "singlestat",
+ "valueFontSize": "200%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "None",
+ "value": "0"
+ }
+ ],
+ "valueName": "max"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "200",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "fill": 0,
+ "id": 29,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 3,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(prometheus_tsdb_head_active_appenders{job=\"prometheus\"})",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "active_appenders",
+ "metric": "",
+ "refId": "A",
+ "step": 20
+ },
+ {
+ "expr": "sum(process_open_fds{job=\"prometheus\"})",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "open_fds",
+ "refId": "B",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Active Appenders",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {
+ "prometheus": "#F9BA8F",
+ "{instance=\"localhost:9090\",interval=\"5s\",job=\"prometheus\"}": "#F9BA8F"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid": {},
+ "id": 2,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 3,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "prometheus_tsdb_blocks_loaded{job=\"prometheus\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "blocks",
+ "refId": "A",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Blocks Loaded",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "decimals": null,
+ "description": "",
+ "fill": 0,
+ "id": 33,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 3,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "prometheus_tsdb_head_chunks{job=\"prometheus\"}",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "chunks",
+ "refId": "A",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Head Chunks",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "bytes",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "fill": 1,
+ "id": 36,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "duration-p99",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "span": 3,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "prometheus_tsdb_head_gc_duration_seconds{job=\"prometheus\",quantile=\"0.99\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "duration-p99",
+ "refId": "A",
+ "step": 20
+ },
+ {
+ "expr": "irate(prometheus_tsdb_head_gc_duration_seconds_count{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "collections",
+ "refId": "B",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Head Block GC Activity",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "s",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": "200",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "decimals": null,
+ "description": "",
+ "fill": 0,
+ "id": 20,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "duration-p99",
+ "yaxis": 2
+ }
+ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "histogram_quantile(0.99, sum(rate(prometheus_tsdb_compaction_duration_bucket{job=\"prometheus\"}[5m])) by (le))",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "duration-{{p99}}",
+ "refId": "A",
+ "step": 20
+ },
+ {
+ "expr": "irate(prometheus_tsdb_compactions_total{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "compactions",
+ "refId": "B",
+ "step": 20
+ },
+ {
+ "expr": "irate(prometheus_tsdb_compactions_failed_total{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "failed",
+ "refId": "C",
+ "step": 20
+ },
+ {
+ "expr": "irate(prometheus_tsdb_compactions_triggered_total{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "triggered",
+ "refId": "D",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Compaction Activity",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "s",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "fill": 1,
+ "id": 32,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "rate(prometheus_tsdb_reloads_total{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "reloads",
+ "refId": "A",
+ "step": 20
+ },
+ {
+ "expr": "rate(prometheus_tsdb_reloads_failures_total{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "failures",
+ "refId": "B",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Reload Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "fill": 0,
+ "id": 38,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "prometheus_engine_query_duration_seconds{job=\"prometheus\", quantile=\"0.99\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{slice}}_p99",
+ "refId": "A",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Query Durations",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "New row",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "height": 250,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "decimals": null,
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid": {},
+ "id": 35,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": true,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "max(prometheus_evaluator_duration_seconds{job=\"prometheus\", quantile!=\"0.01\", quantile!=\"0.05\"}) by (quantile)",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "{{quantile}}",
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Rule Eval Duration",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "s",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "${DS_NAME}",
+ "fill": 1,
+ "id": 39,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 6,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "rate(prometheus_evaluator_iterations_missed_total{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "missed",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "rate(prometheus_evaluator_iterations_skipped_total{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "skipped",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "rate(prometheus_evaluator_iterations_total{job=\"prometheus\"}[5m])",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "iterations",
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Rule Eval Activity",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "Dashboard Row",
+ "titleSize": "h6"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "prometheus"
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-1h",
+ "to": "now"
+ },
+ "timepicker": {
+ "now": true,
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Prometheus 2.0 Stats",
+ "version": 19
+}
diff --git a/public/app/plugins/datasource/prometheus/plugin.json b/public/app/plugins/datasource/prometheus/plugin.json
index bd19462579b..cb1a024a1d9 100644
--- a/public/app/plugins/datasource/prometheus/plugin.json
+++ b/public/app/plugins/datasource/prometheus/plugin.json
@@ -5,6 +5,7 @@
"includes": [
{"type": "dashboard", "name": "Prometheus Stats", "path": "dashboards/prometheus_stats.json"},
+ {"type": "dashboard", "name": "Prometheus 2.0 Stats", "path": "dashboards/prometheus_2_stats.json"},
{"type": "dashboard", "name": "Grafana Stats", "path": "dashboards/grafana_stats.json"}
],
diff --git a/public/app/plugins/panel/graph/graph.ts b/public/app/plugins/panel/graph/graph.ts
index 82bad53164c..f8567d02fad 100755
--- a/public/app/plugins/panel/graph/graph.ts
+++ b/public/app/plugins/panel/graph/graph.ts
@@ -688,7 +688,14 @@ function graphDirective($rootScope, timeSrv, popoverSrv, contextSrv) {
}
elem.bind("plotselected", function (event, ranges) {
+ if (panel.xaxis.mode !== 'time') {
+ // Skip if panel in histogram or series mode
+ plot.clearSelection();
+ return;
+ }
+
if ((ranges.ctrlKey || ranges.metaKey) && contextSrv.isEditor) {
+ // Add annotation
setTimeout(() => {
eventManager.updateTime(ranges.xaxis);
}, 100);
@@ -703,6 +710,11 @@ function graphDirective($rootScope, timeSrv, popoverSrv, contextSrv) {
});
elem.bind("plotclick", function (event, pos, item) {
+ if (panel.xaxis.mode !== 'time') {
+ // Skip if panel in histogram or series mode
+ return;
+ }
+
if ((pos.ctrlKey || pos.metaKey) && contextSrv.isEditor) {
// Skip if range selected (added in "plotselected" event handler)
let isRangeSelection = pos.x !== pos.x1;
diff --git a/public/app/plugins/panel/singlestat/specs/singlestat_specs.ts b/public/app/plugins/panel/singlestat/specs/singlestat_specs.ts
index cf74cfbd150..e7ba5aa15a4 100644
--- a/public/app/plugins/panel/singlestat/specs/singlestat_specs.ts
+++ b/public/app/plugins/panel/singlestat/specs/singlestat_specs.ts
@@ -104,7 +104,7 @@ describe('SingleStatCtrl', function() {
});
it('should set formatted value', function() {
- expect(ctx.data.valueFormatted).to.be(moment(1505634997920).format('MM/DD/YYYY H:mm:ss a'));
+ expect(ctx.data.valueFormatted).to.be(moment(1505634997920).format('MM/DD/YYYY h:mm:ss a'));
});
});
diff --git a/public/sass/_variables.dark.scss b/public/sass/_variables.dark.scss
index 2bad240d49b..fd7674491c3 100644
--- a/public/sass/_variables.dark.scss
+++ b/public/sass/_variables.dark.scss
@@ -10,8 +10,8 @@ $black: #000;
// -------------------------
$black: #000;
$dark-1: #141414;
-$dark-2: #1f1d1d;
-$dark-3: #292929;
+$dark-2: #1f1f20;
+$dark-3: #262628;
$dark-4: #333333;
$dark-5: #444444;
$gray-1: #555555;
@@ -49,7 +49,7 @@ $critical: #ed2e18;
// Scaffolding
// -------------------------
-$body-bg: rgb(24,20,20);
+$body-bg: rgb(23,24,25);
$page-bg: $dark-2;
$body-color: $gray-4;
$text-color: $gray-4;
@@ -63,8 +63,8 @@ $text-shadow-faint: 1px 1px 4px rgb(45, 45, 45);
// gradients
$brand-gradient: linear-gradient(to right, rgba(255,213,0,0.7) 0%, rgba(255,68,0,0.7) 99%, rgba(255,68,0,0.7) 100%);
-$page-gradient: linear-gradient(180deg, rgb(36, 36, 36) 40px, rgba(178, 31, 31, 0.03) 100px, rgba(253, 187, 45, 0.03));
-$dashboard-gradient: linear-gradient(180deg, #242424 10px, rgba(15, 15, 15, 1) 100px, rgb(10, 10, 10));
+$page-gradient: linear-gradient(180deg, #222426 10px, rgba(15, 15, 16, .03) 100px, rgba(10, 10, 11, .03));
+$dashboard-gradient: linear-gradient(180deg, #222426 10px, rgba(15, 15, 16, 0.3) 100px, rgb(10, 10, 0.3));
// Links
// -------------------------
@@ -90,11 +90,11 @@ $component-active-bg: $brand-primary !default;
// Panel
// -------------------------
-$panel-bg: $dark-2;
-$panel-border-color: $dark-3;
+$panel-bg: #212124;
+$panel-border-color: $dark-1;
$panel-border: solid 1px $panel-border-color;
$panel-drop-zone-bg: repeating-linear-gradient(-128deg, #111, #111 10px, #191919 10px, #222 20px);
-$panel-header-hover-bg: $dark-3;
+$panel-header-hover-bg: $dark-4;
$panel-header-menu-hover-bg: $dark-5;
$divider-border-color: #555;
@@ -103,10 +103,10 @@ $divider-border-color: #555;
$tight-form-border: #050505;
$tight-form-bg: $dark-3;
-$tight-form-func-bg: #333;
-$tight-form-func-highlight-bg: #444;
+$tight-form-func-bg: #333334;
+$tight-form-func-highlight-bg: #444445;
-$modal-backdrop-bg: #3a4754;
+$modal-backdrop-bg: #353c42 ;
$code-tag-bg: $gray-1;
$code-tag-border: lighten($code-tag-bg, 2%);
@@ -295,8 +295,8 @@ $graph-tooltip-bg: $dark-1;
$checkboxImageUrl: '../img/checkbox.png';
// cards
-$card-background: linear-gradient(135deg, #2f2f2f, #262626);
-$card-background-hover: linear-gradient(135deg, #343434, #262626);
+$card-background: linear-gradient(135deg, #2f2f32, #262628);
+$card-background-hover: linear-gradient(135deg, #343436, #262628);
$card-shadow: -1px -1px 0 0 hsla(0, 0%, 100%, .1), 1px 1px 0 0 rgba(0, 0, 0, .3);
// info box
diff --git a/public/sass/_variables.light.scss b/public/sass/_variables.light.scss
index 4f3c70f3f60..9617aec1bf9 100644
--- a/public/sass/_variables.light.scss
+++ b/public/sass/_variables.light.scss
@@ -15,8 +15,8 @@ $black: #000;
// -------------------------
$black: #000;
$dark-1: #141414;
-$dark-2: #1f1d1d;
-$dark-3: #292929;
+$dark-2: #1d1d1f;
+$dark-3: #262628;
$dark-4: #373737;
$dark-5: #444444;
$gray-1: #555555;
diff --git a/public/sass/components/_panel_graph.scss b/public/sass/components/_panel_graph.scss
index 247ed1e94cc..c92e5a0d3d0 100644
--- a/public/sass/components/_panel_graph.scss
+++ b/public/sass/components/_panel_graph.scss
@@ -280,7 +280,7 @@
.graph-annotation__header {
background-color: $popover-border-color;
- padding: 0.40rem 0.65rem;
+ padding: 6px 10px;
display: flex;
}
diff --git a/public/sass/components/_tabbed_view.scss b/public/sass/components/_tabbed_view.scss
index 1a2f6eaa6ae..c1bc8455205 100644
--- a/public/sass/components/_tabbed_view.scss
+++ b/public/sass/components/_tabbed_view.scss
@@ -8,13 +8,6 @@
.tabbed-view-header {
padding: 1.5em 1rem 0 1rem;
}
-
- .gf-tabs-link.active {
- background-color: $panel-bg;
- }
- .tabbed-view-body {
- min-height: 200px;
- }
}
}
diff --git a/public/sass/components/_tabs.scss b/public/sass/components/_tabs.scss
index 32e395c4d73..6aebf846450 100644
--- a/public/sass/components/_tabs.scss
+++ b/public/sass/components/_tabs.scss
@@ -62,7 +62,7 @@
&.active:focus {
@include border-radius(3px);
border-color: rgba(216, 131, 40, 0.77);
- border-bottom: 2px solid $panel-bg;
+ border-bottom: 1px solid $page-bg;
color: $link-color;
position: relative;
top: 1px;
diff --git a/public/sass/pages/_dashboard.scss b/public/sass/pages/_dashboard.scss
index c278bdf0437..766a900ae31 100644
--- a/public/sass/pages/_dashboard.scss
+++ b/public/sass/pages/_dashboard.scss
@@ -2,7 +2,7 @@
padding: $dashboard-padding;
width: 100%;
min-height: 100%;
- background: $dashboard-gradient;
+ // background: $dashboard-gradient;
}
.template-variable {