mirror of
https://github.com/grafana/grafana.git
synced 2025-01-24 23:37:01 -06:00
Adds stackdriver frontend skeleton
This commit is contained in:
parent
0e9a6dcedc
commit
f0f19e0c03
11
public/app/plugins/datasource/stackdriver/config_ctrl.ts
Normal file
11
public/app/plugins/datasource/stackdriver/config_ctrl.ts
Normal file
@ -0,0 +1,11 @@
|
||||
export class StackdriverConfigCtrl {
|
||||
static templateUrl = 'public/app/plugins/datasource/stackdriver/partials/config.html';
|
||||
datasourceSrv: any;
|
||||
current: any;
|
||||
|
||||
/** @ngInject */
|
||||
constructor($scope, datasourceSrv) {
|
||||
this.datasourceSrv = datasourceSrv;
|
||||
this.current.jsonData = this.current.jsonData || {};
|
||||
}
|
||||
}
|
13
public/app/plugins/datasource/stackdriver/datasource.ts
Normal file
13
public/app/plugins/datasource/stackdriver/datasource.ts
Normal file
@ -0,0 +1,13 @@
|
||||
/** @ngInject */
|
||||
export function StackdriverDatasource(this: any, instanceSettings, $q, backendSrv, templateSrv) {
|
||||
// this.basicAuth = instanceSettings.basicAuth;
|
||||
// this.url = instanceSettings.url;
|
||||
// this.name = instanceSettings.name;
|
||||
// this.graphiteVersion = instanceSettings.jsonData.graphiteVersion || '0.9';
|
||||
// this.supportsTags = supportsTags(this.graphiteVersion);
|
||||
// this.cacheTimeout = instanceSettings.cacheTimeout;
|
||||
// this.withCredentials = instanceSettings.withCredentials;
|
||||
// this.render_method = instanceSettings.render_method || 'POST';
|
||||
// this.funcDefs = null;
|
||||
// this.funcDefsPromise = null;
|
||||
}
|
14
public/app/plugins/datasource/stackdriver/module.ts
Normal file
14
public/app/plugins/datasource/stackdriver/module.ts
Normal file
@ -0,0 +1,14 @@
|
||||
// import { StackdriverDatasource } from './datasource';
|
||||
// import { StackdriverQueryCtrl } from './query_ctrl';
|
||||
import { StackdriverConfigCtrl } from './config_ctrl';
|
||||
|
||||
// class AnnotationsQueryCtrl {
|
||||
// static templateUrl = 'partials/annotations.editor.html';
|
||||
// }
|
||||
|
||||
export {
|
||||
// StackdriverDatasource as Datasource,
|
||||
// StackdriverQueryCtrl as QueryCtrl,
|
||||
StackdriverConfigCtrl as ConfigCtrl,
|
||||
// AnnotationsQueryCtrl,
|
||||
};
|
@ -0,0 +1,13 @@
|
||||
<div class="gf-form-group">
|
||||
<div class="gf-form">
|
||||
<span class="gf-form-label width-12">Graphite query</span>
|
||||
<input type="text" class="gf-form-input" ng-model='ctrl.annotation.target' placeholder="Example: statsd.application.counters.*.count"></input>
|
||||
</div>
|
||||
|
||||
<h5 class="section-heading">Or</h5>
|
||||
|
||||
<div class="gf-form">
|
||||
<span class="gf-form-label width-12">Graphite events tags</span>
|
||||
<input type="text" class="gf-form-input" ng-model='ctrl.annotation.tags' placeholder="Example: event_tag_name"></input>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,6 @@
|
||||
<datasource-http-settings
|
||||
current="ctrl.current"
|
||||
suggest-url="http://localhost:8080">
|
||||
</datasource-http-settings>
|
||||
|
||||
<h3 class="page-heading">Hello Stackdriver</h3>
|
81
public/app/plugins/datasource/stackdriver/partials/query.editor.html
Executable file
81
public/app/plugins/datasource/stackdriver/partials/query.editor.html
Executable file
@ -0,0 +1,81 @@
|
||||
<query-editor-row query-ctrl="ctrl" has-text-edit-mode="true">
|
||||
|
||||
<div class="gf-form" ng-show="ctrl.target.textEditor">
|
||||
<input type="text" class="gf-form-input" ng-model="ctrl.target.target" spellcheck="false" ng-blur="ctrl.targetTextChanged()"></input>
|
||||
</div>
|
||||
|
||||
<div ng-hide="ctrl.target.textEditor">
|
||||
<div class="gf-form-inline">
|
||||
<div class="gf-form">
|
||||
<label class="gf-form-label width-6 query-keyword">Series</label>
|
||||
</div>
|
||||
|
||||
<div ng-if="ctrl.queryModel.seriesByTagUsed" ng-repeat="tag in ctrl.queryModel.tags" class="gf-form">
|
||||
<gf-form-dropdown
|
||||
model="tag.key"
|
||||
allow-custom="true"
|
||||
label-mode="true"
|
||||
debounce="true"
|
||||
placeholder="Tag key"
|
||||
css-class="query-segment-key"
|
||||
get-options="ctrl.getTags($index, $query)"
|
||||
on-change="ctrl.tagChanged(tag, $index)"
|
||||
/>
|
||||
<gf-form-dropdown
|
||||
model="tag.operator"
|
||||
label-mode="true"
|
||||
css-class="query-segment-operator"
|
||||
get-options="ctrl.getTagOperators()"
|
||||
on-change="ctrl.tagChanged(tag, $index)"
|
||||
min-input-width="30"
|
||||
/>
|
||||
<gf-form-dropdown
|
||||
model="tag.value"
|
||||
allow-custom="true"
|
||||
label-mode="true"
|
||||
debounce="true"
|
||||
css-class="query-segment-value"
|
||||
placeholder="Tag value"
|
||||
get-options="ctrl.getTagValues(tag, $index, $query)"
|
||||
on-change="ctrl.tagChanged(tag, $index)"
|
||||
/>
|
||||
<label class="gf-form-label query-keyword" ng-if="ctrl.showDelimiter($index)">AND</label>
|
||||
</div>
|
||||
|
||||
<div ng-if="ctrl.queryModel.seriesByTagUsed" ng-repeat="segment in ctrl.addTagSegments" role="menuitem" class="gf-form">
|
||||
<metric-segment segment="segment" get-options="ctrl.getTagsAsSegments($query)" on-change="ctrl.addNewTag(segment)" debounce="true" />
|
||||
</div>
|
||||
|
||||
<div ng-if="!ctrl.queryModel.seriesByTagUsed" ng-repeat="segment in ctrl.segments" role="menuitem" class="gf-form">
|
||||
<metric-segment segment="segment" get-options="ctrl.getAltSegments($index, $query)" on-change="ctrl.segmentValueChanged(segment, $index)" />
|
||||
</div>
|
||||
|
||||
<div ng-if="ctrl.paused" class="gf-form">
|
||||
<a ng-click="ctrl.unpause()" class="gf-form-label query-part"><i class="fa fa-play"></i></a>
|
||||
</div>
|
||||
|
||||
<div class="gf-form gf-form--grow">
|
||||
<div class="gf-form-label gf-form-label--grow"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="gf-form-inline">
|
||||
<div class="gf-form">
|
||||
<label class="gf-form-label width-6 query-keyword">Functions</label>
|
||||
</div>
|
||||
|
||||
<div ng-repeat="func in ctrl.queryModel.functions" class="gf-form">
|
||||
<span graphite-func-editor class="gf-form-label query-part" ng-hide="func.hidden"></span>
|
||||
</div>
|
||||
|
||||
<div class="gf-form dropdown">
|
||||
<span graphite-add-func></span>
|
||||
</div>
|
||||
|
||||
<div class="gf-form gf-form--grow">
|
||||
<div class="gf-form-label gf-form-label--grow"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</query-editor-row>
|
16
public/app/plugins/datasource/stackdriver/plugin.json
Normal file
16
public/app/plugins/datasource/stackdriver/plugin.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "Stackdriver",
|
||||
"type": "datasource",
|
||||
"id": "stackdriver",
|
||||
"metrics": true,
|
||||
"alerting": false,
|
||||
"annotations": false,
|
||||
"queryOptions": {
|
||||
"maxDataPoints": true,
|
||||
"cacheTimeout": true
|
||||
},
|
||||
"info": {
|
||||
"description": "Data Source for Stackdriver",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
}
|
11
public/app/plugins/datasource/stackdriver/query_ctrl.ts
Normal file
11
public/app/plugins/datasource/stackdriver/query_ctrl.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import './add_graphite_func';
|
||||
import './func_editor';
|
||||
import { QueryCtrl } from 'app/plugins/sdk';
|
||||
|
||||
export class StackdriverQueryCtrl extends QueryCtrl {
|
||||
static templateUrl = 'partials/query.editor.html';
|
||||
/** @ngInject */
|
||||
constructor($scope, $injector) {
|
||||
super($scope, $injector);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user