diff --git a/src/app/partials/graphite/annotation_editor.html b/src/app/partials/graphite/annotation_editor.html
index dc763cc8f12..c5e4a98a84c 100644
--- a/src/app/partials/graphite/annotation_editor.html
+++ b/src/app/partials/graphite/annotation_editor.html
@@ -1,14 +1,14 @@
-
+
diff --git a/src/app/services/annotationsSrv.js b/src/app/services/annotationsSrv.js
index 7c51f45fdb1..958df500db5 100644
--- a/src/app/services/annotationsSrv.js
+++ b/src/app/services/annotationsSrv.js
@@ -54,86 +54,11 @@ define([
}
};
- this.getGraphiteEvents = function(rangeUnparsed) {
- var annotations = this.getAnnotationsByType('graphite events');
- if (annotations.length === 0) {
- return [];
- }
-
- var promises = _.map(annotations, function(annotation) {
-
- return datasourceSrv.default.events({ range: rangeUnparsed, tags: annotation.tags })
- .then(function(results) {
- _.each(results.data, function (event) {
- addAnnotation({
- annotation: annotation,
- time: event.when * 1000,
- description: event.what,
- tags: event.tags,
- data: event.data
- });
- });
- })
- .then(null, errorHandler);
- });
-
- return promises;
- };
-
- this.getAnnotationsByType = function(type) {
- return _.where(annotationPanel.annotations, {
- type: type,
- enable: true
- });
- };
-
- this.getGraphiteMetrics = function(filterSrv, rangeUnparsed) {
- var annotations = this.getAnnotationsByType('graphite metric');
- if (annotations.length === 0) {
- return [];
- }
-
- var promises = _.map(annotations, function(annotation) {
- var graphiteQuery = {
- range: rangeUnparsed,
- targets: [{ target: annotation.target }],
- format: 'json',
- maxDataPoints: 100
- };
-
- var receiveFunc = _.partial(receiveGraphiteMetrics, annotation);
-
- return datasourceSrv.default.query(filterSrv, graphiteQuery)
- .then(receiveFunc)
- .then(null, errorHandler);
- });
-
- return promises;
- };
-
function errorHandler(err) {
console.log('Annotation error: ', err);
alertSrv.set('Annotations','Could not fetch annotations','error');
}
- function receiveGraphiteMetrics(annotation, results) {
- for (var i = 0; i < results.data.length; i++) {
- var target = results.data[i];
-
- for (var y = 0; y < target.datapoints.length; y++) {
- var datapoint = target.datapoints[y];
-
- if (datapoint[0]) {
- addAnnotation({
- annotation: annotation,
- time: datapoint[1] * 1000,
- description: target.target
- });
- }
- }
- }
- }
-
function addAnnotation(options) {
var tooltip = "
" + options.title + "
";
if (options.tags) {
diff --git a/src/app/services/graphite/graphiteDatasource.js b/src/app/services/graphite/graphiteDatasource.js
index 4a8ac8f53f5..00c7752c0c6 100644
--- a/src/app/services/graphite/graphiteDatasource.js
+++ b/src/app/services/graphite/graphiteDatasource.js
@@ -58,34 +58,54 @@ function (angular, _, $, config, kbn, moment) {
};
GraphiteDatasource.prototype.annotationQuery = function(annotation, filterSrv, rangeUnparsed) {
- var graphiteQuery = {
- range: rangeUnparsed,
- targets: [{ target: annotation.target }],
- format: 'json',
- maxDataPoints: 100
- };
+ // Graphite metric as annotation
+ if (annotation.target) {
+ var graphiteQuery = {
+ range: rangeUnparsed,
+ targets: [{ target: annotation.target }],
+ format: 'json',
+ maxDataPoints: 100
+ };
- return this.query(filterSrv, graphiteQuery)
- .then(function(result) {
- var list = [];
+ return this.query(filterSrv, graphiteQuery)
+ .then(function(result) {
+ var list = [];
- for (var i = 0; i < result.data.length; i++) {
- var target = result.data[i];
+ for (var i = 0; i < result.data.length; i++) {
+ var target = result.data[i];
- for (var y = 0; y < target.datapoints.length; y++) {
- var datapoint = target.datapoints[y];
- if (!datapoint[0]) { continue; }
+ for (var y = 0; y < target.datapoints.length; y++) {
+ var datapoint = target.datapoints[y];
+ if (!datapoint[0]) { continue; }
+ list.push({
+ annotation: annotation,
+ time: datapoint[1] * 1000,
+ title: target.target
+ });
+ }
+ }
+
+ return list;
+ });
+ }
+ // Graphite event as annotation
+ else if (annotation.tags) {
+ return this.events({ range: rangeUnparsed, tags: annotation.tags })
+ .then(function(results) {
+ var list = [];
+ for (var i = 0; i < results.data; i++) {
list.push({
annotation: annotation,
- time: datapoint[1] * 1000,
- title: target.target
+ time: event.when * 1000,
+ title: event.what,
+ tags: event.tags,
+ text: event.data
});
}
- }
-
- return list;
- });
+ return list;
+ });
+ }
};
GraphiteDatasource.prototype.events = function(options) {