diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index e60fa180de0..f472c6fe47e 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -287,6 +287,7 @@ automatic splitting at root level, if root level element is an array. {pull}3415 - Add beta ingest_pipeline metricset to Elasticsearch module for ingest pipeline monitoring {pull}34012[34012] - Handle duplicated TYPE line for prometheus metrics {issue}18813[18813] {pull}33865[33865] - Add GCP Carbon Footprint metricbeat data {pull}34820[34820] +- Add event loop utilization metric to Kibana module {pull}35020[35020] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 7988d9c0f11..02f5c21819b 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -42193,6 +42193,33 @@ alias to: kibana.stats.process.event_loop_delay.ms -- +*`kibana_stats.process.event_loop_utilization.active`*:: ++ +-- +type: alias + +alias to: kibana.stats.process.event_loop_utilization.active + +-- + +*`kibana_stats.process.event_loop_utilization.idle`*:: ++ +-- +type: alias + +alias to: kibana.stats.process.event_loop_utilization.idle + +-- + +*`kibana_stats.process.event_loop_utilization.utilization`*:: ++ +-- +type: alias + +alias to: kibana.stats.process.event_loop_utilization.utilization + +-- + *`kibana_stats.requests.total`*:: + -- @@ -42706,6 +42733,43 @@ type: long Event loop delay in milliseconds +type: scaled_float + +-- + +[float] +=== event_loop_utilization + +The ratio of time the event loop is not idling in the event provider to the total time the event loop is running. + + + +*`kibana.stats.process.event_loop_utilization.active`*:: ++ +-- +Duration of time event loop has been active since last measurement. + + +type: scaled_float + +-- + +*`kibana.stats.process.event_loop_utilization.idle`*:: ++ +-- +Duration of time event loop has been idle since last measurement. + + +type: scaled_float + +-- + +*`kibana.stats.process.event_loop_utilization.utilization`*:: ++ +-- +Computed utilization value representing ratio of active to idle time since last measurement. + + type: scaled_float -- diff --git a/metricbeat/module/kibana/_meta/fields.yml b/metricbeat/module/kibana/_meta/fields.yml index 05a9818f2ae..52f64ff5f2c 100644 --- a/metricbeat/module/kibana/_meta/fields.yml +++ b/metricbeat/module/kibana/_meta/fields.yml @@ -45,6 +45,15 @@ - name: process.event_loop_delay type: alias path: kibana.stats.process.event_loop_delay.ms + - name: process.event_loop_utilization.active + type: alias + path: kibana.stats.process.event_loop_utilization.active + - name: process.event_loop_utilization.idle + type: alias + path: kibana.stats.process.event_loop_utilization.idle + - name: process.event_loop_utilization.utilization + type: alias + path: kibana.stats.process.event_loop_utilization.utilization - name: requests.total type: alias path: kibana.stats.request.total diff --git a/metricbeat/module/kibana/fields.go b/metricbeat/module/kibana/fields.go index a093c65f4d6..790e70dbe9b 100644 --- a/metricbeat/module/kibana/fields.go +++ b/metricbeat/module/kibana/fields.go @@ -32,5 +32,5 @@ func init() { // AssetKibana returns asset data. // This is the base64 encoded zlib format compressed contents of module/kibana. func AssetKibana() string { - return "eJzsWs2O2zYQvu9TDHzJJSt0D3uID0WLNECLIkGRNuihKARaHFvsUqTCobzrPn1B/XhliZRkWW4WQfYQBLLmm48zw5nRkLfwgIc1PIgNU+wGwAorcQ2rX8sHqxsAjpQYkVuh1Rq+vwEAqH6ETPNC4g0ApdrYONFqK3Zr2DJJ7qlBiYxwDTsHTGitUDtaw18rIrl6DavU2nz19w3AVqDktC6xb0GxDBtGMVlmqfwBwB5yh2Z0kddP2oJtYSsyJMuy/PhLI82kYNR6mjObrmH1w1Fi1QOrmEQGKdeKMHavRhl7mohdi5cL6YNEGYUUOomC5mjxAzTwmqIMM20O0dYgxkLFm4PFWYrGoBqVudEJEkVF7tbt3suElGKWzlMsn/2aN2pqKbI8IvEvxlJkwl6i048Y+RedaJUUxqAqt4bCxG2hWUseQQqs2yAJ7mQIbVyyvcTVY+ABI2iKpGY8ustmxldXugt8fxHwfRj47jLkOw90Y0PcO8tJrfOYo2SHS/zRxfJtCIOfCyRLkdWWyXl5q0ToAPTwuaA6QGfFWKPFB/Osq5VB6ap5uKOK7dGwHV6uju13A2m/KASfqIPQ7EWCUS1wCnR20UTJyIqEkJkkjRJZkEUTecg84OFRG95PeJVIzAKZrk3C/Xk6i+av7jBqRKgRIUNrREJR691jl7FBy1rPu6sMGmiYYwiqDdcr1MPmaovqPRpe4GJUEl0oG2QitdoFRbuZaJzMEKE2cn7/nff3BnsrNfORbiG8eXMGQjceTSE9NW9+NDq8b6H4LRQnIDRSSnNcMC86uK83KW6ZkIXBrnAgcI7l6wmTomvgCXKuJOvCTpA6ceZSSaV05deZUV66H5uRxAJeLNs8YIqDKdStozLozt1UZ3aawWG7d4jW1IQiy1SC8OnTLz95lbh/l1LSw2qUCMXxaa6WDyxD0Nta2ysCoSwaxaQHtlGYaupm8tmrcljBlVnDFOXa2JhxbpD8EThdq+vq0byio9YyrpwCr/o9GhJaXajUh3LcJ4rllGq/NTdaS2Rd9Scq/kzRpmjAptio2xRCchAE7IhePfMT8OWguc50hkUmbeqDbTRKnTA5fVMcm4OukxohF687NP0U1BpvwgvMPy+nmBR0+u09h8hQLprEIZSNu5/nEPpEf/7LxM6wyqPW9NruAY/Ds9evm9rH1V4n2ff1zk3/0XWXv0BVGA8cv/QS0bNgnfEtYxoJP+qpCfzvDJlgqcrVp/2Fa9loUE6qbtqvf05G54Ks0Wdl9L74x6ouzUbJJbNbbbKLAS4lUh2OBMUvmVyEzur6WryjlTZUOcRfCKsg5BdAPfdbrG/VJcx25wuKZ+iUyW08PvS5XwTlbh7M5PNEGLL1WIktsg0aV2QTKVBZaKmAjHEEq8ukV1WNCD5oi2BTZmFj9COhIUiYAkLFISukFblEIOH+yxTqgk4QrW4OjVovl8jAiND1sha0SvB1WZRsiocS3uBtQQhIlm2koBR5GzbyN+XVSdnklDdiqd8quKa/PqvxnHh4OurM4+7rnYFPFh06NzwFIfcpxAPxPWIsgHdODzg91VgXhILq8B8TrXhXacdSKbL+zh/KCqN8Gvc55IAPx6temUEDThtJna7MMLuGkPDoAgD+cNqrBTDpvlQtcrej6kB3Fvajt5P2F2P/s+PtGMDmMJ1y8LbF/0f8PXuKQEsOlLMES0an9v+gOUb/ULOo1xMcEdy/I8uZQPdTie0yesvIwZ3XOcpfKlkCfKzTfHkcdFbSPOkSPdcKljLUc+lr7jFUde0RDbZUY7jt616rWIpZtdFVj1/Ac607BvP897GGqO7PzXRW53bDHGv8WN20OC6p5DNSOFql4/Q2xxwC79mTyIrsDALeSxRx1UvNc8a7NhK8LZFeUW9iOMUlVcPPEiv2GJNOHnBgI3VHlQF63dis0CGE3vn24PJqRBz2RBqfCyyQx95ttQCTCr6/a4OjgLOnv7+XCLX/W7+cP+i9/qDQ35y/2JGqI+anXI+josrRk8mfNQ+roygaNMAFc7EybiLt8qyU5SW15b1fo5fKAt73V5jZ3cb7Cq6/H2DSfZUJn9ewQFV/W2lpKQx/w4LnluXZc5IJnJouzflKlGWnz2PawGW4V4PxydIkvuDpjtqt2rBFYULvdk2mJ+T+CwAA///ZtsLU" + return "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" } diff --git a/metricbeat/module/kibana/stats/_meta/data.json b/metricbeat/module/kibana/stats/_meta/data.json index 46e85773eeb..9bf1f0d82d1 100644 --- a/metricbeat/module/kibana/stats/_meta/data.json +++ b/metricbeat/module/kibana/stats/_meta/data.json @@ -38,6 +38,11 @@ "event_loop_delay": { "ms": 0.14306800067424774 }, + "event_loop_utilization": { + "active": 629.1224170000005, + "idle": 359.23554199999995, + "utilization": 0.6365329598160299 + }, "memory": { "heap": { "size_limit": { diff --git a/metricbeat/module/kibana/stats/_meta/fields.yml b/metricbeat/module/kibana/stats/_meta/fields.yml index e1035204a25..eda272fe1fb 100644 --- a/metricbeat/module/kibana/stats/_meta/fields.yml +++ b/metricbeat/module/kibana/stats/_meta/fields.yml @@ -98,6 +98,23 @@ type: scaled_float description: > Event loop delay in milliseconds + - name: event_loop_utilization + type: group + description: > + The ratio of time the event loop is not idling in the event provider to the total time the event loop is running. + fields: + - name: active + type: scaled_float + description: > + Duration of time event loop has been active since last measurement. + - name: idle + type: scaled_float + description: > + Duration of time event loop has been idle since last measurement. + - name: utilization + type: scaled_float + description: > + Computed utilization value representing ratio of active to idle time since last measurement. - name: memory.heap type: group description: > diff --git a/metricbeat/module/kibana/stats/_meta/test/stats.880.json b/metricbeat/module/kibana/stats/_meta/test/stats.880.json new file mode 100644 index 00000000000..7127c8a0373 --- /dev/null +++ b/metricbeat/module/kibana/stats/_meta/test/stats.880.json @@ -0,0 +1,162 @@ +{ + "kibana":{ + "uuid":"5b2de169-2785-441b-ae8c-186a1936b17d", + "name":"Shaunaks-MBP-2", + "index":".kibana", + "host":"localhost", + "transport_address":"localhost:5601", + "version":"7.0.0-alpha1", + "snapshot":false, + "status":"green" + }, + "last_updated":"2018-07-18T00:32:00.948Z", + "collection_interval_ms":5000, + "process":{ + "memory":{ + "heap":{ + "total_bytes":223391744, + "used_bytes":198413592, + "size_limit":1501560832 + }, + "resident_set_size_bytes":347242496 + }, + "event_loop_delay":0.25226891040802, + "event_loop_utilization": { + "active": 629.1224170000005, + "idle": 359.23554199999995, + "utilization": 0.6365329598160299 + }, + "pid":46426, + "uptime_ms":1753889 + }, + "os":{ + "load":{ + "1m":3.50634765625, + "5m":3.76904296875, + "15m":3.54833984375 + }, + "memory":{ + "total_bytes":17179869184, + "free_bytes":31711232, + "used_bytes":17148157952 + }, + "uptime_ms":2187246000 + }, + "elasticsearch_client": { + "protocol": "http", + "connected_nodes": 2, + "nodes_with_active_sockets": 2, + "nodes_with_idle_sockets": 1, + "total_active_sockets": 14, + "total_idle_sockets": 42, + "total_queued_requests": 0, + "most_active_node_sockets": 10, + "average_active_sockets_per_node": 7, + "most_idle_node_sockets": 42, + "average_idle_sockets_per_node": 21 + }, + "response_times":{ + "max_ms":0 + }, + "requests":{ + "total":0, + "disconnects":0, + "status_codes":{ + + } + }, + "concurrent_connections":3, + "usage":{ + "kibana":{ + "index":".kibana", + "dashboard":{ + "total":0 + }, + "visualization":{ + "total":0 + }, + "search":{ + "total":0 + }, + "index_pattern":{ + "total":0 + }, + "graph_workspace":{ + "total":0 + }, + "timelion_sheet":{ + "total":0 + } + }, + "reporting":{ + "available":true, + "enabled":true, + "browser_type":"phantom", + "all":0, + "csv":{ + "available":true, + "total":0 + }, + "printable_pdf":{ + "available":true, + "total":0, + "app":{ + "visualization":0, + "dashboard":0 + }, + "layout":{ + "print":0, + "preserve_layout":0 + } + }, + "status":{ + + }, + "last_day":{ + "all":0, + "csv":{ + "available":true, + "total":0 + }, + "printable_pdf":{ + "available":true, + "total":0, + "app":{ + "visualization":0, + "dashboard":0 + }, + "layout":{ + "print":0, + "preserve_layout":0 + } + }, + "status":{ + + } + }, + "last_7_days":{ + "all":0, + "csv":{ + "available":true, + "total":0 + }, + "printable_pdf":{ + "available":true, + "total":0, + "app":{ + "visualization":0, + "dashboard":0 + }, + "layout":{ + "print":0, + "preserve_layout":0 + } + }, + "status":{ + + } + } + } + }, + "cluster_uuid":"NkfU5AinRnyFnqBD36zhEw" + } diff --git a/metricbeat/module/kibana/stats/data.go b/metricbeat/module/kibana/stats/data.go index 7d7afaf59b8..1675772ae05 100644 --- a/metricbeat/module/kibana/stats/data.go +++ b/metricbeat/module/kibana/stats/data.go @@ -68,6 +68,11 @@ var ( "event_loop_delay": s.Object{ "ms": c.Float("event_loop_delay"), }, + "event_loop_utilization": c.Dict("event_loop_utilization", s.Schema{ + "active": c.Float("active"), + "idle": c.Float("idle"), + "utilization": c.Float("utilization"), + }, c.DictOptional), "memory": c.Dict("memory", s.Schema{ "resident_set_size": s.Object{ "bytes": c.Int("resident_set_size_bytes"),