From 1ecdf3493864e5484bd5955c5a89567fa0d6e9bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Wed, 29 Mar 2017 20:43:20 +0200 Subject: [PATCH] sql: wip mysql stuff --- public/app/plugins/datasource/mysql/README.md | 3 ++ .../plugins/datasource/mysql/datasource.ts | 43 +++++++++++++++++++ public/app/plugins/datasource/mysql/module.ts | 16 +++++++ .../mysql/partials/annotations.editor.html | 20 +++++++++ .../mysql/partials/query.editor.html | 7 +++ .../app/plugins/datasource/mysql/plugin.json | 8 ++++ 6 files changed, 97 insertions(+) create mode 100644 public/app/plugins/datasource/mysql/README.md create mode 100644 public/app/plugins/datasource/mysql/datasource.ts create mode 100644 public/app/plugins/datasource/mysql/module.ts create mode 100644 public/app/plugins/datasource/mysql/partials/annotations.editor.html create mode 100644 public/app/plugins/datasource/mysql/partials/query.editor.html create mode 100644 public/app/plugins/datasource/mysql/plugin.json diff --git a/public/app/plugins/datasource/mysql/README.md b/public/app/plugins/datasource/mysql/README.md new file mode 100644 index 00000000000..a8319c8dec5 --- /dev/null +++ b/public/app/plugins/datasource/mysql/README.md @@ -0,0 +1,3 @@ +# Grafana Fake Data Datasource - Native Plugin + +This is the built in Fake Data Datasource that is used before any datasources are set up in your Grafana installation. It means you can create a graph without any data and still get an idea of what it would look like. diff --git a/public/app/plugins/datasource/mysql/datasource.ts b/public/app/plugins/datasource/mysql/datasource.ts new file mode 100644 index 00000000000..385ebee43f3 --- /dev/null +++ b/public/app/plugins/datasource/mysql/datasource.ts @@ -0,0 +1,43 @@ +/// + +import _ from 'lodash'; + +export class MysqlDatasource { + + /** @ngInject */ + constructor(private instanceSettings, private backendSrv) { + } + + query(options) { + console.log('test'); + console.log(this.instanceSettings); + return this.backendSrv.post('/api/tsdb/query', { + from: options.range.from.valueOf().toString(), + to: options.range.to.valueOf().toString(), + queries: [ + { + "refId": "A", + "scenarioId": "random_walk", + "intervalMs": options.intervalMs, + "maxDataPoints": options.maxDataPoints, + } + ] + }).then(res => { + + var data = []; + if (res.results) { + _.forEach(res.results, queryRes => { + for (let series of queryRes.series) { + data.push({ + target: series.name, + datapoints: series.points + }); + } + }); + } + + return {data: data}; + }); + } +} + diff --git a/public/app/plugins/datasource/mysql/module.ts b/public/app/plugins/datasource/mysql/module.ts new file mode 100644 index 00000000000..40136e6235d --- /dev/null +++ b/public/app/plugins/datasource/mysql/module.ts @@ -0,0 +1,16 @@ +/// + +import angular from 'angular'; +import {MysqlDatasource} from './datasource'; +import {QueryCtrl} from 'app/plugins/sdk'; + +class MysqlQueryCtrl extends QueryCtrl { + static templateUrl = 'partials/query.editor.html'; +} + +export { + MysqlDatasource, + MysqlDatasource as Datasource, + MysqlQueryCtrl as QueryCtrl, +}; + diff --git a/public/app/plugins/datasource/mysql/partials/annotations.editor.html b/public/app/plugins/datasource/mysql/partials/annotations.editor.html new file mode 100644 index 00000000000..54e21ac902e --- /dev/null +++ b/public/app/plugins/datasource/mysql/partials/annotations.editor.html @@ -0,0 +1,20 @@ + +
+
Filters
+
+
+ Type +
+ +
+
+
+ Max limit +
+ +
+
+
+
diff --git a/public/app/plugins/datasource/mysql/partials/query.editor.html b/public/app/plugins/datasource/mysql/partials/query.editor.html new file mode 100644 index 00000000000..880402573d5 --- /dev/null +++ b/public/app/plugins/datasource/mysql/partials/query.editor.html @@ -0,0 +1,7 @@ + +
+
+ +
+
+
diff --git a/public/app/plugins/datasource/mysql/plugin.json b/public/app/plugins/datasource/mysql/plugin.json new file mode 100644 index 00000000000..51e8988c7fd --- /dev/null +++ b/public/app/plugins/datasource/mysql/plugin.json @@ -0,0 +1,8 @@ +{ + "type": "datasource", + "name": "MySQL", + "id": "mysql", + + "annotations": true, + "metrics": true +}