Explorar el Código

Merge branch 'master' into alerting

Torkel Ödegaard hace 9 años
padre
commit
8878a55dc6

+ 13 - 0
docs/sources/installation/mac.md

@@ -24,4 +24,17 @@ brew update
 brew reinstall grafana
 ```
 
+-------------
 
+You can also install the latest unstable grafana from git:
+
+
+```
+brew install --HEAD grafana/grafana/grafana
+```
+
+To upgrade grafana if you've installed from HEAD:
+
+```
+brew reinstall --HEAD grafana/grafana/grafana
+```

+ 1 - 1
docs/sources/plugins/installation.md

@@ -9,7 +9,7 @@ page_keywords: grafana, plugins, documentation
 The easiest way to install plugins is by using the CLI tool grafana-cli which is bundled with grafana. Before any modification take place after modifying plugins, grafana-server needs to be restarted.
 
 ### Grafana plugin directory
-On Linux systems the grafana-cli will assume that the grafana plugin directory is `/var/lib/grafana/plugins`. It's possible to override the directory which grafana-cli will operate on by specifying the --path flag. On Windows systems this parameter have to be specified for every call.
+On Linux systems the grafana-cli will assume that the grafana plugin directory is `/var/lib/grafana/plugins`. It's possible to override the directory which grafana-cli will operate on by specifying the --pluginsDir flag. On Windows systems this parameter have to be specified for every call.
 
 ### Grafana-cli commands
 

+ 26 - 0
packaging/mac/bin/grafana

@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+DAEMON=grafana-server
+EXECUTABLE=/usr/local/bin/grafana-server
+CONFIG=/usr/local/etc/grafana/grafana.ini
+HOMEPATH=/usr/local/share/grafana
+LOGPATH=/usr/local/var/log/grafana
+DATAPATH=/usr/local/var/lib/grafana
+PLUGINPATH=/usr/local/var/lib/grafana/plugins
+
+case "$1" in
+start)
+  $EXECUTABLE --config=$CONFIG --homepath=$HOMEPATH cfg:default.paths.logs=$LOGPATH cfg:default.paths.data=$DATAPATH cfg:default.paths.plugins=$PLUGINPATH 2> /dev/null &
+  [ $? -eq 0 ] && echo "$DAEMON started"
+;;
+stop)
+  killall $DAEMON
+  [ $? -eq 0 ] && echo "$DAEMON stopped"
+;;
+restart)
+  $0 stop
+  $0 start
+;;
+*)
+  echo "Usage: $0 (start|stop|restart)"
+;;
+esac

+ 11 - 0
public/app/core/services/alert_srv.ts

@@ -27,10 +27,21 @@ export class AlertSrv {
       this.set(alert[0], alert[1], 'success', 3000);
     }, this.$rootScope);
 
+    appEvents.on('alert-error', options => {
+      this.set(options[0], options[1], 'error', 7000);
+    });
+
     appEvents.on('confirm-modal', this.showConfirmModal.bind(this));
   }
 
   set(title, text, severity, timeout) {
+    if (_.isObject(text)) {
+      console.log('alert error', text);
+      if (text.statusText) {
+        text = `HTTP Error (${text.status}) ${text.statusText}`;
+      }
+    }
+
     var newAlert = {
       title: title || '',
       text: text || '',

+ 1 - 1
public/app/features/dashboard/dashnav/dashnav.ts

@@ -209,7 +209,7 @@ export class DashNavCtrl {
     $scope.viewJson = function() {
       var clone = $scope.dashboard.getSaveModelClone();
       var html = angular.toJson(clone, true);
-      var uri = "data:application/json," + encodeURIComponent(html);
+      var uri = "data:application/json;charset=utf-8," + encodeURIComponent(html);
       var newWindow = window.open(uri);
     };
 

+ 3 - 2
public/app/plugins/datasource/graphite/query_ctrl.ts

@@ -9,6 +9,7 @@ import moment from 'moment';
 import gfunc from './gfunc';
 import {Parser} from './parser';
 import {QueryCtrl} from 'app/plugins/sdk';
+import appEvents from 'app/core/app_events';
 
 export class GraphiteQueryCtrl extends QueryCtrl {
   static templateUrl = 'partials/query.editor.html';
@@ -141,7 +142,7 @@ export class GraphiteQueryCtrl extends QueryCtrl {
         }
       }
     }).catch(err => {
-      this.error = err.message || 'Failed to issue metric query';
+      appEvents.emit('alert-error', ['Error', err]);
     });
   }
 
@@ -178,7 +179,7 @@ export class GraphiteQueryCtrl extends QueryCtrl {
       altSegments.unshift(this.uiSegmentSrv.newSegment('*'));
       return altSegments;
     }).catch(err => {
-      this.error = err.message || 'Failed to issue metric query';
+      appEvents.emit('alert-error', ['Error', err]);
       return [];
     });
   }