Add latency to index and node Elasticsearch stats (#22625)

Closes https://github.com/elastic/kibana/issues/22503
This commit is contained in:
Nicolas Ruflin 2018-10-23 19:26:30 +02:00 committed by GitHub
parent b99c516700
commit e8451ad40a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 2845 additions and 6588 deletions

View file

@ -18,6 +18,7 @@
<div class="col-md-6"><monitoring-chart series="pageData.metrics.index_throttling"/></div>
<div class="col-md-6"><monitoring-chart series="pageData.metrics.index_disk"/></div>
<div class="col-md-6"><monitoring-chart series="pageData.metrics.index_segment_count"/></div>
<div class="col-md-6"><monitoring-chart series="pageData.metrics.index_latency"/></div>
</div>
</div>
</monitoring-main>

View file

@ -25,6 +25,7 @@
<div class="col-md-6"><monitoring-chart series="pageData.metrics.node_read_threads"/></div>
<div class="col-md-6"><monitoring-chart series="pageData.metrics.node_cgroup_cpu"/></div>
<div class="col-md-6"><monitoring-chart series="pageData.metrics.node_cgroup_stats"/></div>
<div class="col-md-6"><monitoring-chart series="pageData.metrics.node_latency"/></div>
</div>
</div>
</monitoring-main>

View file

@ -1955,6 +1955,47 @@ Object {
"units": "",
"uuidField": "source_node.uuid",
},
"index_index_latency": LatencyMetric {
"aggs": Object {
"event_time_in_millis": Object {
"max": Object {
"field": "index_stats.primaries.indexing.index_time_in_millis",
},
},
"event_time_in_millis_deriv": Object {
"derivative": Object {
"buckets_path": "event_time_in_millis",
"gap_policy": "skip",
"unit": "1s",
},
},
"event_total": Object {
"max": Object {
"field": "index_stats.primaries.indexing.index_total",
},
},
"event_total_deriv": Object {
"derivative": Object {
"buckets_path": "event_total",
"gap_policy": "skip",
"unit": "1s",
},
},
},
"app": "elasticsearch",
"calculation": [Function],
"derivative": false,
"description": "Average latency for indexing documents, which is time it takes to index documents divided by number that were indexed. This only considers primary shards.",
"field": "index_stats.primaries.indexing.index_total",
"format": "0,0.[00]",
"label": "Indexing Latency",
"metricAgg": "sum",
"timestampField": "timestamp",
"title": "Latency",
"type": "cluster",
"units": "ms",
"uuidField": "source_node.uuid",
},
"index_indexing_primaries_time": ElasticsearchMetric {
"app": "elasticsearch",
"derivative": true,
@ -1997,46 +2038,6 @@ Object {
"units": "ms",
"uuidField": "source_node.uuid",
},
"index_latency": LatencyMetric {
"aggs": Object {
"event_time_in_millis": Object {
"max": Object {
"field": "index_stats.primaries.indexing.index_time_in_millis",
},
},
"event_time_in_millis_deriv": Object {
"derivative": Object {
"buckets_path": "event_time_in_millis",
"gap_policy": "skip",
"unit": "1s",
},
},
"event_total": Object {
"max": Object {
"field": "index_stats.primaries.indexing.index_total",
},
},
"event_total_deriv": Object {
"derivative": Object {
"buckets_path": "event_total",
"gap_policy": "skip",
"unit": "1s",
},
},
},
"app": "elasticsearch",
"calculation": [Function],
"derivative": false,
"description": "Average latency for indexing documents, which is time it takes to index documents divided by number that were indexed. This only considers primary shards.",
"field": "index_stats.primaries.indexing.index_total",
"format": "0,0.[00]",
"label": "Indexing Latency",
"metricAgg": "sum",
"timestampField": "timestamp",
"type": "cluster",
"units": "ms",
"uuidField": "source_node.uuid",
},
"index_mem_doc_values": SingleIndexMemoryMetric {
"app": "elasticsearch",
"derivative": false,
@ -2274,6 +2275,46 @@ Object {
"units": "/s",
"uuidField": "source_node.uuid",
},
"index_query_latency": LatencyMetric {
"aggs": Object {
"event_time_in_millis": Object {
"max": Object {
"field": "index_stats.total.search.query_time_in_millis",
},
},
"event_time_in_millis_deriv": Object {
"derivative": Object {
"buckets_path": "event_time_in_millis",
"gap_policy": "skip",
"unit": "1s",
},
},
"event_total": Object {
"max": Object {
"field": "index_stats.total.search.query_total",
},
},
"event_total_deriv": Object {
"derivative": Object {
"buckets_path": "event_total",
"gap_policy": "skip",
"unit": "1s",
},
},
},
"app": "elasticsearch",
"calculation": [Function],
"derivative": false,
"description": "Average latency for searching, which is time it takes to execute searches divided by number of searches submitted. This considers primary and replica shards.",
"field": "index_stats.total.search.query_total",
"format": "0,0.[00]",
"label": "Search Latency",
"metricAgg": "sum",
"timestampField": "timestamp",
"type": "cluster",
"units": "ms",
"uuidField": "source_node.uuid",
},
"index_refresh_time": ElasticsearchMetric {
"app": "elasticsearch",
"derivative": true,
@ -4505,46 +4546,6 @@ Object {
"units": "ms",
"uuidField": "source_node.uuid",
},
"query_latency": LatencyMetric {
"aggs": Object {
"event_time_in_millis": Object {
"max": Object {
"field": "index_stats.total.search.query_time_in_millis",
},
},
"event_time_in_millis_deriv": Object {
"derivative": Object {
"buckets_path": "event_time_in_millis",
"gap_policy": "skip",
"unit": "1s",
},
},
"event_total": Object {
"max": Object {
"field": "index_stats.total.search.query_total",
},
},
"event_total_deriv": Object {
"derivative": Object {
"buckets_path": "event_total",
"gap_policy": "skip",
"unit": "1s",
},
},
},
"app": "elasticsearch",
"calculation": [Function],
"derivative": false,
"description": "Average latency for searching, which is time it takes to execute searches divided by number of searches submitted. This considers primary and replica shards.",
"field": "index_stats.total.search.query_total",
"format": "0,0.[00]",
"label": "Search Latency",
"metricAgg": "sum",
"timestampField": "timestamp",
"type": "cluster",
"units": "ms",
"uuidField": "source_node.uuid",
},
"search_request_rate": RequestRateMetric {
"app": "elasticsearch",
"derivative": true,

View file

@ -70,10 +70,11 @@ export const metrics = {
'Average latency for indexing documents, which is time it takes to index documents divided by number that were indexed. This considers any shard located on this node, including replicas.', // eslint-disable-line max-len
type: 'node'
}),
index_latency: new LatencyMetric({
index_index_latency: new LatencyMetric({
metric: 'index',
fieldSource: 'index_stats.primaries',
field: 'index_stats.primaries.indexing.index_total',
title: 'Latency',
label: 'Indexing Latency',
description:
'Average latency for indexing documents, which is time it takes to index documents divided by number that were indexed. This only considers primary shards.', // eslint-disable-line max-len
@ -98,7 +99,7 @@ export const metrics = {
'Average latency for searching, which is time it takes to execute searches divided by number of searches submitted. This considers primary and replica shards.', // eslint-disable-line max-len
type: 'node'
}),
query_latency: new LatencyMetric({
index_query_latency: new LatencyMetric({
metric: 'query',
fieldSource: 'index_stats.total',
field: 'index_stats.total.search.query_total',

View file

@ -75,6 +75,10 @@ export const metricSet = {
{
keys: ['index_segment_count_total', 'index_segment_count_primaries'],
name: 'index_segment_count'
},
{
keys: ['index_index_latency', 'index_query_latency'],
name: 'index_latency'
}
],
overview: [

View file

@ -88,6 +88,10 @@ export const metricSets = {
{
keys: ['node_cgroup_periods', 'node_cgroup_throttled_count'],
name: 'node_cgroup_stats'
},
{
keys: ['node_query_latency', 'node_index_latency'],
name: 'node_latency'
}
],
overview: [