Quellcode durchsuchen

Adds stackdriver frontend skeleton

Erik Sundell vor 7 Jahren
Ursprung
Commit
f0f19e0c03

+ 11 - 0
public/app/plugins/datasource/stackdriver/config_ctrl.ts

@@ -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 - 0
public/app/plugins/datasource/stackdriver/datasource.ts

@@ -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 - 0
public/app/plugins/datasource/stackdriver/module.ts

@@ -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,
+};

+ 13 - 0
public/app/plugins/datasource/stackdriver/partials/annotations.editor.html

@@ -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>

+ 6 - 0
public/app/plugins/datasource/stackdriver/partials/config.html

@@ -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 - 0
public/app/plugins/datasource/stackdriver/partials/query.editor.html

@@ -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 - 0
public/app/plugins/datasource/stackdriver/plugin.json

@@ -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 - 0
public/app/plugins/datasource/stackdriver/query_ctrl.ts

@@ -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);
+  }
+}