mirror of https://github.com/grafana/grafana
parent
0e9a6dcedc
commit
f0f19e0c03
@ -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 || {}; |
||||
} |
||||
} |
||||
@ -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;
|
||||
} |
||||
@ -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> |
||||
@ -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> |
||||
@ -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" |
||||
} |
||||
} |
||||
@ -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