diff --git a/rfcs/text/0005-host-metric-fields.md b/rfcs/text/0005-host-metric-fields.md index 336d30e52b..43cabb8ec1 100644 --- a/rfcs/text/0005-host-metric-fields.md +++ b/rfcs/text/0005-host-metric-fields.md @@ -1,7 +1,7 @@ # 0005: Host Metric Fields -- Stage: **0 (strawperson)** +- Stage: **1 (proposal)** - Date: **2020-08-21** +This RFC calls for the addition of host fields to collect basic monitoring metrics from a host or VM such as CPU, network and disk. + +| field | type | description | +| --- | --- | --- | +| `host.cpu.usage` | scaled_float (scaling_factor 1000) | Percent CPU used with scaling_factor of 1000. This value is normalized by the number of CPU cores and it ranges from 0 to 1. For example: For a two core host, this value should be the average of the 2 cores, between 0 and 1. | +| `host.network.ingress.bytes` | long | The number of bytes received (gauge) on all network interfaces by the host in a given period of time. | +| `host.network.ingress.packets` | long | The number of packets (gauge) received on all network interfaces by the host in a given period of time. | +| `host.network.egress.bytes` | long | The number of bytes (gauge) sent out on all network interfaces by the host in a given period of time. | +| `host.network.egress.packets` | long | The number of packets (gauge) sent out on all network interfaces by the host in a given period of time. | +| `host.disk.read.bytes` | long | The total number of bytes (gauge) read successfully in a given period of time. | +| `host.disk.write.bytes` | long | The total number of bytes (gauge) write successfully in a given period of time. | +These host metrics will be collected from different kinds of hosts such as bare +metal, virtual machines or virtual machines on public clouds like AWS, Azure and +GCP. These host metrics will be the standard minimal used in resource centric UI +views. For example, when user has VMs on bare metal, AWS and Azure, these host +fields will be collected from all VMs across all platforms and displayed in a +centralized location for better monitoring experience. + ## Source data +* Bare metal +* VMs +* AWS EC2 instances +* GCP compute engines +* Azure compute VMs +No breaking changes required. +These are new fields already added into Metricbeat: +* aws ec2 metricset +* googlecloud compute metricset +* azure compute_vm metricset + +Only change would be once these fields are in ECS, we can remove these fields +from `metricbeat/_meta/fields.common.yml` file. + ## Concerns +We need to carefully define each field because when these metrics are collected +from different platforms/services, the scope of these metrics change. We need to +make sure when users are using these metrics, they are all collected to represent +the same thing. For example, `host.network.in.bytes` needs to be an aggregated +value for all network interfaces. `host.cpu.pct` needs to be a normalized value +between 0 and 1. + @@ -94,6 +133,8 @@ Stage 4: Identify at least one real-world, production-ready implementation that The following are the people that consulted on the contents of this RFC. * @kaiyan-sheng | author +* @cyrille-leclerc | sponsor +* @exekias | subject matter expert * Stage 0: https://github.com/elastic/ecs/pull/947 +* Stage 1: https://github.com/elastic/ecs/pull/950