mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Revamped node dashboard charts (work in progress). Stats table treats no refresh as a long refresh and shows sparklines. Do not try to resolve display fields if they are identical to the persistent field (we already have it from the initial facet call). Added cluster events back to overview page charts.
Added a title to the "indexing request rate" chart. Merge rate -> Merge Rate Iter1 Enable cluster annotations. Finished implementing iter1 on node dashboard Node stats panel shoudl also treat no refresh rate as a long one… Added generation usages. Do not try to resolve display fields if they are identical to the persistent field (we already have it from the initial facet call) jshint commit
This commit is contained in:
parent
29a63e1fc9
commit
be67051f62
5 changed files with 259 additions and 95 deletions
|
@ -159,6 +159,7 @@ var rows = [
|
|||
"panels": [
|
||||
{
|
||||
"value_field": "primaries.indexing.index_total",
|
||||
"title": "Indexing request rate",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true
|
||||
|
|
|
@ -144,19 +144,19 @@ panel_defaults_by_type["histogram"] = {
|
|||
|
||||
var rows = [
|
||||
{
|
||||
"title": "Server",
|
||||
"title": "Essentials",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "os.cpu.usage",
|
||||
"title": "CPU",
|
||||
"title": "OS CPU",
|
||||
"grid": {
|
||||
"max": 100,
|
||||
"min": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"value_field": "os.mem.used_percent",
|
||||
"title": "Memory usage (%)",
|
||||
"value_field": "jvm.mem.heap_used_percent",
|
||||
"title": "JVM Heap usage (%)",
|
||||
"grid": {
|
||||
"max": 100,
|
||||
"min": 0
|
||||
|
@ -169,11 +169,44 @@ var rows = [
|
|||
]
|
||||
},
|
||||
{
|
||||
"title": "Server 2",
|
||||
"title": "OS",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "os.cpu.usage",
|
||||
"title": "OS CPU",
|
||||
"grid": {
|
||||
"max": 100,
|
||||
"min": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"value_field": "os.mem.used_percent",
|
||||
"title": "OS Memory usage (%)",
|
||||
"grid": {
|
||||
"max": 100,
|
||||
"min": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"value_field": "os.load_average.1m",
|
||||
"title": "OS Load (1m)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "OS Extended",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "os.cpu.sys",
|
||||
"title": "OS CPU Sys",
|
||||
"grid": {
|
||||
"max": 100,
|
||||
"min": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"value_field": "os.cpu.stolen",
|
||||
"title": "CPU steal",
|
||||
"title": "OS CPU Steal",
|
||||
"grid": {
|
||||
"max": 100,
|
||||
"min": 0
|
||||
|
@ -182,23 +215,39 @@ var rows = [
|
|||
{
|
||||
"time_field": "@timestamp",
|
||||
"value_field": "os.swap.used_in_bytes",
|
||||
"title": "Used Swap",
|
||||
"title": "OS Swap Used",
|
||||
"y_format": "bytes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
},{
|
||||
"title": "JVM Memory",
|
||||
"panels": [
|
||||
{
|
||||
"time_field": "@timestamp",
|
||||
"value_field": "jvm.mem.heap_used_in_bytes",
|
||||
"title": "Heap",
|
||||
"title": "JVM Heap Used",
|
||||
"y_format": "bytes"
|
||||
},
|
||||
{
|
||||
"time_field": "@timestamp",
|
||||
"value_field": "jvm.mem.pools.Par Eden Space.used_in_bytes",
|
||||
"title": "JVM Young Gen usage",
|
||||
"y_format": "bytes"
|
||||
},
|
||||
{
|
||||
"time_field": "@timestamp",
|
||||
"value_field": "jvm.mem.pools.CMS Old Gen.used_in_bytes",
|
||||
"title": "JVM Old Gen usage",
|
||||
"y_format": "bytes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "JVM GC Young",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "jvm.gc.collectors.ParNew.collection_time_in_millis",
|
||||
"title": "GC Young Gen duration (time %)",
|
||||
"title": "GC Young Duration (time %)",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
|
@ -206,68 +255,216 @@ var rows = [
|
|||
"grid": {
|
||||
"max": 100,
|
||||
"min": 0
|
||||
}
|
||||
},
|
||||
"span": 6,
|
||||
"resolution": 20
|
||||
},
|
||||
{
|
||||
"value_field": "jvm.gc.collectors.ParNew.collection_count",
|
||||
"title": "GC counts",
|
||||
"title": "GC Young Counts",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true
|
||||
"scaleSeconds": false,
|
||||
"span": 6,
|
||||
"resolution": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "JVM Memory 2",
|
||||
"title": "JVM GC Old",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "jvm.gc.collectors.ConcurrentMarkSweep.collection_time_in_millis",
|
||||
"title": "GC Old Duration (time %)",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"title": "GC Old Gen duration (time %)",
|
||||
"scaleSeconds": true,
|
||||
"scale": 0.001 * 100,
|
||||
"grid": {
|
||||
"max": 100,
|
||||
"min": 0
|
||||
}
|
||||
},
|
||||
"span": 6,
|
||||
"resolution": 20
|
||||
},
|
||||
{
|
||||
"value_field": "jvm.gc.collectors.ConcurrentMarkSweep.collection_count",
|
||||
"title": "GC Old Counts",
|
||||
"derivative": true,
|
||||
"scaleSeconds": true,
|
||||
"mode": "min",
|
||||
"title": "GC Old Gen count"
|
||||
"scaleSeconds": false,
|
||||
"span": 6,
|
||||
"resolution": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Caches",
|
||||
"title": "Indices Memory",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.fielddata.memory_size_in_bytes",
|
||||
"title": "Field Data",
|
||||
"title": "Indices Field Data",
|
||||
"y_format": "bytes"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.filter_cache.memory_size_in_bytes",
|
||||
"title": "Filter cache",
|
||||
"title": "Indices Filter cache",
|
||||
"y_format": "bytes"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.id_cache.memory_size_in_bytes",
|
||||
"title": "Id cache",
|
||||
"title": "Indices Id Cache",
|
||||
"y_format": "bytes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Caches 2",
|
||||
"title": "Indices Memory Extended",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.completion.size_in_bytes",
|
||||
"title": "Completion size",
|
||||
"value_field": "indices.percolate.size_in_bytes",
|
||||
"title": "Indices Percolation size",
|
||||
"y_format": "bytes"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.completion.size_in_bytes",
|
||||
"title": "Indices Completion size",
|
||||
"y_format": "bytes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Indices Search Requests Query",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.search.query_total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Indices Search Query Rate"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.search.query_time_in_millis",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"scale": 0.001,
|
||||
"title": "Indices Total Search Query Time"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Indices Search Requests Fetch",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.search.fetch_total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Indices Search Fetch Rate"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.search.fetch_time_in_millis",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"scale": 0.001,
|
||||
"title": "Indices Total Search Fetch Time"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Indices Indexing Requests",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.indexing.index_total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Indices Indexing Rate"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.indexing.index_time_in_millis",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"scale": 0.001,
|
||||
"title": "Indices Total Indexing Time"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.indexing.delete_total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Indices Delete Rate"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Indices Get Requests",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.get.total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Indices Get Requests Rate"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.get.time_in_millis",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"scale": 0.001,
|
||||
"title": "Indices Total Get Time"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Indices Management",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.merges.current_size_in_bytes",
|
||||
"mode": "max",
|
||||
"y_format": "bytes",
|
||||
"title": "Indices Current Merges"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.refresh.total_time_in_millis",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scale": 0.001,
|
||||
"scaleSeconds": true,
|
||||
"title": "Indices Total Refresh Time"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.flush.total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Indices Flush count"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Indices Management Extended",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.search.open_contexts",
|
||||
"mode": "max",
|
||||
"title": "Indices Open Search Contexts"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.warmer.total_time_in_millis",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scale": 0.001,
|
||||
"scaleSeconds": true,
|
||||
"title": "Indices Total Warmer Time"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.segments.count",
|
||||
"title": "Indices Segment Count"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -346,59 +543,6 @@ var rows = [
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Indexing",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.indexing.index_total",
|
||||
"derivative": true,
|
||||
"scaleSeconds": true,
|
||||
"title": "Indexing requests"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.merges.current_size_in_bytes",
|
||||
"title": "Merges size",
|
||||
"y_format": "bytes"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.refresh.total_time_in_millis",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Avg refresh time"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Indexing 2",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.flush.total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"title": "Flush count"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Search & Get",
|
||||
"panels": [
|
||||
{
|
||||
"value_field": "indices.search.query_total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Search requests"
|
||||
},
|
||||
{
|
||||
"value_field": "indices.get.total",
|
||||
"derivative": true,
|
||||
"mode": "min",
|
||||
"scaleSeconds": true,
|
||||
"title": "Get requests"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Data",
|
||||
"panels": [
|
||||
|
|
|
@ -144,7 +144,7 @@
|
|||
"title": "Document Count",
|
||||
"pointradius": 5,
|
||||
"annotate": {
|
||||
"enable": false,
|
||||
"enable": true,
|
||||
"query": "_type:cluster_event",
|
||||
"size": 100,
|
||||
"field": "message",
|
||||
|
@ -217,7 +217,7 @@
|
|||
"title": "Search request rate",
|
||||
"pointradius": 5,
|
||||
"annotate": {
|
||||
"enable": false,
|
||||
"enable": true,
|
||||
"query": "_type:cluster_event",
|
||||
"size": 100,
|
||||
"field": "message",
|
||||
|
@ -290,7 +290,7 @@
|
|||
"title": "Indexing request rate",
|
||||
"pointradius": 5,
|
||||
"annotate": {
|
||||
"enable": false,
|
||||
"enable": true,
|
||||
"query": "_type:cluster_event",
|
||||
"size": 100,
|
||||
"field": "message",
|
||||
|
|
|
@ -27,6 +27,13 @@
|
|||
}
|
||||
}
|
||||
} ]
|
||||
},
|
||||
"node_stats": {
|
||||
"properties": {
|
||||
"indices.percolate.size_in_bytes": { "type": "long"},
|
||||
"jvm.buffer_pools.direct.used_in_bytes": { "type": "long" },
|
||||
"jvm.buffer_pools.mapped.used_in_bytes": { "type": "long" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -15,7 +15,7 @@ define([
|
|||
|
||||
function y_format_metric_value(value, metric) {
|
||||
// If this isn't a number, change nothing
|
||||
if(_.isNaN(value) || !_.isFinite(value)) {
|
||||
if (_.isNaN(value) || !_.isFinite(value)) {
|
||||
return value;
|
||||
}
|
||||
if (metric.y_format === 'bytes') {
|
||||
|
@ -28,7 +28,7 @@ define([
|
|||
}
|
||||
|
||||
function stripRaw(fieldName) {
|
||||
return fieldName.replace(/\.raw$/,'');
|
||||
return fieldName.replace(/\.raw$/, '');
|
||||
}
|
||||
|
||||
module.controller('marvel.stats_table', function ($scope, dashboard, filterSrv) {
|
||||
|
@ -66,7 +66,7 @@ define([
|
|||
},
|
||||
availableMetrics: [
|
||||
{
|
||||
name: 'CPU (%)',
|
||||
name: 'OS CPU (%)',
|
||||
field: 'os.cpu.usage',
|
||||
warning: 60,
|
||||
error: 90
|
||||
|
@ -84,7 +84,7 @@ define([
|
|||
error: 98
|
||||
},
|
||||
{
|
||||
name: 'Free',
|
||||
name: 'Disk Free Space',
|
||||
field: 'fs.total.available_in_bytes',
|
||||
warning: {
|
||||
threshold: 50 * 1024 * 1024 * 1024,
|
||||
|
@ -95,8 +95,7 @@ define([
|
|||
type: "lower_bound"
|
||||
},
|
||||
y_format: "bytes"
|
||||
}
|
||||
,
|
||||
},
|
||||
{
|
||||
name: 'IOps',
|
||||
field: 'fs.total.disk_io_op',
|
||||
|
@ -106,7 +105,7 @@ define([
|
|||
},
|
||||
indices: {
|
||||
defaults: {
|
||||
display_field: 'index',
|
||||
display_field: null,// identical to index.raw
|
||||
persistent_field: 'index.raw',
|
||||
metrics: [ 'primaries.docs.count', 'primaries.indexing.index_total', 'total.search.query_total',
|
||||
'total.merges.total_size_in_bytes', 'total.fielddata.memory_size_in_bytes'
|
||||
|
@ -133,7 +132,7 @@ define([
|
|||
y_format: "short"
|
||||
},
|
||||
{
|
||||
name: 'Merge rate',
|
||||
name: 'Merge Rate',
|
||||
field: 'total.merges.total_size_in_bytes',
|
||||
derivative: true,
|
||||
y_format: "bytes"
|
||||
|
@ -194,9 +193,9 @@ define([
|
|||
_.throttle($scope.get_rows(), 500);
|
||||
});
|
||||
|
||||
$scope.$watch('(rows|filter:panel.rowFilter).length', function(l) {
|
||||
$scope.$watch('(rows|filter:panel.rowFilter).length', function (l) {
|
||||
//Compute view based on number of rows
|
||||
if(l > 5 && kbn.interval_to_seconds(dashboard.current.refresh) < 120) {
|
||||
if (l > 5 && dashboard.current.refresh && kbn.interval_to_seconds(dashboard.current.refresh) < 120) {
|
||||
$scope.panel.compact = true;
|
||||
$scope.sparkLines = false;
|
||||
$scope.viewSelect = false;
|
||||
|
@ -272,6 +271,19 @@ define([
|
|||
return;
|
||||
}
|
||||
|
||||
if (!$scope.panel.display_field || $scope.panel.display_field === $scope.panel.persistent_field) {
|
||||
$scope.get_data(_.map(newPersistentIds, function (id) {
|
||||
return {
|
||||
display_name: id,
|
||||
id: id,
|
||||
// using findWhere here, though its not very efficient
|
||||
selected: (_.findWhere($scope.rows, {id: id}) || {}).selected
|
||||
};
|
||||
}));
|
||||
return;
|
||||
}
|
||||
|
||||
// go get display names.
|
||||
mrequest = $scope.ejs.MultiSearchRequest().indices(dashboard.indices);
|
||||
|
||||
_.each(newPersistentIds, function (persistentId) {
|
||||
|
@ -305,7 +317,7 @@ define([
|
|||
display_name: display_name || persistent_name,
|
||||
id: persistent_name,
|
||||
// using findWhere here, though its not very efficient
|
||||
selected: (_.findWhere($scope.rows,{id:persistent_name}) || {}).selected
|
||||
selected: (_.findWhere($scope.rows, {id: persistent_name}) || {}).selected
|
||||
});
|
||||
});
|
||||
$scope.get_data(newRows);
|
||||
|
@ -458,8 +470,8 @@ define([
|
|||
}
|
||||
};
|
||||
|
||||
$scope.showFullTable = function() {
|
||||
if($scope.panel.compact) {
|
||||
$scope.showFullTable = function () {
|
||||
if ($scope.panel.compact) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue