Commit 8878a55d by Torkel Ödegaard

Merge branch 'master' into alerting

parents 95c1a4a9 da6ac07b
......@@ -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
```
......@@ -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
......
#!/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
......@@ -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 || '',
......
......@@ -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);
};
......
......@@ -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 [];
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment