iss #71 - Able to use regex for extracting a part of the text value.

This commit is contained in:
Alexander Zobnin
2015-08-19 20:25:59 +03:00
parent 1f6ecd5aed
commit 530a833844
2 changed files with 46 additions and 7 deletions

View File

@@ -218,7 +218,22 @@ function (angular, _, kbn) {
return { return {
target: target.item.name, target: target.item.name,
datapoints: _.map(history, function (p) { datapoints: _.map(history, function (p) {
return [p.value, p.clock * 1000]; var value = p.value;
if (target.textFilter) {
var text_extract_pattern = new RegExp(templateSrv.replace(target.textFilter, options.scopedVars));
//var text_extract_pattern = new RegExp(target.textFilter);
var result = text_extract_pattern.exec(value);
if (result) {
if (target.useCaptureGroups) {
value = result[1];
} else {
value = result[0];
}
} else {
value = null;
}
}
return [value, p.clock * 1000];
}) })
}; };
}); });

View File

@@ -21,14 +21,14 @@
<a class="pointer" tabindex="1" <a class="pointer" tabindex="1"
ng-click="switchEditorMode(0)">Numeric metrics</a> ng-click="switchEditorMode(0)">Numeric metrics</a>
</li> </li>
<li role="menuitem" ng-show="target.mode != 1">
<a class="pointer" tabindex="1"
ng-click="switchEditorMode(1)">IT services</a>
</li>
<li role="menuitem" ng-show="target.mode != 2"> <li role="menuitem" ng-show="target.mode != 2">
<a class="pointer" tabindex="1" <a class="pointer" tabindex="1"
ng-click="switchEditorMode(2)">Text metrics</a> ng-click="switchEditorMode(2)">Text metrics</a>
</li> </li>
<li role="menuitem" ng-show="target.mode != 1">
<a class="pointer" tabindex="1"
ng-click="switchEditorMode(1)">IT services</a>
</li>
<li class="divider" role="menuitem"></li> <li class="divider" role="menuitem"></li>
<li role="menuitem"><a tabindex="1" ng-click="duplicate()">Duplicate</a></li> <li role="menuitem"><a tabindex="1" ng-click="duplicate()">Duplicate</a></li>
<li role="menuitem"><a tabindex="1" ng-click="moveMetricQuery($index, $index-1)">Move up</a></li> <li role="menuitem"><a tabindex="1" ng-click="moveMetricQuery($index, $index-1)">Move up</a></li>
@@ -81,7 +81,7 @@
<ul class="tight-form-list" role="menu" ng-hide="target.mode == 1"> <ul class="tight-form-list" role="menu" ng-hide="target.mode == 1">
<!-- Alias --> <!-- Alias -->
<li> <li ng-hide="target.mode == 2">
<input type="text" <input type="text"
class="tight-form-input input-medium" class="tight-form-input input-medium"
ng-model="target.alias" ng-model="target.alias"
@@ -163,7 +163,9 @@
<li class="tight-form-item"> <li class="tight-form-item">
<i class="fa fa-eye invisible"></i> <i class="fa fa-eye invisible"></i>
</li> </li>
<li class="tight-form-item" style="width: 135px">&nbsp</li> <li class="tight-form-item" style="width: 135px" ng-hide="target.mode == 2">
&nbsp
</li>
<!-- Select Application --> <!-- Select Application -->
<li class="tight-form-item input-small" style="width: 5em">Application</li> <li class="tight-form-item input-small" style="width: 5em">Application</li>
@@ -211,6 +213,28 @@
placeholder="Item filter (regex)" placeholder="Item filter (regex)"
ng-blur="targetBlur()"> ng-blur="targetBlur()">
</li> </li>
<!-- Text metric regex -->
<li class="tight-form-item" ng-show="target.mode == 2">
Text filter&nbsp;
<i class="fa fa-question-circle"
bs-tooltip="'Use regex to extract a part of the returned value.'"></i>
</li>
<li ng-show="target.mode == 2">
<input type="text"
class="tight-form-input input-large" style="width: 20em"
ng-model="target.textFilter"
spellcheck='false'
placeholder="Text filter (regex)"
ng-blur="targetBlur()">
</li>
<li class="tight-form-item" ng-show="target.mode == 2">
Use capture groups&nbsp;
<input class="cr1" id="target.useCaptureGroups" type="checkbox"
ng-model="target.useCaptureGroups"
ng-checked="target.useCaptureGroups"
ng-change="targetBlur()">
<label for="target.useCaptureGroups" class="cr1"></label>
</li>
<!-- Scale --> <!-- Scale -->
<li class="tight-form-item" ng-hide="target.mode == 2"> <li class="tight-form-item" ng-hide="target.mode == 2">
Scale Scale