Bläddra i källkod

revert prometheus link

Mitsuhiro Tanda 10 år sedan
förälder
incheckning
fcaecf4782

+ 1 - 0
public/app/plugins/datasource/prometheus/datasource.js

@@ -21,6 +21,7 @@ function (angular, _, moment, dateMath) {
       this.name = datasource.name;
       this.supportMetrics = true;
       this.url = datasource.url;
+      this.directUrl = datasource.directUrl;
       this.basicAuth = datasource.basicAuth;
       this.lastErrors = {};
     }

+ 5 - 0
public/app/plugins/datasource/prometheus/partials/query.editor.html

@@ -110,6 +110,11 @@
              ng-change="refreshMetricData()">
       </select>
     </li>
+    <li class="tight-form-item">
+      <a href="{{target.prometheusLink}}" target="_blank" bs-tooltip="'Link to Graph in Prometheus'">
+        <i class="fa fa-share-square-o"></i>
+      </a>
+    </li>
   </ul>
 
   <div class="clearfix"></div>

+ 17 - 0
public/app/plugins/datasource/prometheus/query_ctrl.js

@@ -14,6 +14,7 @@ function (angular, _) {
 
       target.expr = target.expr || '';
       target.intervalFactor = target.intervalFactor || 2;
+      target.prometheusLink = $scope.linkToPrometheus();
 
       $scope.metric = '';
       $scope.resolutions = _.map([1,2,3,4,5,10], function(f) {
@@ -27,6 +28,7 @@ function (angular, _) {
     };
 
     $scope.refreshMetricData = function() {
+      $scope.target.prometheusLink = $scope.linkToPrometheus();
       if (!_.isEqual($scope.oldTarget, $scope.target)) {
         $scope.oldTarget = angular.copy($scope.target);
         $scope.get_data();
@@ -44,6 +46,21 @@ function (angular, _) {
         .then(callback);
     };
 
+    $scope.linkToPrometheus = function() {
+      var range = Math.ceil(($scope.range.to.valueOf() - $scope.range.from.valueOf()) / 1000);
+      var endTime = $scope.range.to.utc().format('YYYY-MM-DD HH:MM');
+      var expr = {
+        expr: $scope.target.expr,
+        range_input: range + 's',
+        end_input: endTime,
+        step_input: '',
+        stacked: $scope.panel.stack,
+        tab: 0
+      };
+      var hash = encodeURIComponent(JSON.stringify([expr]));
+      return $scope.datasource.directUrl + '/graph#' + hash;
+    };
+
     $scope.init();
   });