changed default index template: Instead of not tokenizing strings, introduce a multi_field + a {name}.raw variant.

This commit is contained in:
Boaz Leskes 2014-01-05 23:14:46 +01:00
parent bf4c501c3b
commit ec90dc65a3
2 changed files with 33 additions and 20 deletions

View file

@ -1,22 +1,32 @@
{ {
"template": ".marvel*", "template": ".marvel*",
"settings": { "settings" : {
"number_of_shards": 1, "number_of_shards": 1,
"number_of_replicas": 1 "number_of_replicas": 1,
"analysis" : {
"analyzer" : {
"default" : {
"type" : "standard",
"stopwords" : "_none_"
}
}
}
}, },
"mappings": { "mappings" : {
"_default_": { "_default_" : {
"dynamic_templates": [ "dynamic_templates" : [ {
{ "string_fields" : {
"string_fields": { "match" : "*",
"match": "*", "match_mapping_type" : "string",
"match_mapping_type": "string", "mapping" : {
"mapping": { "type" : "multi_field",
"index": "not_analyzed" "fields" : {
"{name}" : {"type": "string", "index" : "analyzed", "omit_norms" : true },
"raw" : {"type": "string", "index" : "not_analyzed", "ignore_above" : 256}
} }
} }
} }
] } ]
} }
} }
} }

View file

@ -13,7 +13,7 @@ define([
var module = angular.module('kibana.panels.marvel.stats_table', []); var module = angular.module('kibana.panels.marvel.stats_table', []);
app.useModule(module); app.useModule(module);
var y_format_metric_value = function (value, metric) { function y_format_metric_value(value, metric) {
// If this isn't a number, change nothing // If this isn't a number, change nothing
if(_.isNaN(value) || !_.isFinite(value)) { if(_.isNaN(value) || !_.isFinite(value)) {
return value; return value;
@ -25,8 +25,11 @@ define([
return kbn.shortFormat(value, metric.decimals); return kbn.shortFormat(value, metric.decimals);
} }
return value.toFixed(metric.decimals); return value.toFixed(metric.decimals);
}; }
function stripRaw(fieldName) {
return fieldName.replace(/\.raw$/,'');
}
module.controller('marvel.stats_table', function ($scope, dashboard, filterSrv) { module.controller('marvel.stats_table', function ($scope, dashboard, filterSrv) {
$scope.panelMeta = { $scope.panelMeta = {
@ -55,7 +58,7 @@ define([
nodes: { nodes: {
defaults: { defaults: {
display_field: "node.name", display_field: "node.name",
persistent_field: "node.ip_port", persistent_field: "node.ip_port.raw",
metrics: [ 'os.cpu.usage', 'os.load_average.1m', 'jvm.mem.heap_used_percent', 'fs.total.available_in_bytes', metrics: [ 'os.cpu.usage', 'os.load_average.1m', 'jvm.mem.heap_used_percent', 'fs.total.available_in_bytes',
'fs.total.disk_io_op' 'fs.total.disk_io_op'
], ],
@ -103,8 +106,8 @@ define([
}, },
indices: { indices: {
defaults: { defaults: {
display_field: null, display_field: 'index',
persistent_field: 'index', persistent_field: 'index.raw',
metrics: [ 'primaries.docs.count', 'primaries.indexing.index_total', 'total.search.query_total', metrics: [ 'primaries.docs.count', 'primaries.indexing.index_total', 'total.search.query_total',
'total.merges.total_size_in_bytes', 'total.fielddata.memory_size_in_bytes' 'total.merges.total_size_in_bytes', 'total.fielddata.memory_size_in_bytes'
], ],
@ -256,7 +259,7 @@ define([
$scope.ejs.TermQuery($scope.panel.persistent_field, persistentId) $scope.ejs.TermQuery($scope.panel.persistent_field, persistentId)
) )
); );
rowRequest.size(1).fields(_.unique([ $scope.panel.display_field, $scope.panel.persistent_field])); rowRequest.size(1).fields(_.unique([ stripRaw($scope.panel.display_field), stripRaw($scope.panel.persistent_field)]));
rowRequest.sort("@timestamp", "desc"); rowRequest.sort("@timestamp", "desc");
mrequest.requests(rowRequest); mrequest.requests(rowRequest);
}); });
@ -273,8 +276,8 @@ define([
} }
hit = response.hits.hits[0]; hit = response.hits.hits[0];
display_name = hit.fields[$scope.panel.display_field]; display_name = hit.fields[stripRaw($scope.panel.display_field)];
persistent_name = hit.fields[$scope.panel.persistent_field]; persistent_name = hit.fields[stripRaw($scope.panel.persistent_field)];
newRows.push({ newRows.push({
display_name: display_name || persistent_name, display_name: display_name || persistent_name,