diff --git a/.chloggen/add-more-vecenter-receiver-virtual-machine-preformace-metrics.yaml b/.chloggen/add-more-vecenter-receiver-virtual-machine-preformace-metrics.yaml
new file mode 100644
index 000000000000..46f56c13ca08
--- /dev/null
+++ b/.chloggen/add-more-vecenter-receiver-virtual-machine-preformace-metrics.yaml
@@ -0,0 +1,27 @@
+# Use this changelog template to create an entry for release notes.
+
+# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
+change_type: enhancement
+
+# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
+component: vcenterreceiver
+
+# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
+note: Adds six more Vcenter virtual machine performance metrics
+
+# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
+issues: [37488]
+
+# (Optional) One or more lines of additional information to render under the primary note.
+# These lines will be padded with 2 spaces and then inserted directly into the document.
+# Use pipe (|) for multiline entries.
+subtext:
+
+# If your change doesn't affect end users or the exported elements of any package,
+# you should instead start your pull request title with [chore] or use the "Skip Changelog" label.
+# Optional: The change log or logs in which this entry should be included.
+# e.g. '[user]' or '[user, api]'
+# Include 'user' if the change is relevant to end users.
+# Include 'api' if there is a change to a library API.
+# Default: '[user]'
+change_logs: [user]
diff --git a/receiver/vcenterreceiver/documentation.md b/receiver/vcenterreceiver/documentation.md
index 5657f5ed3531..9466f1267527 100644
--- a/receiver/vcenterreceiver/documentation.md
+++ b/receiver/vcenterreceiver/documentation.md
@@ -820,6 +820,62 @@ Total memory capacity of the host system.
| ---- | ----------- | ---------- | ----------------------- | --------- |
| MiBy | Sum | Double | Cumulative | false |
+### vcenter.vm.cpu.idle.time
+
+Total time that the CPU spent in an idle state.
+
+| Unit | Metric Type | Value Type |
+| ---- | ----------- | ---------- |
+| ms | Gauge | Int |
+
+#### Attributes
+
+| Name | Description | Values |
+| ---- | ----------- | ------ |
+| object | The object on the virtual machine or host that is being reported on. | Any Str |
+
+### vcenter.vm.cpu.latency.avg
+
+Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU.
+
+| Unit | Metric Type | Value Type |
+| ---- | ----------- | ---------- |
+| ms | Gauge | Int |
+
+#### Attributes
+
+| Name | Description | Values |
+| ---- | ----------- | ------ |
+| object | The object on the virtual machine or host that is being reported on. | Any Str |
+
+### vcenter.vm.cpu.ready.time
+
+Milliseconds of CPU time spent in ready state.
+
+| Unit | Metric Type | Value Type |
+| ---- | ----------- | ---------- |
+| ms | Gauge | Int |
+
+#### Attributes
+
+| Name | Description | Values |
+| ---- | ----------- | ------ |
+| object | The object on the virtual machine or host that is being reported on. | Any Str |
+
+### vcenter.vm.cpu.wait.time
+
+Total CPU time spent in wait state.The wait total includes time spent the CPU Idle, CPU Swap Wait, and CPU I/O Wait states.
+
+| Unit | Metric Type | Value Type |
+| ---- | ----------- | ---------- |
+| ms | Gauge | Int |
+
+#### Attributes
+
+| Name | Description | Values |
+| ---- | ----------- | ------ |
+| object | The object on the virtual machine or host that is being reported on. | Any Str |
+
### vcenter.vm.memory.granted
The amount of memory that is granted to a VM.
@@ -828,6 +884,40 @@ The amount of memory that is granted to a VM.
| ---- | ----------- | ---------- | ----------------------- | --------- |
| MiBy | Sum | Int | Cumulative | false |
+### vcenter.vm.network.broadcast.packet.rate
+
+The rate of broadcast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+
+As measured over the most recent 20s interval.
+
+| Unit | Metric Type | Value Type |
+| ---- | ----------- | ---------- |
+| {packets/s} | Gauge | Double |
+
+#### Attributes
+
+| Name | Description | Values |
+| ---- | ----------- | ------ |
+| direction | The direction of network throughput. | Str: ``transmitted``, ``received`` |
+| object | The object on the virtual machine or host that is being reported on. | Any Str |
+
+### vcenter.vm.network.multicast.packet.rate
+
+The rate of multicast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+
+As measured over the most recent 20s interval.
+
+| Unit | Metric Type | Value Type |
+| ---- | ----------- | ---------- |
+| {packets/s} | Gauge | Double |
+
+#### Attributes
+
+| Name | Description | Values |
+| ---- | ----------- | ------ |
+| direction | The direction of network throughput. | Str: ``transmitted``, ``received`` |
+| object | The object on the virtual machine or host that is being reported on. | Any Str |
+
## Resource Attributes
| Name | Description | Values | Enabled |
diff --git a/receiver/vcenterreceiver/internal/metadata/generated_config.go b/receiver/vcenterreceiver/internal/metadata/generated_config.go
index dd875d38847a..1f8753ce0262 100644
--- a/receiver/vcenterreceiver/internal/metadata/generated_config.go
+++ b/receiver/vcenterreceiver/internal/metadata/generated_config.go
@@ -28,74 +28,80 @@ func (ms *MetricConfig) Unmarshal(parser *confmap.Conf) error {
// MetricsConfig provides config for vcenter metrics.
type MetricsConfig struct {
- VcenterClusterCPUEffective MetricConfig `mapstructure:"vcenter.cluster.cpu.effective"`
- VcenterClusterCPULimit MetricConfig `mapstructure:"vcenter.cluster.cpu.limit"`
- VcenterClusterHostCount MetricConfig `mapstructure:"vcenter.cluster.host.count"`
- VcenterClusterMemoryEffective MetricConfig `mapstructure:"vcenter.cluster.memory.effective"`
- VcenterClusterMemoryLimit MetricConfig `mapstructure:"vcenter.cluster.memory.limit"`
- VcenterClusterVMCount MetricConfig `mapstructure:"vcenter.cluster.vm.count"`
- VcenterClusterVMTemplateCount MetricConfig `mapstructure:"vcenter.cluster.vm_template.count"`
- VcenterClusterVsanCongestions MetricConfig `mapstructure:"vcenter.cluster.vsan.congestions"`
- VcenterClusterVsanLatencyAvg MetricConfig `mapstructure:"vcenter.cluster.vsan.latency.avg"`
- VcenterClusterVsanOperations MetricConfig `mapstructure:"vcenter.cluster.vsan.operations"`
- VcenterClusterVsanThroughput MetricConfig `mapstructure:"vcenter.cluster.vsan.throughput"`
- VcenterDatacenterClusterCount MetricConfig `mapstructure:"vcenter.datacenter.cluster.count"`
- VcenterDatacenterCPULimit MetricConfig `mapstructure:"vcenter.datacenter.cpu.limit"`
- VcenterDatacenterDatastoreCount MetricConfig `mapstructure:"vcenter.datacenter.datastore.count"`
- VcenterDatacenterDiskSpace MetricConfig `mapstructure:"vcenter.datacenter.disk.space"`
- VcenterDatacenterHostCount MetricConfig `mapstructure:"vcenter.datacenter.host.count"`
- VcenterDatacenterMemoryLimit MetricConfig `mapstructure:"vcenter.datacenter.memory.limit"`
- VcenterDatacenterVMCount MetricConfig `mapstructure:"vcenter.datacenter.vm.count"`
- VcenterDatastoreDiskUsage MetricConfig `mapstructure:"vcenter.datastore.disk.usage"`
- VcenterDatastoreDiskUtilization MetricConfig `mapstructure:"vcenter.datastore.disk.utilization"`
- VcenterHostCPUCapacity MetricConfig `mapstructure:"vcenter.host.cpu.capacity"`
- VcenterHostCPUReserved MetricConfig `mapstructure:"vcenter.host.cpu.reserved"`
- VcenterHostCPUUsage MetricConfig `mapstructure:"vcenter.host.cpu.usage"`
- VcenterHostCPUUtilization MetricConfig `mapstructure:"vcenter.host.cpu.utilization"`
- VcenterHostDiskLatencyAvg MetricConfig `mapstructure:"vcenter.host.disk.latency.avg"`
- VcenterHostDiskLatencyMax MetricConfig `mapstructure:"vcenter.host.disk.latency.max"`
- VcenterHostDiskThroughput MetricConfig `mapstructure:"vcenter.host.disk.throughput"`
- VcenterHostMemoryCapacity MetricConfig `mapstructure:"vcenter.host.memory.capacity"`
- VcenterHostMemoryUsage MetricConfig `mapstructure:"vcenter.host.memory.usage"`
- VcenterHostMemoryUtilization MetricConfig `mapstructure:"vcenter.host.memory.utilization"`
- VcenterHostNetworkPacketDropRate MetricConfig `mapstructure:"vcenter.host.network.packet.drop.rate"`
- VcenterHostNetworkPacketErrorRate MetricConfig `mapstructure:"vcenter.host.network.packet.error.rate"`
- VcenterHostNetworkPacketRate MetricConfig `mapstructure:"vcenter.host.network.packet.rate"`
- VcenterHostNetworkThroughput MetricConfig `mapstructure:"vcenter.host.network.throughput"`
- VcenterHostNetworkUsage MetricConfig `mapstructure:"vcenter.host.network.usage"`
- VcenterHostVsanCacheHitRate MetricConfig `mapstructure:"vcenter.host.vsan.cache.hit_rate"`
- VcenterHostVsanCongestions MetricConfig `mapstructure:"vcenter.host.vsan.congestions"`
- VcenterHostVsanLatencyAvg MetricConfig `mapstructure:"vcenter.host.vsan.latency.avg"`
- VcenterHostVsanOperations MetricConfig `mapstructure:"vcenter.host.vsan.operations"`
- VcenterHostVsanThroughput MetricConfig `mapstructure:"vcenter.host.vsan.throughput"`
- VcenterResourcePoolCPUShares MetricConfig `mapstructure:"vcenter.resource_pool.cpu.shares"`
- VcenterResourcePoolCPUUsage MetricConfig `mapstructure:"vcenter.resource_pool.cpu.usage"`
- VcenterResourcePoolMemoryBallooned MetricConfig `mapstructure:"vcenter.resource_pool.memory.ballooned"`
- VcenterResourcePoolMemoryGranted MetricConfig `mapstructure:"vcenter.resource_pool.memory.granted"`
- VcenterResourcePoolMemoryShares MetricConfig `mapstructure:"vcenter.resource_pool.memory.shares"`
- VcenterResourcePoolMemorySwapped MetricConfig `mapstructure:"vcenter.resource_pool.memory.swapped"`
- VcenterResourcePoolMemoryUsage MetricConfig `mapstructure:"vcenter.resource_pool.memory.usage"`
- VcenterVMCPUReadiness MetricConfig `mapstructure:"vcenter.vm.cpu.readiness"`
- VcenterVMCPUUsage MetricConfig `mapstructure:"vcenter.vm.cpu.usage"`
- VcenterVMCPUUtilization MetricConfig `mapstructure:"vcenter.vm.cpu.utilization"`
- VcenterVMDiskLatencyAvg MetricConfig `mapstructure:"vcenter.vm.disk.latency.avg"`
- VcenterVMDiskLatencyMax MetricConfig `mapstructure:"vcenter.vm.disk.latency.max"`
- VcenterVMDiskThroughput MetricConfig `mapstructure:"vcenter.vm.disk.throughput"`
- VcenterVMDiskUsage MetricConfig `mapstructure:"vcenter.vm.disk.usage"`
- VcenterVMDiskUtilization MetricConfig `mapstructure:"vcenter.vm.disk.utilization"`
- VcenterVMMemoryBallooned MetricConfig `mapstructure:"vcenter.vm.memory.ballooned"`
- VcenterVMMemoryGranted MetricConfig `mapstructure:"vcenter.vm.memory.granted"`
- VcenterVMMemorySwapped MetricConfig `mapstructure:"vcenter.vm.memory.swapped"`
- VcenterVMMemorySwappedSsd MetricConfig `mapstructure:"vcenter.vm.memory.swapped_ssd"`
- VcenterVMMemoryUsage MetricConfig `mapstructure:"vcenter.vm.memory.usage"`
- VcenterVMMemoryUtilization MetricConfig `mapstructure:"vcenter.vm.memory.utilization"`
- VcenterVMNetworkPacketDropRate MetricConfig `mapstructure:"vcenter.vm.network.packet.drop.rate"`
- VcenterVMNetworkPacketRate MetricConfig `mapstructure:"vcenter.vm.network.packet.rate"`
- VcenterVMNetworkThroughput MetricConfig `mapstructure:"vcenter.vm.network.throughput"`
- VcenterVMNetworkUsage MetricConfig `mapstructure:"vcenter.vm.network.usage"`
- VcenterVMVsanLatencyAvg MetricConfig `mapstructure:"vcenter.vm.vsan.latency.avg"`
- VcenterVMVsanOperations MetricConfig `mapstructure:"vcenter.vm.vsan.operations"`
- VcenterVMVsanThroughput MetricConfig `mapstructure:"vcenter.vm.vsan.throughput"`
+ VcenterClusterCPUEffective MetricConfig `mapstructure:"vcenter.cluster.cpu.effective"`
+ VcenterClusterCPULimit MetricConfig `mapstructure:"vcenter.cluster.cpu.limit"`
+ VcenterClusterHostCount MetricConfig `mapstructure:"vcenter.cluster.host.count"`
+ VcenterClusterMemoryEffective MetricConfig `mapstructure:"vcenter.cluster.memory.effective"`
+ VcenterClusterMemoryLimit MetricConfig `mapstructure:"vcenter.cluster.memory.limit"`
+ VcenterClusterVMCount MetricConfig `mapstructure:"vcenter.cluster.vm.count"`
+ VcenterClusterVMTemplateCount MetricConfig `mapstructure:"vcenter.cluster.vm_template.count"`
+ VcenterClusterVsanCongestions MetricConfig `mapstructure:"vcenter.cluster.vsan.congestions"`
+ VcenterClusterVsanLatencyAvg MetricConfig `mapstructure:"vcenter.cluster.vsan.latency.avg"`
+ VcenterClusterVsanOperations MetricConfig `mapstructure:"vcenter.cluster.vsan.operations"`
+ VcenterClusterVsanThroughput MetricConfig `mapstructure:"vcenter.cluster.vsan.throughput"`
+ VcenterDatacenterClusterCount MetricConfig `mapstructure:"vcenter.datacenter.cluster.count"`
+ VcenterDatacenterCPULimit MetricConfig `mapstructure:"vcenter.datacenter.cpu.limit"`
+ VcenterDatacenterDatastoreCount MetricConfig `mapstructure:"vcenter.datacenter.datastore.count"`
+ VcenterDatacenterDiskSpace MetricConfig `mapstructure:"vcenter.datacenter.disk.space"`
+ VcenterDatacenterHostCount MetricConfig `mapstructure:"vcenter.datacenter.host.count"`
+ VcenterDatacenterMemoryLimit MetricConfig `mapstructure:"vcenter.datacenter.memory.limit"`
+ VcenterDatacenterVMCount MetricConfig `mapstructure:"vcenter.datacenter.vm.count"`
+ VcenterDatastoreDiskUsage MetricConfig `mapstructure:"vcenter.datastore.disk.usage"`
+ VcenterDatastoreDiskUtilization MetricConfig `mapstructure:"vcenter.datastore.disk.utilization"`
+ VcenterHostCPUCapacity MetricConfig `mapstructure:"vcenter.host.cpu.capacity"`
+ VcenterHostCPUReserved MetricConfig `mapstructure:"vcenter.host.cpu.reserved"`
+ VcenterHostCPUUsage MetricConfig `mapstructure:"vcenter.host.cpu.usage"`
+ VcenterHostCPUUtilization MetricConfig `mapstructure:"vcenter.host.cpu.utilization"`
+ VcenterHostDiskLatencyAvg MetricConfig `mapstructure:"vcenter.host.disk.latency.avg"`
+ VcenterHostDiskLatencyMax MetricConfig `mapstructure:"vcenter.host.disk.latency.max"`
+ VcenterHostDiskThroughput MetricConfig `mapstructure:"vcenter.host.disk.throughput"`
+ VcenterHostMemoryCapacity MetricConfig `mapstructure:"vcenter.host.memory.capacity"`
+ VcenterHostMemoryUsage MetricConfig `mapstructure:"vcenter.host.memory.usage"`
+ VcenterHostMemoryUtilization MetricConfig `mapstructure:"vcenter.host.memory.utilization"`
+ VcenterHostNetworkPacketDropRate MetricConfig `mapstructure:"vcenter.host.network.packet.drop.rate"`
+ VcenterHostNetworkPacketErrorRate MetricConfig `mapstructure:"vcenter.host.network.packet.error.rate"`
+ VcenterHostNetworkPacketRate MetricConfig `mapstructure:"vcenter.host.network.packet.rate"`
+ VcenterHostNetworkThroughput MetricConfig `mapstructure:"vcenter.host.network.throughput"`
+ VcenterHostNetworkUsage MetricConfig `mapstructure:"vcenter.host.network.usage"`
+ VcenterHostVsanCacheHitRate MetricConfig `mapstructure:"vcenter.host.vsan.cache.hit_rate"`
+ VcenterHostVsanCongestions MetricConfig `mapstructure:"vcenter.host.vsan.congestions"`
+ VcenterHostVsanLatencyAvg MetricConfig `mapstructure:"vcenter.host.vsan.latency.avg"`
+ VcenterHostVsanOperations MetricConfig `mapstructure:"vcenter.host.vsan.operations"`
+ VcenterHostVsanThroughput MetricConfig `mapstructure:"vcenter.host.vsan.throughput"`
+ VcenterResourcePoolCPUShares MetricConfig `mapstructure:"vcenter.resource_pool.cpu.shares"`
+ VcenterResourcePoolCPUUsage MetricConfig `mapstructure:"vcenter.resource_pool.cpu.usage"`
+ VcenterResourcePoolMemoryBallooned MetricConfig `mapstructure:"vcenter.resource_pool.memory.ballooned"`
+ VcenterResourcePoolMemoryGranted MetricConfig `mapstructure:"vcenter.resource_pool.memory.granted"`
+ VcenterResourcePoolMemoryShares MetricConfig `mapstructure:"vcenter.resource_pool.memory.shares"`
+ VcenterResourcePoolMemorySwapped MetricConfig `mapstructure:"vcenter.resource_pool.memory.swapped"`
+ VcenterResourcePoolMemoryUsage MetricConfig `mapstructure:"vcenter.resource_pool.memory.usage"`
+ VcenterVMCPUIdleTime MetricConfig `mapstructure:"vcenter.vm.cpu.idle.time"`
+ VcenterVMCPULatencyAvg MetricConfig `mapstructure:"vcenter.vm.cpu.latency.avg"`
+ VcenterVMCPUReadiness MetricConfig `mapstructure:"vcenter.vm.cpu.readiness"`
+ VcenterVMCPUReadyTime MetricConfig `mapstructure:"vcenter.vm.cpu.ready.time"`
+ VcenterVMCPUUsage MetricConfig `mapstructure:"vcenter.vm.cpu.usage"`
+ VcenterVMCPUUtilization MetricConfig `mapstructure:"vcenter.vm.cpu.utilization"`
+ VcenterVMCPUWaitTime MetricConfig `mapstructure:"vcenter.vm.cpu.wait.time"`
+ VcenterVMDiskLatencyAvg MetricConfig `mapstructure:"vcenter.vm.disk.latency.avg"`
+ VcenterVMDiskLatencyMax MetricConfig `mapstructure:"vcenter.vm.disk.latency.max"`
+ VcenterVMDiskThroughput MetricConfig `mapstructure:"vcenter.vm.disk.throughput"`
+ VcenterVMDiskUsage MetricConfig `mapstructure:"vcenter.vm.disk.usage"`
+ VcenterVMDiskUtilization MetricConfig `mapstructure:"vcenter.vm.disk.utilization"`
+ VcenterVMMemoryBallooned MetricConfig `mapstructure:"vcenter.vm.memory.ballooned"`
+ VcenterVMMemoryGranted MetricConfig `mapstructure:"vcenter.vm.memory.granted"`
+ VcenterVMMemorySwapped MetricConfig `mapstructure:"vcenter.vm.memory.swapped"`
+ VcenterVMMemorySwappedSsd MetricConfig `mapstructure:"vcenter.vm.memory.swapped_ssd"`
+ VcenterVMMemoryUsage MetricConfig `mapstructure:"vcenter.vm.memory.usage"`
+ VcenterVMMemoryUtilization MetricConfig `mapstructure:"vcenter.vm.memory.utilization"`
+ VcenterVMNetworkBroadcastPacketRate MetricConfig `mapstructure:"vcenter.vm.network.broadcast.packet.rate"`
+ VcenterVMNetworkMulticastPacketRate MetricConfig `mapstructure:"vcenter.vm.network.multicast.packet.rate"`
+ VcenterVMNetworkPacketDropRate MetricConfig `mapstructure:"vcenter.vm.network.packet.drop.rate"`
+ VcenterVMNetworkPacketRate MetricConfig `mapstructure:"vcenter.vm.network.packet.rate"`
+ VcenterVMNetworkThroughput MetricConfig `mapstructure:"vcenter.vm.network.throughput"`
+ VcenterVMNetworkUsage MetricConfig `mapstructure:"vcenter.vm.network.usage"`
+ VcenterVMVsanLatencyAvg MetricConfig `mapstructure:"vcenter.vm.vsan.latency.avg"`
+ VcenterVMVsanOperations MetricConfig `mapstructure:"vcenter.vm.vsan.operations"`
+ VcenterVMVsanThroughput MetricConfig `mapstructure:"vcenter.vm.vsan.throughput"`
}
func DefaultMetricsConfig() MetricsConfig {
@@ -241,15 +247,27 @@ func DefaultMetricsConfig() MetricsConfig {
VcenterResourcePoolMemoryUsage: MetricConfig{
Enabled: true,
},
+ VcenterVMCPUIdleTime: MetricConfig{
+ Enabled: false,
+ },
+ VcenterVMCPULatencyAvg: MetricConfig{
+ Enabled: false,
+ },
VcenterVMCPUReadiness: MetricConfig{
Enabled: true,
},
+ VcenterVMCPUReadyTime: MetricConfig{
+ Enabled: false,
+ },
VcenterVMCPUUsage: MetricConfig{
Enabled: true,
},
VcenterVMCPUUtilization: MetricConfig{
Enabled: true,
},
+ VcenterVMCPUWaitTime: MetricConfig{
+ Enabled: false,
+ },
VcenterVMDiskLatencyAvg: MetricConfig{
Enabled: true,
},
@@ -283,6 +301,12 @@ func DefaultMetricsConfig() MetricsConfig {
VcenterVMMemoryUtilization: MetricConfig{
Enabled: true,
},
+ VcenterVMNetworkBroadcastPacketRate: MetricConfig{
+ Enabled: false,
+ },
+ VcenterVMNetworkMulticastPacketRate: MetricConfig{
+ Enabled: false,
+ },
VcenterVMNetworkPacketDropRate: MetricConfig{
Enabled: true,
},
diff --git a/receiver/vcenterreceiver/internal/metadata/generated_config_test.go b/receiver/vcenterreceiver/internal/metadata/generated_config_test.go
index 66cf8d162b10..d66876ab176c 100644
--- a/receiver/vcenterreceiver/internal/metadata/generated_config_test.go
+++ b/receiver/vcenterreceiver/internal/metadata/generated_config_test.go
@@ -25,74 +25,80 @@ func TestMetricsBuilderConfig(t *testing.T) {
name: "all_set",
want: MetricsBuilderConfig{
Metrics: MetricsConfig{
- VcenterClusterCPUEffective: MetricConfig{Enabled: true},
- VcenterClusterCPULimit: MetricConfig{Enabled: true},
- VcenterClusterHostCount: MetricConfig{Enabled: true},
- VcenterClusterMemoryEffective: MetricConfig{Enabled: true},
- VcenterClusterMemoryLimit: MetricConfig{Enabled: true},
- VcenterClusterVMCount: MetricConfig{Enabled: true},
- VcenterClusterVMTemplateCount: MetricConfig{Enabled: true},
- VcenterClusterVsanCongestions: MetricConfig{Enabled: true},
- VcenterClusterVsanLatencyAvg: MetricConfig{Enabled: true},
- VcenterClusterVsanOperations: MetricConfig{Enabled: true},
- VcenterClusterVsanThroughput: MetricConfig{Enabled: true},
- VcenterDatacenterClusterCount: MetricConfig{Enabled: true},
- VcenterDatacenterCPULimit: MetricConfig{Enabled: true},
- VcenterDatacenterDatastoreCount: MetricConfig{Enabled: true},
- VcenterDatacenterDiskSpace: MetricConfig{Enabled: true},
- VcenterDatacenterHostCount: MetricConfig{Enabled: true},
- VcenterDatacenterMemoryLimit: MetricConfig{Enabled: true},
- VcenterDatacenterVMCount: MetricConfig{Enabled: true},
- VcenterDatastoreDiskUsage: MetricConfig{Enabled: true},
- VcenterDatastoreDiskUtilization: MetricConfig{Enabled: true},
- VcenterHostCPUCapacity: MetricConfig{Enabled: true},
- VcenterHostCPUReserved: MetricConfig{Enabled: true},
- VcenterHostCPUUsage: MetricConfig{Enabled: true},
- VcenterHostCPUUtilization: MetricConfig{Enabled: true},
- VcenterHostDiskLatencyAvg: MetricConfig{Enabled: true},
- VcenterHostDiskLatencyMax: MetricConfig{Enabled: true},
- VcenterHostDiskThroughput: MetricConfig{Enabled: true},
- VcenterHostMemoryCapacity: MetricConfig{Enabled: true},
- VcenterHostMemoryUsage: MetricConfig{Enabled: true},
- VcenterHostMemoryUtilization: MetricConfig{Enabled: true},
- VcenterHostNetworkPacketDropRate: MetricConfig{Enabled: true},
- VcenterHostNetworkPacketErrorRate: MetricConfig{Enabled: true},
- VcenterHostNetworkPacketRate: MetricConfig{Enabled: true},
- VcenterHostNetworkThroughput: MetricConfig{Enabled: true},
- VcenterHostNetworkUsage: MetricConfig{Enabled: true},
- VcenterHostVsanCacheHitRate: MetricConfig{Enabled: true},
- VcenterHostVsanCongestions: MetricConfig{Enabled: true},
- VcenterHostVsanLatencyAvg: MetricConfig{Enabled: true},
- VcenterHostVsanOperations: MetricConfig{Enabled: true},
- VcenterHostVsanThroughput: MetricConfig{Enabled: true},
- VcenterResourcePoolCPUShares: MetricConfig{Enabled: true},
- VcenterResourcePoolCPUUsage: MetricConfig{Enabled: true},
- VcenterResourcePoolMemoryBallooned: MetricConfig{Enabled: true},
- VcenterResourcePoolMemoryGranted: MetricConfig{Enabled: true},
- VcenterResourcePoolMemoryShares: MetricConfig{Enabled: true},
- VcenterResourcePoolMemorySwapped: MetricConfig{Enabled: true},
- VcenterResourcePoolMemoryUsage: MetricConfig{Enabled: true},
- VcenterVMCPUReadiness: MetricConfig{Enabled: true},
- VcenterVMCPUUsage: MetricConfig{Enabled: true},
- VcenterVMCPUUtilization: MetricConfig{Enabled: true},
- VcenterVMDiskLatencyAvg: MetricConfig{Enabled: true},
- VcenterVMDiskLatencyMax: MetricConfig{Enabled: true},
- VcenterVMDiskThroughput: MetricConfig{Enabled: true},
- VcenterVMDiskUsage: MetricConfig{Enabled: true},
- VcenterVMDiskUtilization: MetricConfig{Enabled: true},
- VcenterVMMemoryBallooned: MetricConfig{Enabled: true},
- VcenterVMMemoryGranted: MetricConfig{Enabled: true},
- VcenterVMMemorySwapped: MetricConfig{Enabled: true},
- VcenterVMMemorySwappedSsd: MetricConfig{Enabled: true},
- VcenterVMMemoryUsage: MetricConfig{Enabled: true},
- VcenterVMMemoryUtilization: MetricConfig{Enabled: true},
- VcenterVMNetworkPacketDropRate: MetricConfig{Enabled: true},
- VcenterVMNetworkPacketRate: MetricConfig{Enabled: true},
- VcenterVMNetworkThroughput: MetricConfig{Enabled: true},
- VcenterVMNetworkUsage: MetricConfig{Enabled: true},
- VcenterVMVsanLatencyAvg: MetricConfig{Enabled: true},
- VcenterVMVsanOperations: MetricConfig{Enabled: true},
- VcenterVMVsanThroughput: MetricConfig{Enabled: true},
+ VcenterClusterCPUEffective: MetricConfig{Enabled: true},
+ VcenterClusterCPULimit: MetricConfig{Enabled: true},
+ VcenterClusterHostCount: MetricConfig{Enabled: true},
+ VcenterClusterMemoryEffective: MetricConfig{Enabled: true},
+ VcenterClusterMemoryLimit: MetricConfig{Enabled: true},
+ VcenterClusterVMCount: MetricConfig{Enabled: true},
+ VcenterClusterVMTemplateCount: MetricConfig{Enabled: true},
+ VcenterClusterVsanCongestions: MetricConfig{Enabled: true},
+ VcenterClusterVsanLatencyAvg: MetricConfig{Enabled: true},
+ VcenterClusterVsanOperations: MetricConfig{Enabled: true},
+ VcenterClusterVsanThroughput: MetricConfig{Enabled: true},
+ VcenterDatacenterClusterCount: MetricConfig{Enabled: true},
+ VcenterDatacenterCPULimit: MetricConfig{Enabled: true},
+ VcenterDatacenterDatastoreCount: MetricConfig{Enabled: true},
+ VcenterDatacenterDiskSpace: MetricConfig{Enabled: true},
+ VcenterDatacenterHostCount: MetricConfig{Enabled: true},
+ VcenterDatacenterMemoryLimit: MetricConfig{Enabled: true},
+ VcenterDatacenterVMCount: MetricConfig{Enabled: true},
+ VcenterDatastoreDiskUsage: MetricConfig{Enabled: true},
+ VcenterDatastoreDiskUtilization: MetricConfig{Enabled: true},
+ VcenterHostCPUCapacity: MetricConfig{Enabled: true},
+ VcenterHostCPUReserved: MetricConfig{Enabled: true},
+ VcenterHostCPUUsage: MetricConfig{Enabled: true},
+ VcenterHostCPUUtilization: MetricConfig{Enabled: true},
+ VcenterHostDiskLatencyAvg: MetricConfig{Enabled: true},
+ VcenterHostDiskLatencyMax: MetricConfig{Enabled: true},
+ VcenterHostDiskThroughput: MetricConfig{Enabled: true},
+ VcenterHostMemoryCapacity: MetricConfig{Enabled: true},
+ VcenterHostMemoryUsage: MetricConfig{Enabled: true},
+ VcenterHostMemoryUtilization: MetricConfig{Enabled: true},
+ VcenterHostNetworkPacketDropRate: MetricConfig{Enabled: true},
+ VcenterHostNetworkPacketErrorRate: MetricConfig{Enabled: true},
+ VcenterHostNetworkPacketRate: MetricConfig{Enabled: true},
+ VcenterHostNetworkThroughput: MetricConfig{Enabled: true},
+ VcenterHostNetworkUsage: MetricConfig{Enabled: true},
+ VcenterHostVsanCacheHitRate: MetricConfig{Enabled: true},
+ VcenterHostVsanCongestions: MetricConfig{Enabled: true},
+ VcenterHostVsanLatencyAvg: MetricConfig{Enabled: true},
+ VcenterHostVsanOperations: MetricConfig{Enabled: true},
+ VcenterHostVsanThroughput: MetricConfig{Enabled: true},
+ VcenterResourcePoolCPUShares: MetricConfig{Enabled: true},
+ VcenterResourcePoolCPUUsage: MetricConfig{Enabled: true},
+ VcenterResourcePoolMemoryBallooned: MetricConfig{Enabled: true},
+ VcenterResourcePoolMemoryGranted: MetricConfig{Enabled: true},
+ VcenterResourcePoolMemoryShares: MetricConfig{Enabled: true},
+ VcenterResourcePoolMemorySwapped: MetricConfig{Enabled: true},
+ VcenterResourcePoolMemoryUsage: MetricConfig{Enabled: true},
+ VcenterVMCPUIdleTime: MetricConfig{Enabled: true},
+ VcenterVMCPULatencyAvg: MetricConfig{Enabled: true},
+ VcenterVMCPUReadiness: MetricConfig{Enabled: true},
+ VcenterVMCPUReadyTime: MetricConfig{Enabled: true},
+ VcenterVMCPUUsage: MetricConfig{Enabled: true},
+ VcenterVMCPUUtilization: MetricConfig{Enabled: true},
+ VcenterVMCPUWaitTime: MetricConfig{Enabled: true},
+ VcenterVMDiskLatencyAvg: MetricConfig{Enabled: true},
+ VcenterVMDiskLatencyMax: MetricConfig{Enabled: true},
+ VcenterVMDiskThroughput: MetricConfig{Enabled: true},
+ VcenterVMDiskUsage: MetricConfig{Enabled: true},
+ VcenterVMDiskUtilization: MetricConfig{Enabled: true},
+ VcenterVMMemoryBallooned: MetricConfig{Enabled: true},
+ VcenterVMMemoryGranted: MetricConfig{Enabled: true},
+ VcenterVMMemorySwapped: MetricConfig{Enabled: true},
+ VcenterVMMemorySwappedSsd: MetricConfig{Enabled: true},
+ VcenterVMMemoryUsage: MetricConfig{Enabled: true},
+ VcenterVMMemoryUtilization: MetricConfig{Enabled: true},
+ VcenterVMNetworkBroadcastPacketRate: MetricConfig{Enabled: true},
+ VcenterVMNetworkMulticastPacketRate: MetricConfig{Enabled: true},
+ VcenterVMNetworkPacketDropRate: MetricConfig{Enabled: true},
+ VcenterVMNetworkPacketRate: MetricConfig{Enabled: true},
+ VcenterVMNetworkThroughput: MetricConfig{Enabled: true},
+ VcenterVMNetworkUsage: MetricConfig{Enabled: true},
+ VcenterVMVsanLatencyAvg: MetricConfig{Enabled: true},
+ VcenterVMVsanOperations: MetricConfig{Enabled: true},
+ VcenterVMVsanThroughput: MetricConfig{Enabled: true},
},
ResourceAttributes: ResourceAttributesConfig{
VcenterClusterName: ResourceAttributeConfig{Enabled: true},
@@ -114,74 +120,80 @@ func TestMetricsBuilderConfig(t *testing.T) {
name: "none_set",
want: MetricsBuilderConfig{
Metrics: MetricsConfig{
- VcenterClusterCPUEffective: MetricConfig{Enabled: false},
- VcenterClusterCPULimit: MetricConfig{Enabled: false},
- VcenterClusterHostCount: MetricConfig{Enabled: false},
- VcenterClusterMemoryEffective: MetricConfig{Enabled: false},
- VcenterClusterMemoryLimit: MetricConfig{Enabled: false},
- VcenterClusterVMCount: MetricConfig{Enabled: false},
- VcenterClusterVMTemplateCount: MetricConfig{Enabled: false},
- VcenterClusterVsanCongestions: MetricConfig{Enabled: false},
- VcenterClusterVsanLatencyAvg: MetricConfig{Enabled: false},
- VcenterClusterVsanOperations: MetricConfig{Enabled: false},
- VcenterClusterVsanThroughput: MetricConfig{Enabled: false},
- VcenterDatacenterClusterCount: MetricConfig{Enabled: false},
- VcenterDatacenterCPULimit: MetricConfig{Enabled: false},
- VcenterDatacenterDatastoreCount: MetricConfig{Enabled: false},
- VcenterDatacenterDiskSpace: MetricConfig{Enabled: false},
- VcenterDatacenterHostCount: MetricConfig{Enabled: false},
- VcenterDatacenterMemoryLimit: MetricConfig{Enabled: false},
- VcenterDatacenterVMCount: MetricConfig{Enabled: false},
- VcenterDatastoreDiskUsage: MetricConfig{Enabled: false},
- VcenterDatastoreDiskUtilization: MetricConfig{Enabled: false},
- VcenterHostCPUCapacity: MetricConfig{Enabled: false},
- VcenterHostCPUReserved: MetricConfig{Enabled: false},
- VcenterHostCPUUsage: MetricConfig{Enabled: false},
- VcenterHostCPUUtilization: MetricConfig{Enabled: false},
- VcenterHostDiskLatencyAvg: MetricConfig{Enabled: false},
- VcenterHostDiskLatencyMax: MetricConfig{Enabled: false},
- VcenterHostDiskThroughput: MetricConfig{Enabled: false},
- VcenterHostMemoryCapacity: MetricConfig{Enabled: false},
- VcenterHostMemoryUsage: MetricConfig{Enabled: false},
- VcenterHostMemoryUtilization: MetricConfig{Enabled: false},
- VcenterHostNetworkPacketDropRate: MetricConfig{Enabled: false},
- VcenterHostNetworkPacketErrorRate: MetricConfig{Enabled: false},
- VcenterHostNetworkPacketRate: MetricConfig{Enabled: false},
- VcenterHostNetworkThroughput: MetricConfig{Enabled: false},
- VcenterHostNetworkUsage: MetricConfig{Enabled: false},
- VcenterHostVsanCacheHitRate: MetricConfig{Enabled: false},
- VcenterHostVsanCongestions: MetricConfig{Enabled: false},
- VcenterHostVsanLatencyAvg: MetricConfig{Enabled: false},
- VcenterHostVsanOperations: MetricConfig{Enabled: false},
- VcenterHostVsanThroughput: MetricConfig{Enabled: false},
- VcenterResourcePoolCPUShares: MetricConfig{Enabled: false},
- VcenterResourcePoolCPUUsage: MetricConfig{Enabled: false},
- VcenterResourcePoolMemoryBallooned: MetricConfig{Enabled: false},
- VcenterResourcePoolMemoryGranted: MetricConfig{Enabled: false},
- VcenterResourcePoolMemoryShares: MetricConfig{Enabled: false},
- VcenterResourcePoolMemorySwapped: MetricConfig{Enabled: false},
- VcenterResourcePoolMemoryUsage: MetricConfig{Enabled: false},
- VcenterVMCPUReadiness: MetricConfig{Enabled: false},
- VcenterVMCPUUsage: MetricConfig{Enabled: false},
- VcenterVMCPUUtilization: MetricConfig{Enabled: false},
- VcenterVMDiskLatencyAvg: MetricConfig{Enabled: false},
- VcenterVMDiskLatencyMax: MetricConfig{Enabled: false},
- VcenterVMDiskThroughput: MetricConfig{Enabled: false},
- VcenterVMDiskUsage: MetricConfig{Enabled: false},
- VcenterVMDiskUtilization: MetricConfig{Enabled: false},
- VcenterVMMemoryBallooned: MetricConfig{Enabled: false},
- VcenterVMMemoryGranted: MetricConfig{Enabled: false},
- VcenterVMMemorySwapped: MetricConfig{Enabled: false},
- VcenterVMMemorySwappedSsd: MetricConfig{Enabled: false},
- VcenterVMMemoryUsage: MetricConfig{Enabled: false},
- VcenterVMMemoryUtilization: MetricConfig{Enabled: false},
- VcenterVMNetworkPacketDropRate: MetricConfig{Enabled: false},
- VcenterVMNetworkPacketRate: MetricConfig{Enabled: false},
- VcenterVMNetworkThroughput: MetricConfig{Enabled: false},
- VcenterVMNetworkUsage: MetricConfig{Enabled: false},
- VcenterVMVsanLatencyAvg: MetricConfig{Enabled: false},
- VcenterVMVsanOperations: MetricConfig{Enabled: false},
- VcenterVMVsanThroughput: MetricConfig{Enabled: false},
+ VcenterClusterCPUEffective: MetricConfig{Enabled: false},
+ VcenterClusterCPULimit: MetricConfig{Enabled: false},
+ VcenterClusterHostCount: MetricConfig{Enabled: false},
+ VcenterClusterMemoryEffective: MetricConfig{Enabled: false},
+ VcenterClusterMemoryLimit: MetricConfig{Enabled: false},
+ VcenterClusterVMCount: MetricConfig{Enabled: false},
+ VcenterClusterVMTemplateCount: MetricConfig{Enabled: false},
+ VcenterClusterVsanCongestions: MetricConfig{Enabled: false},
+ VcenterClusterVsanLatencyAvg: MetricConfig{Enabled: false},
+ VcenterClusterVsanOperations: MetricConfig{Enabled: false},
+ VcenterClusterVsanThroughput: MetricConfig{Enabled: false},
+ VcenterDatacenterClusterCount: MetricConfig{Enabled: false},
+ VcenterDatacenterCPULimit: MetricConfig{Enabled: false},
+ VcenterDatacenterDatastoreCount: MetricConfig{Enabled: false},
+ VcenterDatacenterDiskSpace: MetricConfig{Enabled: false},
+ VcenterDatacenterHostCount: MetricConfig{Enabled: false},
+ VcenterDatacenterMemoryLimit: MetricConfig{Enabled: false},
+ VcenterDatacenterVMCount: MetricConfig{Enabled: false},
+ VcenterDatastoreDiskUsage: MetricConfig{Enabled: false},
+ VcenterDatastoreDiskUtilization: MetricConfig{Enabled: false},
+ VcenterHostCPUCapacity: MetricConfig{Enabled: false},
+ VcenterHostCPUReserved: MetricConfig{Enabled: false},
+ VcenterHostCPUUsage: MetricConfig{Enabled: false},
+ VcenterHostCPUUtilization: MetricConfig{Enabled: false},
+ VcenterHostDiskLatencyAvg: MetricConfig{Enabled: false},
+ VcenterHostDiskLatencyMax: MetricConfig{Enabled: false},
+ VcenterHostDiskThroughput: MetricConfig{Enabled: false},
+ VcenterHostMemoryCapacity: MetricConfig{Enabled: false},
+ VcenterHostMemoryUsage: MetricConfig{Enabled: false},
+ VcenterHostMemoryUtilization: MetricConfig{Enabled: false},
+ VcenterHostNetworkPacketDropRate: MetricConfig{Enabled: false},
+ VcenterHostNetworkPacketErrorRate: MetricConfig{Enabled: false},
+ VcenterHostNetworkPacketRate: MetricConfig{Enabled: false},
+ VcenterHostNetworkThroughput: MetricConfig{Enabled: false},
+ VcenterHostNetworkUsage: MetricConfig{Enabled: false},
+ VcenterHostVsanCacheHitRate: MetricConfig{Enabled: false},
+ VcenterHostVsanCongestions: MetricConfig{Enabled: false},
+ VcenterHostVsanLatencyAvg: MetricConfig{Enabled: false},
+ VcenterHostVsanOperations: MetricConfig{Enabled: false},
+ VcenterHostVsanThroughput: MetricConfig{Enabled: false},
+ VcenterResourcePoolCPUShares: MetricConfig{Enabled: false},
+ VcenterResourcePoolCPUUsage: MetricConfig{Enabled: false},
+ VcenterResourcePoolMemoryBallooned: MetricConfig{Enabled: false},
+ VcenterResourcePoolMemoryGranted: MetricConfig{Enabled: false},
+ VcenterResourcePoolMemoryShares: MetricConfig{Enabled: false},
+ VcenterResourcePoolMemorySwapped: MetricConfig{Enabled: false},
+ VcenterResourcePoolMemoryUsage: MetricConfig{Enabled: false},
+ VcenterVMCPUIdleTime: MetricConfig{Enabled: false},
+ VcenterVMCPULatencyAvg: MetricConfig{Enabled: false},
+ VcenterVMCPUReadiness: MetricConfig{Enabled: false},
+ VcenterVMCPUReadyTime: MetricConfig{Enabled: false},
+ VcenterVMCPUUsage: MetricConfig{Enabled: false},
+ VcenterVMCPUUtilization: MetricConfig{Enabled: false},
+ VcenterVMCPUWaitTime: MetricConfig{Enabled: false},
+ VcenterVMDiskLatencyAvg: MetricConfig{Enabled: false},
+ VcenterVMDiskLatencyMax: MetricConfig{Enabled: false},
+ VcenterVMDiskThroughput: MetricConfig{Enabled: false},
+ VcenterVMDiskUsage: MetricConfig{Enabled: false},
+ VcenterVMDiskUtilization: MetricConfig{Enabled: false},
+ VcenterVMMemoryBallooned: MetricConfig{Enabled: false},
+ VcenterVMMemoryGranted: MetricConfig{Enabled: false},
+ VcenterVMMemorySwapped: MetricConfig{Enabled: false},
+ VcenterVMMemorySwappedSsd: MetricConfig{Enabled: false},
+ VcenterVMMemoryUsage: MetricConfig{Enabled: false},
+ VcenterVMMemoryUtilization: MetricConfig{Enabled: false},
+ VcenterVMNetworkBroadcastPacketRate: MetricConfig{Enabled: false},
+ VcenterVMNetworkMulticastPacketRate: MetricConfig{Enabled: false},
+ VcenterVMNetworkPacketDropRate: MetricConfig{Enabled: false},
+ VcenterVMNetworkPacketRate: MetricConfig{Enabled: false},
+ VcenterVMNetworkThroughput: MetricConfig{Enabled: false},
+ VcenterVMNetworkUsage: MetricConfig{Enabled: false},
+ VcenterVMVsanLatencyAvg: MetricConfig{Enabled: false},
+ VcenterVMVsanOperations: MetricConfig{Enabled: false},
+ VcenterVMVsanThroughput: MetricConfig{Enabled: false},
},
ResourceAttributes: ResourceAttributesConfig{
VcenterClusterName: ResourceAttributeConfig{Enabled: false},
diff --git a/receiver/vcenterreceiver/internal/metadata/generated_metrics.go b/receiver/vcenterreceiver/internal/metadata/generated_metrics.go
index 3a31d62572d8..65c00d573203 100644
--- a/receiver/vcenterreceiver/internal/metadata/generated_metrics.go
+++ b/receiver/vcenterreceiver/internal/metadata/generated_metrics.go
@@ -2801,6 +2801,108 @@ func newMetricVcenterResourcePoolMemoryUsage(cfg MetricConfig) metricVcenterReso
return m
}
+type metricVcenterVMCPUIdleTime struct {
+ data pmetric.Metric // data buffer for generated metric.
+ config MetricConfig // metric config provided by user.
+ capacity int // max observed number of data points added to the metric.
+}
+
+// init fills vcenter.vm.cpu.idle.time metric with initial data.
+func (m *metricVcenterVMCPUIdleTime) init() {
+ m.data.SetName("vcenter.vm.cpu.idle.time")
+ m.data.SetDescription("Total time that the CPU spent in an idle state.")
+ m.data.SetUnit("ms")
+ m.data.SetEmptyGauge()
+ m.data.Gauge().DataPoints().EnsureCapacity(m.capacity)
+}
+
+func (m *metricVcenterVMCPUIdleTime) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, objectNameAttributeValue string) {
+ if !m.config.Enabled {
+ return
+ }
+ dp := m.data.Gauge().DataPoints().AppendEmpty()
+ dp.SetStartTimestamp(start)
+ dp.SetTimestamp(ts)
+ dp.SetIntValue(val)
+ dp.Attributes().PutStr("object", objectNameAttributeValue)
+}
+
+// updateCapacity saves max length of data point slices that will be used for the slice capacity.
+func (m *metricVcenterVMCPUIdleTime) updateCapacity() {
+ if m.data.Gauge().DataPoints().Len() > m.capacity {
+ m.capacity = m.data.Gauge().DataPoints().Len()
+ }
+}
+
+// emit appends recorded metric data to a metrics slice and prepares it for recording another set of data points.
+func (m *metricVcenterVMCPUIdleTime) emit(metrics pmetric.MetricSlice) {
+ if m.config.Enabled && m.data.Gauge().DataPoints().Len() > 0 {
+ m.updateCapacity()
+ m.data.MoveTo(metrics.AppendEmpty())
+ m.init()
+ }
+}
+
+func newMetricVcenterVMCPUIdleTime(cfg MetricConfig) metricVcenterVMCPUIdleTime {
+ m := metricVcenterVMCPUIdleTime{config: cfg}
+ if cfg.Enabled {
+ m.data = pmetric.NewMetric()
+ m.init()
+ }
+ return m
+}
+
+type metricVcenterVMCPULatencyAvg struct {
+ data pmetric.Metric // data buffer for generated metric.
+ config MetricConfig // metric config provided by user.
+ capacity int // max observed number of data points added to the metric.
+}
+
+// init fills vcenter.vm.cpu.latency.avg metric with initial data.
+func (m *metricVcenterVMCPULatencyAvg) init() {
+ m.data.SetName("vcenter.vm.cpu.latency.avg")
+ m.data.SetDescription("Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU.")
+ m.data.SetUnit("ms")
+ m.data.SetEmptyGauge()
+ m.data.Gauge().DataPoints().EnsureCapacity(m.capacity)
+}
+
+func (m *metricVcenterVMCPULatencyAvg) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, objectNameAttributeValue string) {
+ if !m.config.Enabled {
+ return
+ }
+ dp := m.data.Gauge().DataPoints().AppendEmpty()
+ dp.SetStartTimestamp(start)
+ dp.SetTimestamp(ts)
+ dp.SetIntValue(val)
+ dp.Attributes().PutStr("object", objectNameAttributeValue)
+}
+
+// updateCapacity saves max length of data point slices that will be used for the slice capacity.
+func (m *metricVcenterVMCPULatencyAvg) updateCapacity() {
+ if m.data.Gauge().DataPoints().Len() > m.capacity {
+ m.capacity = m.data.Gauge().DataPoints().Len()
+ }
+}
+
+// emit appends recorded metric data to a metrics slice and prepares it for recording another set of data points.
+func (m *metricVcenterVMCPULatencyAvg) emit(metrics pmetric.MetricSlice) {
+ if m.config.Enabled && m.data.Gauge().DataPoints().Len() > 0 {
+ m.updateCapacity()
+ m.data.MoveTo(metrics.AppendEmpty())
+ m.init()
+ }
+}
+
+func newMetricVcenterVMCPULatencyAvg(cfg MetricConfig) metricVcenterVMCPULatencyAvg {
+ m := metricVcenterVMCPULatencyAvg{config: cfg}
+ if cfg.Enabled {
+ m.data = pmetric.NewMetric()
+ m.init()
+ }
+ return m
+}
+
type metricVcenterVMCPUReadiness struct {
data pmetric.Metric // data buffer for generated metric.
config MetricConfig // metric config provided by user.
@@ -2850,6 +2952,57 @@ func newMetricVcenterVMCPUReadiness(cfg MetricConfig) metricVcenterVMCPUReadines
return m
}
+type metricVcenterVMCPUReadyTime struct {
+ data pmetric.Metric // data buffer for generated metric.
+ config MetricConfig // metric config provided by user.
+ capacity int // max observed number of data points added to the metric.
+}
+
+// init fills vcenter.vm.cpu.ready.time metric with initial data.
+func (m *metricVcenterVMCPUReadyTime) init() {
+ m.data.SetName("vcenter.vm.cpu.ready.time")
+ m.data.SetDescription("Milliseconds of CPU time spent in ready state.")
+ m.data.SetUnit("ms")
+ m.data.SetEmptyGauge()
+ m.data.Gauge().DataPoints().EnsureCapacity(m.capacity)
+}
+
+func (m *metricVcenterVMCPUReadyTime) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, objectNameAttributeValue string) {
+ if !m.config.Enabled {
+ return
+ }
+ dp := m.data.Gauge().DataPoints().AppendEmpty()
+ dp.SetStartTimestamp(start)
+ dp.SetTimestamp(ts)
+ dp.SetIntValue(val)
+ dp.Attributes().PutStr("object", objectNameAttributeValue)
+}
+
+// updateCapacity saves max length of data point slices that will be used for the slice capacity.
+func (m *metricVcenterVMCPUReadyTime) updateCapacity() {
+ if m.data.Gauge().DataPoints().Len() > m.capacity {
+ m.capacity = m.data.Gauge().DataPoints().Len()
+ }
+}
+
+// emit appends recorded metric data to a metrics slice and prepares it for recording another set of data points.
+func (m *metricVcenterVMCPUReadyTime) emit(metrics pmetric.MetricSlice) {
+ if m.config.Enabled && m.data.Gauge().DataPoints().Len() > 0 {
+ m.updateCapacity()
+ m.data.MoveTo(metrics.AppendEmpty())
+ m.init()
+ }
+}
+
+func newMetricVcenterVMCPUReadyTime(cfg MetricConfig) metricVcenterVMCPUReadyTime {
+ m := metricVcenterVMCPUReadyTime{config: cfg}
+ if cfg.Enabled {
+ m.data = pmetric.NewMetric()
+ m.init()
+ }
+ return m
+}
+
type metricVcenterVMCPUUsage struct {
data pmetric.Metric // data buffer for generated metric.
config MetricConfig // metric config provided by user.
@@ -2950,6 +3103,57 @@ func newMetricVcenterVMCPUUtilization(cfg MetricConfig) metricVcenterVMCPUUtiliz
return m
}
+type metricVcenterVMCPUWaitTime struct {
+ data pmetric.Metric // data buffer for generated metric.
+ config MetricConfig // metric config provided by user.
+ capacity int // max observed number of data points added to the metric.
+}
+
+// init fills vcenter.vm.cpu.wait.time metric with initial data.
+func (m *metricVcenterVMCPUWaitTime) init() {
+ m.data.SetName("vcenter.vm.cpu.wait.time")
+ m.data.SetDescription("Total CPU time spent in wait state.The wait total includes time spent the CPU Idle, CPU Swap Wait, and CPU I/O Wait states.")
+ m.data.SetUnit("ms")
+ m.data.SetEmptyGauge()
+ m.data.Gauge().DataPoints().EnsureCapacity(m.capacity)
+}
+
+func (m *metricVcenterVMCPUWaitTime) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, objectNameAttributeValue string) {
+ if !m.config.Enabled {
+ return
+ }
+ dp := m.data.Gauge().DataPoints().AppendEmpty()
+ dp.SetStartTimestamp(start)
+ dp.SetTimestamp(ts)
+ dp.SetIntValue(val)
+ dp.Attributes().PutStr("object", objectNameAttributeValue)
+}
+
+// updateCapacity saves max length of data point slices that will be used for the slice capacity.
+func (m *metricVcenterVMCPUWaitTime) updateCapacity() {
+ if m.data.Gauge().DataPoints().Len() > m.capacity {
+ m.capacity = m.data.Gauge().DataPoints().Len()
+ }
+}
+
+// emit appends recorded metric data to a metrics slice and prepares it for recording another set of data points.
+func (m *metricVcenterVMCPUWaitTime) emit(metrics pmetric.MetricSlice) {
+ if m.config.Enabled && m.data.Gauge().DataPoints().Len() > 0 {
+ m.updateCapacity()
+ m.data.MoveTo(metrics.AppendEmpty())
+ m.init()
+ }
+}
+
+func newMetricVcenterVMCPUWaitTime(cfg MetricConfig) metricVcenterVMCPUWaitTime {
+ m := metricVcenterVMCPUWaitTime{config: cfg}
+ if cfg.Enabled {
+ m.data = pmetric.NewMetric()
+ m.init()
+ }
+ return m
+}
+
type metricVcenterVMDiskLatencyAvg struct {
data pmetric.Metric // data buffer for generated metric.
config MetricConfig // metric config provided by user.
@@ -3512,6 +3716,110 @@ func newMetricVcenterVMMemoryUtilization(cfg MetricConfig) metricVcenterVMMemory
return m
}
+type metricVcenterVMNetworkBroadcastPacketRate struct {
+ data pmetric.Metric // data buffer for generated metric.
+ config MetricConfig // metric config provided by user.
+ capacity int // max observed number of data points added to the metric.
+}
+
+// init fills vcenter.vm.network.broadcast.packet.rate metric with initial data.
+func (m *metricVcenterVMNetworkBroadcastPacketRate) init() {
+ m.data.SetName("vcenter.vm.network.broadcast.packet.rate")
+ m.data.SetDescription("The rate of broadcast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.")
+ m.data.SetUnit("{packets/s}")
+ m.data.SetEmptyGauge()
+ m.data.Gauge().DataPoints().EnsureCapacity(m.capacity)
+}
+
+func (m *metricVcenterVMNetworkBroadcastPacketRate) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp, val float64, throughputDirectionAttributeValue string, objectNameAttributeValue string) {
+ if !m.config.Enabled {
+ return
+ }
+ dp := m.data.Gauge().DataPoints().AppendEmpty()
+ dp.SetStartTimestamp(start)
+ dp.SetTimestamp(ts)
+ dp.SetDoubleValue(val)
+ dp.Attributes().PutStr("direction", throughputDirectionAttributeValue)
+ dp.Attributes().PutStr("object", objectNameAttributeValue)
+}
+
+// updateCapacity saves max length of data point slices that will be used for the slice capacity.
+func (m *metricVcenterVMNetworkBroadcastPacketRate) updateCapacity() {
+ if m.data.Gauge().DataPoints().Len() > m.capacity {
+ m.capacity = m.data.Gauge().DataPoints().Len()
+ }
+}
+
+// emit appends recorded metric data to a metrics slice and prepares it for recording another set of data points.
+func (m *metricVcenterVMNetworkBroadcastPacketRate) emit(metrics pmetric.MetricSlice) {
+ if m.config.Enabled && m.data.Gauge().DataPoints().Len() > 0 {
+ m.updateCapacity()
+ m.data.MoveTo(metrics.AppendEmpty())
+ m.init()
+ }
+}
+
+func newMetricVcenterVMNetworkBroadcastPacketRate(cfg MetricConfig) metricVcenterVMNetworkBroadcastPacketRate {
+ m := metricVcenterVMNetworkBroadcastPacketRate{config: cfg}
+ if cfg.Enabled {
+ m.data = pmetric.NewMetric()
+ m.init()
+ }
+ return m
+}
+
+type metricVcenterVMNetworkMulticastPacketRate struct {
+ data pmetric.Metric // data buffer for generated metric.
+ config MetricConfig // metric config provided by user.
+ capacity int // max observed number of data points added to the metric.
+}
+
+// init fills vcenter.vm.network.multicast.packet.rate metric with initial data.
+func (m *metricVcenterVMNetworkMulticastPacketRate) init() {
+ m.data.SetName("vcenter.vm.network.multicast.packet.rate")
+ m.data.SetDescription("The rate of multicast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.")
+ m.data.SetUnit("{packets/s}")
+ m.data.SetEmptyGauge()
+ m.data.Gauge().DataPoints().EnsureCapacity(m.capacity)
+}
+
+func (m *metricVcenterVMNetworkMulticastPacketRate) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp, val float64, throughputDirectionAttributeValue string, objectNameAttributeValue string) {
+ if !m.config.Enabled {
+ return
+ }
+ dp := m.data.Gauge().DataPoints().AppendEmpty()
+ dp.SetStartTimestamp(start)
+ dp.SetTimestamp(ts)
+ dp.SetDoubleValue(val)
+ dp.Attributes().PutStr("direction", throughputDirectionAttributeValue)
+ dp.Attributes().PutStr("object", objectNameAttributeValue)
+}
+
+// updateCapacity saves max length of data point slices that will be used for the slice capacity.
+func (m *metricVcenterVMNetworkMulticastPacketRate) updateCapacity() {
+ if m.data.Gauge().DataPoints().Len() > m.capacity {
+ m.capacity = m.data.Gauge().DataPoints().Len()
+ }
+}
+
+// emit appends recorded metric data to a metrics slice and prepares it for recording another set of data points.
+func (m *metricVcenterVMNetworkMulticastPacketRate) emit(metrics pmetric.MetricSlice) {
+ if m.config.Enabled && m.data.Gauge().DataPoints().Len() > 0 {
+ m.updateCapacity()
+ m.data.MoveTo(metrics.AppendEmpty())
+ m.init()
+ }
+}
+
+func newMetricVcenterVMNetworkMulticastPacketRate(cfg MetricConfig) metricVcenterVMNetworkMulticastPacketRate {
+ m := metricVcenterVMNetworkMulticastPacketRate{config: cfg}
+ if cfg.Enabled {
+ m.data = pmetric.NewMetric()
+ m.init()
+ }
+ return m
+}
+
type metricVcenterVMNetworkPacketDropRate struct {
data pmetric.Metric // data buffer for generated metric.
config MetricConfig // metric config provided by user.
@@ -3879,81 +4187,87 @@ func newMetricVcenterVMVsanThroughput(cfg MetricConfig) metricVcenterVMVsanThrou
// MetricsBuilder provides an interface for scrapers to report metrics while taking care of all the transformations
// required to produce metric representation defined in metadata and user config.
type MetricsBuilder struct {
- config MetricsBuilderConfig // config of the metrics builder.
- startTime pcommon.Timestamp // start time that will be applied to all recorded data points.
- metricsCapacity int // maximum observed number of metrics per resource.
- metricsBuffer pmetric.Metrics // accumulates metrics data before emitting.
- buildInfo component.BuildInfo // contains version information.
- resourceAttributeIncludeFilter map[string]filter.Filter
- resourceAttributeExcludeFilter map[string]filter.Filter
- metricVcenterClusterCPUEffective metricVcenterClusterCPUEffective
- metricVcenterClusterCPULimit metricVcenterClusterCPULimit
- metricVcenterClusterHostCount metricVcenterClusterHostCount
- metricVcenterClusterMemoryEffective metricVcenterClusterMemoryEffective
- metricVcenterClusterMemoryLimit metricVcenterClusterMemoryLimit
- metricVcenterClusterVMCount metricVcenterClusterVMCount
- metricVcenterClusterVMTemplateCount metricVcenterClusterVMTemplateCount
- metricVcenterClusterVsanCongestions metricVcenterClusterVsanCongestions
- metricVcenterClusterVsanLatencyAvg metricVcenterClusterVsanLatencyAvg
- metricVcenterClusterVsanOperations metricVcenterClusterVsanOperations
- metricVcenterClusterVsanThroughput metricVcenterClusterVsanThroughput
- metricVcenterDatacenterClusterCount metricVcenterDatacenterClusterCount
- metricVcenterDatacenterCPULimit metricVcenterDatacenterCPULimit
- metricVcenterDatacenterDatastoreCount metricVcenterDatacenterDatastoreCount
- metricVcenterDatacenterDiskSpace metricVcenterDatacenterDiskSpace
- metricVcenterDatacenterHostCount metricVcenterDatacenterHostCount
- metricVcenterDatacenterMemoryLimit metricVcenterDatacenterMemoryLimit
- metricVcenterDatacenterVMCount metricVcenterDatacenterVMCount
- metricVcenterDatastoreDiskUsage metricVcenterDatastoreDiskUsage
- metricVcenterDatastoreDiskUtilization metricVcenterDatastoreDiskUtilization
- metricVcenterHostCPUCapacity metricVcenterHostCPUCapacity
- metricVcenterHostCPUReserved metricVcenterHostCPUReserved
- metricVcenterHostCPUUsage metricVcenterHostCPUUsage
- metricVcenterHostCPUUtilization metricVcenterHostCPUUtilization
- metricVcenterHostDiskLatencyAvg metricVcenterHostDiskLatencyAvg
- metricVcenterHostDiskLatencyMax metricVcenterHostDiskLatencyMax
- metricVcenterHostDiskThroughput metricVcenterHostDiskThroughput
- metricVcenterHostMemoryCapacity metricVcenterHostMemoryCapacity
- metricVcenterHostMemoryUsage metricVcenterHostMemoryUsage
- metricVcenterHostMemoryUtilization metricVcenterHostMemoryUtilization
- metricVcenterHostNetworkPacketDropRate metricVcenterHostNetworkPacketDropRate
- metricVcenterHostNetworkPacketErrorRate metricVcenterHostNetworkPacketErrorRate
- metricVcenterHostNetworkPacketRate metricVcenterHostNetworkPacketRate
- metricVcenterHostNetworkThroughput metricVcenterHostNetworkThroughput
- metricVcenterHostNetworkUsage metricVcenterHostNetworkUsage
- metricVcenterHostVsanCacheHitRate metricVcenterHostVsanCacheHitRate
- metricVcenterHostVsanCongestions metricVcenterHostVsanCongestions
- metricVcenterHostVsanLatencyAvg metricVcenterHostVsanLatencyAvg
- metricVcenterHostVsanOperations metricVcenterHostVsanOperations
- metricVcenterHostVsanThroughput metricVcenterHostVsanThroughput
- metricVcenterResourcePoolCPUShares metricVcenterResourcePoolCPUShares
- metricVcenterResourcePoolCPUUsage metricVcenterResourcePoolCPUUsage
- metricVcenterResourcePoolMemoryBallooned metricVcenterResourcePoolMemoryBallooned
- metricVcenterResourcePoolMemoryGranted metricVcenterResourcePoolMemoryGranted
- metricVcenterResourcePoolMemoryShares metricVcenterResourcePoolMemoryShares
- metricVcenterResourcePoolMemorySwapped metricVcenterResourcePoolMemorySwapped
- metricVcenterResourcePoolMemoryUsage metricVcenterResourcePoolMemoryUsage
- metricVcenterVMCPUReadiness metricVcenterVMCPUReadiness
- metricVcenterVMCPUUsage metricVcenterVMCPUUsage
- metricVcenterVMCPUUtilization metricVcenterVMCPUUtilization
- metricVcenterVMDiskLatencyAvg metricVcenterVMDiskLatencyAvg
- metricVcenterVMDiskLatencyMax metricVcenterVMDiskLatencyMax
- metricVcenterVMDiskThroughput metricVcenterVMDiskThroughput
- metricVcenterVMDiskUsage metricVcenterVMDiskUsage
- metricVcenterVMDiskUtilization metricVcenterVMDiskUtilization
- metricVcenterVMMemoryBallooned metricVcenterVMMemoryBallooned
- metricVcenterVMMemoryGranted metricVcenterVMMemoryGranted
- metricVcenterVMMemorySwapped metricVcenterVMMemorySwapped
- metricVcenterVMMemorySwappedSsd metricVcenterVMMemorySwappedSsd
- metricVcenterVMMemoryUsage metricVcenterVMMemoryUsage
- metricVcenterVMMemoryUtilization metricVcenterVMMemoryUtilization
- metricVcenterVMNetworkPacketDropRate metricVcenterVMNetworkPacketDropRate
- metricVcenterVMNetworkPacketRate metricVcenterVMNetworkPacketRate
- metricVcenterVMNetworkThroughput metricVcenterVMNetworkThroughput
- metricVcenterVMNetworkUsage metricVcenterVMNetworkUsage
- metricVcenterVMVsanLatencyAvg metricVcenterVMVsanLatencyAvg
- metricVcenterVMVsanOperations metricVcenterVMVsanOperations
- metricVcenterVMVsanThroughput metricVcenterVMVsanThroughput
+ config MetricsBuilderConfig // config of the metrics builder.
+ startTime pcommon.Timestamp // start time that will be applied to all recorded data points.
+ metricsCapacity int // maximum observed number of metrics per resource.
+ metricsBuffer pmetric.Metrics // accumulates metrics data before emitting.
+ buildInfo component.BuildInfo // contains version information.
+ resourceAttributeIncludeFilter map[string]filter.Filter
+ resourceAttributeExcludeFilter map[string]filter.Filter
+ metricVcenterClusterCPUEffective metricVcenterClusterCPUEffective
+ metricVcenterClusterCPULimit metricVcenterClusterCPULimit
+ metricVcenterClusterHostCount metricVcenterClusterHostCount
+ metricVcenterClusterMemoryEffective metricVcenterClusterMemoryEffective
+ metricVcenterClusterMemoryLimit metricVcenterClusterMemoryLimit
+ metricVcenterClusterVMCount metricVcenterClusterVMCount
+ metricVcenterClusterVMTemplateCount metricVcenterClusterVMTemplateCount
+ metricVcenterClusterVsanCongestions metricVcenterClusterVsanCongestions
+ metricVcenterClusterVsanLatencyAvg metricVcenterClusterVsanLatencyAvg
+ metricVcenterClusterVsanOperations metricVcenterClusterVsanOperations
+ metricVcenterClusterVsanThroughput metricVcenterClusterVsanThroughput
+ metricVcenterDatacenterClusterCount metricVcenterDatacenterClusterCount
+ metricVcenterDatacenterCPULimit metricVcenterDatacenterCPULimit
+ metricVcenterDatacenterDatastoreCount metricVcenterDatacenterDatastoreCount
+ metricVcenterDatacenterDiskSpace metricVcenterDatacenterDiskSpace
+ metricVcenterDatacenterHostCount metricVcenterDatacenterHostCount
+ metricVcenterDatacenterMemoryLimit metricVcenterDatacenterMemoryLimit
+ metricVcenterDatacenterVMCount metricVcenterDatacenterVMCount
+ metricVcenterDatastoreDiskUsage metricVcenterDatastoreDiskUsage
+ metricVcenterDatastoreDiskUtilization metricVcenterDatastoreDiskUtilization
+ metricVcenterHostCPUCapacity metricVcenterHostCPUCapacity
+ metricVcenterHostCPUReserved metricVcenterHostCPUReserved
+ metricVcenterHostCPUUsage metricVcenterHostCPUUsage
+ metricVcenterHostCPUUtilization metricVcenterHostCPUUtilization
+ metricVcenterHostDiskLatencyAvg metricVcenterHostDiskLatencyAvg
+ metricVcenterHostDiskLatencyMax metricVcenterHostDiskLatencyMax
+ metricVcenterHostDiskThroughput metricVcenterHostDiskThroughput
+ metricVcenterHostMemoryCapacity metricVcenterHostMemoryCapacity
+ metricVcenterHostMemoryUsage metricVcenterHostMemoryUsage
+ metricVcenterHostMemoryUtilization metricVcenterHostMemoryUtilization
+ metricVcenterHostNetworkPacketDropRate metricVcenterHostNetworkPacketDropRate
+ metricVcenterHostNetworkPacketErrorRate metricVcenterHostNetworkPacketErrorRate
+ metricVcenterHostNetworkPacketRate metricVcenterHostNetworkPacketRate
+ metricVcenterHostNetworkThroughput metricVcenterHostNetworkThroughput
+ metricVcenterHostNetworkUsage metricVcenterHostNetworkUsage
+ metricVcenterHostVsanCacheHitRate metricVcenterHostVsanCacheHitRate
+ metricVcenterHostVsanCongestions metricVcenterHostVsanCongestions
+ metricVcenterHostVsanLatencyAvg metricVcenterHostVsanLatencyAvg
+ metricVcenterHostVsanOperations metricVcenterHostVsanOperations
+ metricVcenterHostVsanThroughput metricVcenterHostVsanThroughput
+ metricVcenterResourcePoolCPUShares metricVcenterResourcePoolCPUShares
+ metricVcenterResourcePoolCPUUsage metricVcenterResourcePoolCPUUsage
+ metricVcenterResourcePoolMemoryBallooned metricVcenterResourcePoolMemoryBallooned
+ metricVcenterResourcePoolMemoryGranted metricVcenterResourcePoolMemoryGranted
+ metricVcenterResourcePoolMemoryShares metricVcenterResourcePoolMemoryShares
+ metricVcenterResourcePoolMemorySwapped metricVcenterResourcePoolMemorySwapped
+ metricVcenterResourcePoolMemoryUsage metricVcenterResourcePoolMemoryUsage
+ metricVcenterVMCPUIdleTime metricVcenterVMCPUIdleTime
+ metricVcenterVMCPULatencyAvg metricVcenterVMCPULatencyAvg
+ metricVcenterVMCPUReadiness metricVcenterVMCPUReadiness
+ metricVcenterVMCPUReadyTime metricVcenterVMCPUReadyTime
+ metricVcenterVMCPUUsage metricVcenterVMCPUUsage
+ metricVcenterVMCPUUtilization metricVcenterVMCPUUtilization
+ metricVcenterVMCPUWaitTime metricVcenterVMCPUWaitTime
+ metricVcenterVMDiskLatencyAvg metricVcenterVMDiskLatencyAvg
+ metricVcenterVMDiskLatencyMax metricVcenterVMDiskLatencyMax
+ metricVcenterVMDiskThroughput metricVcenterVMDiskThroughput
+ metricVcenterVMDiskUsage metricVcenterVMDiskUsage
+ metricVcenterVMDiskUtilization metricVcenterVMDiskUtilization
+ metricVcenterVMMemoryBallooned metricVcenterVMMemoryBallooned
+ metricVcenterVMMemoryGranted metricVcenterVMMemoryGranted
+ metricVcenterVMMemorySwapped metricVcenterVMMemorySwapped
+ metricVcenterVMMemorySwappedSsd metricVcenterVMMemorySwappedSsd
+ metricVcenterVMMemoryUsage metricVcenterVMMemoryUsage
+ metricVcenterVMMemoryUtilization metricVcenterVMMemoryUtilization
+ metricVcenterVMNetworkBroadcastPacketRate metricVcenterVMNetworkBroadcastPacketRate
+ metricVcenterVMNetworkMulticastPacketRate metricVcenterVMNetworkMulticastPacketRate
+ metricVcenterVMNetworkPacketDropRate metricVcenterVMNetworkPacketDropRate
+ metricVcenterVMNetworkPacketRate metricVcenterVMNetworkPacketRate
+ metricVcenterVMNetworkThroughput metricVcenterVMNetworkThroughput
+ metricVcenterVMNetworkUsage metricVcenterVMNetworkUsage
+ metricVcenterVMVsanLatencyAvg metricVcenterVMVsanLatencyAvg
+ metricVcenterVMVsanOperations metricVcenterVMVsanOperations
+ metricVcenterVMVsanThroughput metricVcenterVMVsanThroughput
}
// MetricBuilderOption applies changes to default metrics builder.
@@ -3975,80 +4289,86 @@ func WithStartTime(startTime pcommon.Timestamp) MetricBuilderOption {
}
func NewMetricsBuilder(mbc MetricsBuilderConfig, settings receiver.Settings, options ...MetricBuilderOption) *MetricsBuilder {
mb := &MetricsBuilder{
- config: mbc,
- startTime: pcommon.NewTimestampFromTime(time.Now()),
- metricsBuffer: pmetric.NewMetrics(),
- buildInfo: settings.BuildInfo,
- metricVcenterClusterCPUEffective: newMetricVcenterClusterCPUEffective(mbc.Metrics.VcenterClusterCPUEffective),
- metricVcenterClusterCPULimit: newMetricVcenterClusterCPULimit(mbc.Metrics.VcenterClusterCPULimit),
- metricVcenterClusterHostCount: newMetricVcenterClusterHostCount(mbc.Metrics.VcenterClusterHostCount),
- metricVcenterClusterMemoryEffective: newMetricVcenterClusterMemoryEffective(mbc.Metrics.VcenterClusterMemoryEffective),
- metricVcenterClusterMemoryLimit: newMetricVcenterClusterMemoryLimit(mbc.Metrics.VcenterClusterMemoryLimit),
- metricVcenterClusterVMCount: newMetricVcenterClusterVMCount(mbc.Metrics.VcenterClusterVMCount),
- metricVcenterClusterVMTemplateCount: newMetricVcenterClusterVMTemplateCount(mbc.Metrics.VcenterClusterVMTemplateCount),
- metricVcenterClusterVsanCongestions: newMetricVcenterClusterVsanCongestions(mbc.Metrics.VcenterClusterVsanCongestions),
- metricVcenterClusterVsanLatencyAvg: newMetricVcenterClusterVsanLatencyAvg(mbc.Metrics.VcenterClusterVsanLatencyAvg),
- metricVcenterClusterVsanOperations: newMetricVcenterClusterVsanOperations(mbc.Metrics.VcenterClusterVsanOperations),
- metricVcenterClusterVsanThroughput: newMetricVcenterClusterVsanThroughput(mbc.Metrics.VcenterClusterVsanThroughput),
- metricVcenterDatacenterClusterCount: newMetricVcenterDatacenterClusterCount(mbc.Metrics.VcenterDatacenterClusterCount),
- metricVcenterDatacenterCPULimit: newMetricVcenterDatacenterCPULimit(mbc.Metrics.VcenterDatacenterCPULimit),
- metricVcenterDatacenterDatastoreCount: newMetricVcenterDatacenterDatastoreCount(mbc.Metrics.VcenterDatacenterDatastoreCount),
- metricVcenterDatacenterDiskSpace: newMetricVcenterDatacenterDiskSpace(mbc.Metrics.VcenterDatacenterDiskSpace),
- metricVcenterDatacenterHostCount: newMetricVcenterDatacenterHostCount(mbc.Metrics.VcenterDatacenterHostCount),
- metricVcenterDatacenterMemoryLimit: newMetricVcenterDatacenterMemoryLimit(mbc.Metrics.VcenterDatacenterMemoryLimit),
- metricVcenterDatacenterVMCount: newMetricVcenterDatacenterVMCount(mbc.Metrics.VcenterDatacenterVMCount),
- metricVcenterDatastoreDiskUsage: newMetricVcenterDatastoreDiskUsage(mbc.Metrics.VcenterDatastoreDiskUsage),
- metricVcenterDatastoreDiskUtilization: newMetricVcenterDatastoreDiskUtilization(mbc.Metrics.VcenterDatastoreDiskUtilization),
- metricVcenterHostCPUCapacity: newMetricVcenterHostCPUCapacity(mbc.Metrics.VcenterHostCPUCapacity),
- metricVcenterHostCPUReserved: newMetricVcenterHostCPUReserved(mbc.Metrics.VcenterHostCPUReserved),
- metricVcenterHostCPUUsage: newMetricVcenterHostCPUUsage(mbc.Metrics.VcenterHostCPUUsage),
- metricVcenterHostCPUUtilization: newMetricVcenterHostCPUUtilization(mbc.Metrics.VcenterHostCPUUtilization),
- metricVcenterHostDiskLatencyAvg: newMetricVcenterHostDiskLatencyAvg(mbc.Metrics.VcenterHostDiskLatencyAvg),
- metricVcenterHostDiskLatencyMax: newMetricVcenterHostDiskLatencyMax(mbc.Metrics.VcenterHostDiskLatencyMax),
- metricVcenterHostDiskThroughput: newMetricVcenterHostDiskThroughput(mbc.Metrics.VcenterHostDiskThroughput),
- metricVcenterHostMemoryCapacity: newMetricVcenterHostMemoryCapacity(mbc.Metrics.VcenterHostMemoryCapacity),
- metricVcenterHostMemoryUsage: newMetricVcenterHostMemoryUsage(mbc.Metrics.VcenterHostMemoryUsage),
- metricVcenterHostMemoryUtilization: newMetricVcenterHostMemoryUtilization(mbc.Metrics.VcenterHostMemoryUtilization),
- metricVcenterHostNetworkPacketDropRate: newMetricVcenterHostNetworkPacketDropRate(mbc.Metrics.VcenterHostNetworkPacketDropRate),
- metricVcenterHostNetworkPacketErrorRate: newMetricVcenterHostNetworkPacketErrorRate(mbc.Metrics.VcenterHostNetworkPacketErrorRate),
- metricVcenterHostNetworkPacketRate: newMetricVcenterHostNetworkPacketRate(mbc.Metrics.VcenterHostNetworkPacketRate),
- metricVcenterHostNetworkThroughput: newMetricVcenterHostNetworkThroughput(mbc.Metrics.VcenterHostNetworkThroughput),
- metricVcenterHostNetworkUsage: newMetricVcenterHostNetworkUsage(mbc.Metrics.VcenterHostNetworkUsage),
- metricVcenterHostVsanCacheHitRate: newMetricVcenterHostVsanCacheHitRate(mbc.Metrics.VcenterHostVsanCacheHitRate),
- metricVcenterHostVsanCongestions: newMetricVcenterHostVsanCongestions(mbc.Metrics.VcenterHostVsanCongestions),
- metricVcenterHostVsanLatencyAvg: newMetricVcenterHostVsanLatencyAvg(mbc.Metrics.VcenterHostVsanLatencyAvg),
- metricVcenterHostVsanOperations: newMetricVcenterHostVsanOperations(mbc.Metrics.VcenterHostVsanOperations),
- metricVcenterHostVsanThroughput: newMetricVcenterHostVsanThroughput(mbc.Metrics.VcenterHostVsanThroughput),
- metricVcenterResourcePoolCPUShares: newMetricVcenterResourcePoolCPUShares(mbc.Metrics.VcenterResourcePoolCPUShares),
- metricVcenterResourcePoolCPUUsage: newMetricVcenterResourcePoolCPUUsage(mbc.Metrics.VcenterResourcePoolCPUUsage),
- metricVcenterResourcePoolMemoryBallooned: newMetricVcenterResourcePoolMemoryBallooned(mbc.Metrics.VcenterResourcePoolMemoryBallooned),
- metricVcenterResourcePoolMemoryGranted: newMetricVcenterResourcePoolMemoryGranted(mbc.Metrics.VcenterResourcePoolMemoryGranted),
- metricVcenterResourcePoolMemoryShares: newMetricVcenterResourcePoolMemoryShares(mbc.Metrics.VcenterResourcePoolMemoryShares),
- metricVcenterResourcePoolMemorySwapped: newMetricVcenterResourcePoolMemorySwapped(mbc.Metrics.VcenterResourcePoolMemorySwapped),
- metricVcenterResourcePoolMemoryUsage: newMetricVcenterResourcePoolMemoryUsage(mbc.Metrics.VcenterResourcePoolMemoryUsage),
- metricVcenterVMCPUReadiness: newMetricVcenterVMCPUReadiness(mbc.Metrics.VcenterVMCPUReadiness),
- metricVcenterVMCPUUsage: newMetricVcenterVMCPUUsage(mbc.Metrics.VcenterVMCPUUsage),
- metricVcenterVMCPUUtilization: newMetricVcenterVMCPUUtilization(mbc.Metrics.VcenterVMCPUUtilization),
- metricVcenterVMDiskLatencyAvg: newMetricVcenterVMDiskLatencyAvg(mbc.Metrics.VcenterVMDiskLatencyAvg),
- metricVcenterVMDiskLatencyMax: newMetricVcenterVMDiskLatencyMax(mbc.Metrics.VcenterVMDiskLatencyMax),
- metricVcenterVMDiskThroughput: newMetricVcenterVMDiskThroughput(mbc.Metrics.VcenterVMDiskThroughput),
- metricVcenterVMDiskUsage: newMetricVcenterVMDiskUsage(mbc.Metrics.VcenterVMDiskUsage),
- metricVcenterVMDiskUtilization: newMetricVcenterVMDiskUtilization(mbc.Metrics.VcenterVMDiskUtilization),
- metricVcenterVMMemoryBallooned: newMetricVcenterVMMemoryBallooned(mbc.Metrics.VcenterVMMemoryBallooned),
- metricVcenterVMMemoryGranted: newMetricVcenterVMMemoryGranted(mbc.Metrics.VcenterVMMemoryGranted),
- metricVcenterVMMemorySwapped: newMetricVcenterVMMemorySwapped(mbc.Metrics.VcenterVMMemorySwapped),
- metricVcenterVMMemorySwappedSsd: newMetricVcenterVMMemorySwappedSsd(mbc.Metrics.VcenterVMMemorySwappedSsd),
- metricVcenterVMMemoryUsage: newMetricVcenterVMMemoryUsage(mbc.Metrics.VcenterVMMemoryUsage),
- metricVcenterVMMemoryUtilization: newMetricVcenterVMMemoryUtilization(mbc.Metrics.VcenterVMMemoryUtilization),
- metricVcenterVMNetworkPacketDropRate: newMetricVcenterVMNetworkPacketDropRate(mbc.Metrics.VcenterVMNetworkPacketDropRate),
- metricVcenterVMNetworkPacketRate: newMetricVcenterVMNetworkPacketRate(mbc.Metrics.VcenterVMNetworkPacketRate),
- metricVcenterVMNetworkThroughput: newMetricVcenterVMNetworkThroughput(mbc.Metrics.VcenterVMNetworkThroughput),
- metricVcenterVMNetworkUsage: newMetricVcenterVMNetworkUsage(mbc.Metrics.VcenterVMNetworkUsage),
- metricVcenterVMVsanLatencyAvg: newMetricVcenterVMVsanLatencyAvg(mbc.Metrics.VcenterVMVsanLatencyAvg),
- metricVcenterVMVsanOperations: newMetricVcenterVMVsanOperations(mbc.Metrics.VcenterVMVsanOperations),
- metricVcenterVMVsanThroughput: newMetricVcenterVMVsanThroughput(mbc.Metrics.VcenterVMVsanThroughput),
- resourceAttributeIncludeFilter: make(map[string]filter.Filter),
- resourceAttributeExcludeFilter: make(map[string]filter.Filter),
+ config: mbc,
+ startTime: pcommon.NewTimestampFromTime(time.Now()),
+ metricsBuffer: pmetric.NewMetrics(),
+ buildInfo: settings.BuildInfo,
+ metricVcenterClusterCPUEffective: newMetricVcenterClusterCPUEffective(mbc.Metrics.VcenterClusterCPUEffective),
+ metricVcenterClusterCPULimit: newMetricVcenterClusterCPULimit(mbc.Metrics.VcenterClusterCPULimit),
+ metricVcenterClusterHostCount: newMetricVcenterClusterHostCount(mbc.Metrics.VcenterClusterHostCount),
+ metricVcenterClusterMemoryEffective: newMetricVcenterClusterMemoryEffective(mbc.Metrics.VcenterClusterMemoryEffective),
+ metricVcenterClusterMemoryLimit: newMetricVcenterClusterMemoryLimit(mbc.Metrics.VcenterClusterMemoryLimit),
+ metricVcenterClusterVMCount: newMetricVcenterClusterVMCount(mbc.Metrics.VcenterClusterVMCount),
+ metricVcenterClusterVMTemplateCount: newMetricVcenterClusterVMTemplateCount(mbc.Metrics.VcenterClusterVMTemplateCount),
+ metricVcenterClusterVsanCongestions: newMetricVcenterClusterVsanCongestions(mbc.Metrics.VcenterClusterVsanCongestions),
+ metricVcenterClusterVsanLatencyAvg: newMetricVcenterClusterVsanLatencyAvg(mbc.Metrics.VcenterClusterVsanLatencyAvg),
+ metricVcenterClusterVsanOperations: newMetricVcenterClusterVsanOperations(mbc.Metrics.VcenterClusterVsanOperations),
+ metricVcenterClusterVsanThroughput: newMetricVcenterClusterVsanThroughput(mbc.Metrics.VcenterClusterVsanThroughput),
+ metricVcenterDatacenterClusterCount: newMetricVcenterDatacenterClusterCount(mbc.Metrics.VcenterDatacenterClusterCount),
+ metricVcenterDatacenterCPULimit: newMetricVcenterDatacenterCPULimit(mbc.Metrics.VcenterDatacenterCPULimit),
+ metricVcenterDatacenterDatastoreCount: newMetricVcenterDatacenterDatastoreCount(mbc.Metrics.VcenterDatacenterDatastoreCount),
+ metricVcenterDatacenterDiskSpace: newMetricVcenterDatacenterDiskSpace(mbc.Metrics.VcenterDatacenterDiskSpace),
+ metricVcenterDatacenterHostCount: newMetricVcenterDatacenterHostCount(mbc.Metrics.VcenterDatacenterHostCount),
+ metricVcenterDatacenterMemoryLimit: newMetricVcenterDatacenterMemoryLimit(mbc.Metrics.VcenterDatacenterMemoryLimit),
+ metricVcenterDatacenterVMCount: newMetricVcenterDatacenterVMCount(mbc.Metrics.VcenterDatacenterVMCount),
+ metricVcenterDatastoreDiskUsage: newMetricVcenterDatastoreDiskUsage(mbc.Metrics.VcenterDatastoreDiskUsage),
+ metricVcenterDatastoreDiskUtilization: newMetricVcenterDatastoreDiskUtilization(mbc.Metrics.VcenterDatastoreDiskUtilization),
+ metricVcenterHostCPUCapacity: newMetricVcenterHostCPUCapacity(mbc.Metrics.VcenterHostCPUCapacity),
+ metricVcenterHostCPUReserved: newMetricVcenterHostCPUReserved(mbc.Metrics.VcenterHostCPUReserved),
+ metricVcenterHostCPUUsage: newMetricVcenterHostCPUUsage(mbc.Metrics.VcenterHostCPUUsage),
+ metricVcenterHostCPUUtilization: newMetricVcenterHostCPUUtilization(mbc.Metrics.VcenterHostCPUUtilization),
+ metricVcenterHostDiskLatencyAvg: newMetricVcenterHostDiskLatencyAvg(mbc.Metrics.VcenterHostDiskLatencyAvg),
+ metricVcenterHostDiskLatencyMax: newMetricVcenterHostDiskLatencyMax(mbc.Metrics.VcenterHostDiskLatencyMax),
+ metricVcenterHostDiskThroughput: newMetricVcenterHostDiskThroughput(mbc.Metrics.VcenterHostDiskThroughput),
+ metricVcenterHostMemoryCapacity: newMetricVcenterHostMemoryCapacity(mbc.Metrics.VcenterHostMemoryCapacity),
+ metricVcenterHostMemoryUsage: newMetricVcenterHostMemoryUsage(mbc.Metrics.VcenterHostMemoryUsage),
+ metricVcenterHostMemoryUtilization: newMetricVcenterHostMemoryUtilization(mbc.Metrics.VcenterHostMemoryUtilization),
+ metricVcenterHostNetworkPacketDropRate: newMetricVcenterHostNetworkPacketDropRate(mbc.Metrics.VcenterHostNetworkPacketDropRate),
+ metricVcenterHostNetworkPacketErrorRate: newMetricVcenterHostNetworkPacketErrorRate(mbc.Metrics.VcenterHostNetworkPacketErrorRate),
+ metricVcenterHostNetworkPacketRate: newMetricVcenterHostNetworkPacketRate(mbc.Metrics.VcenterHostNetworkPacketRate),
+ metricVcenterHostNetworkThroughput: newMetricVcenterHostNetworkThroughput(mbc.Metrics.VcenterHostNetworkThroughput),
+ metricVcenterHostNetworkUsage: newMetricVcenterHostNetworkUsage(mbc.Metrics.VcenterHostNetworkUsage),
+ metricVcenterHostVsanCacheHitRate: newMetricVcenterHostVsanCacheHitRate(mbc.Metrics.VcenterHostVsanCacheHitRate),
+ metricVcenterHostVsanCongestions: newMetricVcenterHostVsanCongestions(mbc.Metrics.VcenterHostVsanCongestions),
+ metricVcenterHostVsanLatencyAvg: newMetricVcenterHostVsanLatencyAvg(mbc.Metrics.VcenterHostVsanLatencyAvg),
+ metricVcenterHostVsanOperations: newMetricVcenterHostVsanOperations(mbc.Metrics.VcenterHostVsanOperations),
+ metricVcenterHostVsanThroughput: newMetricVcenterHostVsanThroughput(mbc.Metrics.VcenterHostVsanThroughput),
+ metricVcenterResourcePoolCPUShares: newMetricVcenterResourcePoolCPUShares(mbc.Metrics.VcenterResourcePoolCPUShares),
+ metricVcenterResourcePoolCPUUsage: newMetricVcenterResourcePoolCPUUsage(mbc.Metrics.VcenterResourcePoolCPUUsage),
+ metricVcenterResourcePoolMemoryBallooned: newMetricVcenterResourcePoolMemoryBallooned(mbc.Metrics.VcenterResourcePoolMemoryBallooned),
+ metricVcenterResourcePoolMemoryGranted: newMetricVcenterResourcePoolMemoryGranted(mbc.Metrics.VcenterResourcePoolMemoryGranted),
+ metricVcenterResourcePoolMemoryShares: newMetricVcenterResourcePoolMemoryShares(mbc.Metrics.VcenterResourcePoolMemoryShares),
+ metricVcenterResourcePoolMemorySwapped: newMetricVcenterResourcePoolMemorySwapped(mbc.Metrics.VcenterResourcePoolMemorySwapped),
+ metricVcenterResourcePoolMemoryUsage: newMetricVcenterResourcePoolMemoryUsage(mbc.Metrics.VcenterResourcePoolMemoryUsage),
+ metricVcenterVMCPUIdleTime: newMetricVcenterVMCPUIdleTime(mbc.Metrics.VcenterVMCPUIdleTime),
+ metricVcenterVMCPULatencyAvg: newMetricVcenterVMCPULatencyAvg(mbc.Metrics.VcenterVMCPULatencyAvg),
+ metricVcenterVMCPUReadiness: newMetricVcenterVMCPUReadiness(mbc.Metrics.VcenterVMCPUReadiness),
+ metricVcenterVMCPUReadyTime: newMetricVcenterVMCPUReadyTime(mbc.Metrics.VcenterVMCPUReadyTime),
+ metricVcenterVMCPUUsage: newMetricVcenterVMCPUUsage(mbc.Metrics.VcenterVMCPUUsage),
+ metricVcenterVMCPUUtilization: newMetricVcenterVMCPUUtilization(mbc.Metrics.VcenterVMCPUUtilization),
+ metricVcenterVMCPUWaitTime: newMetricVcenterVMCPUWaitTime(mbc.Metrics.VcenterVMCPUWaitTime),
+ metricVcenterVMDiskLatencyAvg: newMetricVcenterVMDiskLatencyAvg(mbc.Metrics.VcenterVMDiskLatencyAvg),
+ metricVcenterVMDiskLatencyMax: newMetricVcenterVMDiskLatencyMax(mbc.Metrics.VcenterVMDiskLatencyMax),
+ metricVcenterVMDiskThroughput: newMetricVcenterVMDiskThroughput(mbc.Metrics.VcenterVMDiskThroughput),
+ metricVcenterVMDiskUsage: newMetricVcenterVMDiskUsage(mbc.Metrics.VcenterVMDiskUsage),
+ metricVcenterVMDiskUtilization: newMetricVcenterVMDiskUtilization(mbc.Metrics.VcenterVMDiskUtilization),
+ metricVcenterVMMemoryBallooned: newMetricVcenterVMMemoryBallooned(mbc.Metrics.VcenterVMMemoryBallooned),
+ metricVcenterVMMemoryGranted: newMetricVcenterVMMemoryGranted(mbc.Metrics.VcenterVMMemoryGranted),
+ metricVcenterVMMemorySwapped: newMetricVcenterVMMemorySwapped(mbc.Metrics.VcenterVMMemorySwapped),
+ metricVcenterVMMemorySwappedSsd: newMetricVcenterVMMemorySwappedSsd(mbc.Metrics.VcenterVMMemorySwappedSsd),
+ metricVcenterVMMemoryUsage: newMetricVcenterVMMemoryUsage(mbc.Metrics.VcenterVMMemoryUsage),
+ metricVcenterVMMemoryUtilization: newMetricVcenterVMMemoryUtilization(mbc.Metrics.VcenterVMMemoryUtilization),
+ metricVcenterVMNetworkBroadcastPacketRate: newMetricVcenterVMNetworkBroadcastPacketRate(mbc.Metrics.VcenterVMNetworkBroadcastPacketRate),
+ metricVcenterVMNetworkMulticastPacketRate: newMetricVcenterVMNetworkMulticastPacketRate(mbc.Metrics.VcenterVMNetworkMulticastPacketRate),
+ metricVcenterVMNetworkPacketDropRate: newMetricVcenterVMNetworkPacketDropRate(mbc.Metrics.VcenterVMNetworkPacketDropRate),
+ metricVcenterVMNetworkPacketRate: newMetricVcenterVMNetworkPacketRate(mbc.Metrics.VcenterVMNetworkPacketRate),
+ metricVcenterVMNetworkThroughput: newMetricVcenterVMNetworkThroughput(mbc.Metrics.VcenterVMNetworkThroughput),
+ metricVcenterVMNetworkUsage: newMetricVcenterVMNetworkUsage(mbc.Metrics.VcenterVMNetworkUsage),
+ metricVcenterVMVsanLatencyAvg: newMetricVcenterVMVsanLatencyAvg(mbc.Metrics.VcenterVMVsanLatencyAvg),
+ metricVcenterVMVsanOperations: newMetricVcenterVMVsanOperations(mbc.Metrics.VcenterVMVsanOperations),
+ metricVcenterVMVsanThroughput: newMetricVcenterVMVsanThroughput(mbc.Metrics.VcenterVMVsanThroughput),
+ resourceAttributeIncludeFilter: make(map[string]filter.Filter),
+ resourceAttributeExcludeFilter: make(map[string]filter.Filter),
}
if mbc.ResourceAttributes.VcenterClusterName.MetricsInclude != nil {
mb.resourceAttributeIncludeFilter["vcenter.cluster.name"] = filter.CreateFilter(mbc.ResourceAttributes.VcenterClusterName.MetricsInclude)
@@ -4238,9 +4558,13 @@ func (mb *MetricsBuilder) EmitForResource(options ...ResourceMetricsOption) {
mb.metricVcenterResourcePoolMemoryShares.emit(ils.Metrics())
mb.metricVcenterResourcePoolMemorySwapped.emit(ils.Metrics())
mb.metricVcenterResourcePoolMemoryUsage.emit(ils.Metrics())
+ mb.metricVcenterVMCPUIdleTime.emit(ils.Metrics())
+ mb.metricVcenterVMCPULatencyAvg.emit(ils.Metrics())
mb.metricVcenterVMCPUReadiness.emit(ils.Metrics())
+ mb.metricVcenterVMCPUReadyTime.emit(ils.Metrics())
mb.metricVcenterVMCPUUsage.emit(ils.Metrics())
mb.metricVcenterVMCPUUtilization.emit(ils.Metrics())
+ mb.metricVcenterVMCPUWaitTime.emit(ils.Metrics())
mb.metricVcenterVMDiskLatencyAvg.emit(ils.Metrics())
mb.metricVcenterVMDiskLatencyMax.emit(ils.Metrics())
mb.metricVcenterVMDiskThroughput.emit(ils.Metrics())
@@ -4252,6 +4576,8 @@ func (mb *MetricsBuilder) EmitForResource(options ...ResourceMetricsOption) {
mb.metricVcenterVMMemorySwappedSsd.emit(ils.Metrics())
mb.metricVcenterVMMemoryUsage.emit(ils.Metrics())
mb.metricVcenterVMMemoryUtilization.emit(ils.Metrics())
+ mb.metricVcenterVMNetworkBroadcastPacketRate.emit(ils.Metrics())
+ mb.metricVcenterVMNetworkMulticastPacketRate.emit(ils.Metrics())
mb.metricVcenterVMNetworkPacketDropRate.emit(ils.Metrics())
mb.metricVcenterVMNetworkPacketRate.emit(ils.Metrics())
mb.metricVcenterVMNetworkThroughput.emit(ils.Metrics())
@@ -4525,11 +4851,26 @@ func (mb *MetricsBuilder) RecordVcenterResourcePoolMemoryUsageDataPoint(ts pcomm
mb.metricVcenterResourcePoolMemoryUsage.recordDataPoint(mb.startTime, ts, val, memoryUsageTypeAttributeValue.String())
}
+// RecordVcenterVMCPUIdleTimeDataPoint adds a data point to vcenter.vm.cpu.idle.time metric.
+func (mb *MetricsBuilder) RecordVcenterVMCPUIdleTimeDataPoint(ts pcommon.Timestamp, val int64, objectNameAttributeValue string) {
+ mb.metricVcenterVMCPUIdleTime.recordDataPoint(mb.startTime, ts, val, objectNameAttributeValue)
+}
+
+// RecordVcenterVMCPULatencyAvgDataPoint adds a data point to vcenter.vm.cpu.latency.avg metric.
+func (mb *MetricsBuilder) RecordVcenterVMCPULatencyAvgDataPoint(ts pcommon.Timestamp, val int64, objectNameAttributeValue string) {
+ mb.metricVcenterVMCPULatencyAvg.recordDataPoint(mb.startTime, ts, val, objectNameAttributeValue)
+}
+
// RecordVcenterVMCPUReadinessDataPoint adds a data point to vcenter.vm.cpu.readiness metric.
func (mb *MetricsBuilder) RecordVcenterVMCPUReadinessDataPoint(ts pcommon.Timestamp, val int64) {
mb.metricVcenterVMCPUReadiness.recordDataPoint(mb.startTime, ts, val)
}
+// RecordVcenterVMCPUReadyTimeDataPoint adds a data point to vcenter.vm.cpu.ready.time metric.
+func (mb *MetricsBuilder) RecordVcenterVMCPUReadyTimeDataPoint(ts pcommon.Timestamp, val int64, objectNameAttributeValue string) {
+ mb.metricVcenterVMCPUReadyTime.recordDataPoint(mb.startTime, ts, val, objectNameAttributeValue)
+}
+
// RecordVcenterVMCPUUsageDataPoint adds a data point to vcenter.vm.cpu.usage metric.
func (mb *MetricsBuilder) RecordVcenterVMCPUUsageDataPoint(ts pcommon.Timestamp, val int64) {
mb.metricVcenterVMCPUUsage.recordDataPoint(mb.startTime, ts, val)
@@ -4540,6 +4881,11 @@ func (mb *MetricsBuilder) RecordVcenterVMCPUUtilizationDataPoint(ts pcommon.Time
mb.metricVcenterVMCPUUtilization.recordDataPoint(mb.startTime, ts, val)
}
+// RecordVcenterVMCPUWaitTimeDataPoint adds a data point to vcenter.vm.cpu.wait.time metric.
+func (mb *MetricsBuilder) RecordVcenterVMCPUWaitTimeDataPoint(ts pcommon.Timestamp, val int64, objectNameAttributeValue string) {
+ mb.metricVcenterVMCPUWaitTime.recordDataPoint(mb.startTime, ts, val, objectNameAttributeValue)
+}
+
// RecordVcenterVMDiskLatencyAvgDataPoint adds a data point to vcenter.vm.disk.latency.avg metric.
func (mb *MetricsBuilder) RecordVcenterVMDiskLatencyAvgDataPoint(ts pcommon.Timestamp, val int64, diskDirectionAttributeValue AttributeDiskDirection, diskTypeAttributeValue AttributeDiskType, objectNameAttributeValue string) {
mb.metricVcenterVMDiskLatencyAvg.recordDataPoint(mb.startTime, ts, val, diskDirectionAttributeValue.String(), diskTypeAttributeValue.String(), objectNameAttributeValue)
@@ -4595,6 +4941,16 @@ func (mb *MetricsBuilder) RecordVcenterVMMemoryUtilizationDataPoint(ts pcommon.T
mb.metricVcenterVMMemoryUtilization.recordDataPoint(mb.startTime, ts, val)
}
+// RecordVcenterVMNetworkBroadcastPacketRateDataPoint adds a data point to vcenter.vm.network.broadcast.packet.rate metric.
+func (mb *MetricsBuilder) RecordVcenterVMNetworkBroadcastPacketRateDataPoint(ts pcommon.Timestamp, val float64, throughputDirectionAttributeValue AttributeThroughputDirection, objectNameAttributeValue string) {
+ mb.metricVcenterVMNetworkBroadcastPacketRate.recordDataPoint(mb.startTime, ts, val, throughputDirectionAttributeValue.String(), objectNameAttributeValue)
+}
+
+// RecordVcenterVMNetworkMulticastPacketRateDataPoint adds a data point to vcenter.vm.network.multicast.packet.rate metric.
+func (mb *MetricsBuilder) RecordVcenterVMNetworkMulticastPacketRateDataPoint(ts pcommon.Timestamp, val float64, throughputDirectionAttributeValue AttributeThroughputDirection, objectNameAttributeValue string) {
+ mb.metricVcenterVMNetworkMulticastPacketRate.recordDataPoint(mb.startTime, ts, val, throughputDirectionAttributeValue.String(), objectNameAttributeValue)
+}
+
// RecordVcenterVMNetworkPacketDropRateDataPoint adds a data point to vcenter.vm.network.packet.drop.rate metric.
func (mb *MetricsBuilder) RecordVcenterVMNetworkPacketDropRateDataPoint(ts pcommon.Timestamp, val float64, throughputDirectionAttributeValue AttributeThroughputDirection, objectNameAttributeValue string) {
mb.metricVcenterVMNetworkPacketDropRate.recordDataPoint(mb.startTime, ts, val, throughputDirectionAttributeValue.String(), objectNameAttributeValue)
diff --git a/receiver/vcenterreceiver/internal/metadata/generated_metrics_test.go b/receiver/vcenterreceiver/internal/metadata/generated_metrics_test.go
index f286196dda59..50bf5a2749db 100644
--- a/receiver/vcenterreceiver/internal/metadata/generated_metrics_test.go
+++ b/receiver/vcenterreceiver/internal/metadata/generated_metrics_test.go
@@ -255,10 +255,19 @@ func TestMetricsBuilder(t *testing.T) {
allMetricsCount++
mb.RecordVcenterResourcePoolMemoryUsageDataPoint(ts, 1, AttributeMemoryUsageTypeGuest)
+ allMetricsCount++
+ mb.RecordVcenterVMCPUIdleTimeDataPoint(ts, 1, "object_name-val")
+
+ allMetricsCount++
+ mb.RecordVcenterVMCPULatencyAvgDataPoint(ts, 1, "object_name-val")
+
defaultMetricsCount++
allMetricsCount++
mb.RecordVcenterVMCPUReadinessDataPoint(ts, 1)
+ allMetricsCount++
+ mb.RecordVcenterVMCPUReadyTimeDataPoint(ts, 1, "object_name-val")
+
defaultMetricsCount++
allMetricsCount++
mb.RecordVcenterVMCPUUsageDataPoint(ts, 1)
@@ -267,6 +276,9 @@ func TestMetricsBuilder(t *testing.T) {
allMetricsCount++
mb.RecordVcenterVMCPUUtilizationDataPoint(ts, 1)
+ allMetricsCount++
+ mb.RecordVcenterVMCPUWaitTimeDataPoint(ts, 1, "object_name-val")
+
defaultMetricsCount++
allMetricsCount++
mb.RecordVcenterVMDiskLatencyAvgDataPoint(ts, 1, AttributeDiskDirectionRead, AttributeDiskTypeVirtual, "object_name-val")
@@ -310,6 +322,12 @@ func TestMetricsBuilder(t *testing.T) {
allMetricsCount++
mb.RecordVcenterVMMemoryUtilizationDataPoint(ts, 1)
+ allMetricsCount++
+ mb.RecordVcenterVMNetworkBroadcastPacketRateDataPoint(ts, 1, AttributeThroughputDirectionTransmitted, "object_name-val")
+
+ allMetricsCount++
+ mb.RecordVcenterVMNetworkMulticastPacketRateDataPoint(ts, 1, AttributeThroughputDirectionTransmitted, "object_name-val")
+
defaultMetricsCount++
allMetricsCount++
mb.RecordVcenterVMNetworkPacketDropRateDataPoint(ts, 1, AttributeThroughputDirectionTransmitted, "object_name-val")
@@ -1093,6 +1111,36 @@ func TestMetricsBuilder(t *testing.T) {
attrVal, ok := dp.Attributes().Get("type")
assert.True(t, ok)
assert.EqualValues(t, "guest", attrVal.Str())
+ case "vcenter.vm.cpu.idle.time":
+ assert.False(t, validatedMetrics["vcenter.vm.cpu.idle.time"], "Found a duplicate in the metrics slice: vcenter.vm.cpu.idle.time")
+ validatedMetrics["vcenter.vm.cpu.idle.time"] = true
+ assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
+ assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
+ assert.Equal(t, "Total time that the CPU spent in an idle state.", ms.At(i).Description())
+ assert.Equal(t, "ms", ms.At(i).Unit())
+ dp := ms.At(i).Gauge().DataPoints().At(0)
+ assert.Equal(t, start, dp.StartTimestamp())
+ assert.Equal(t, ts, dp.Timestamp())
+ assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
+ assert.Equal(t, int64(1), dp.IntValue())
+ attrVal, ok := dp.Attributes().Get("object")
+ assert.True(t, ok)
+ assert.EqualValues(t, "object_name-val", attrVal.Str())
+ case "vcenter.vm.cpu.latency.avg":
+ assert.False(t, validatedMetrics["vcenter.vm.cpu.latency.avg"], "Found a duplicate in the metrics slice: vcenter.vm.cpu.latency.avg")
+ validatedMetrics["vcenter.vm.cpu.latency.avg"] = true
+ assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
+ assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
+ assert.Equal(t, "Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU.", ms.At(i).Description())
+ assert.Equal(t, "ms", ms.At(i).Unit())
+ dp := ms.At(i).Gauge().DataPoints().At(0)
+ assert.Equal(t, start, dp.StartTimestamp())
+ assert.Equal(t, ts, dp.Timestamp())
+ assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
+ assert.Equal(t, int64(1), dp.IntValue())
+ attrVal, ok := dp.Attributes().Get("object")
+ assert.True(t, ok)
+ assert.EqualValues(t, "object_name-val", attrVal.Str())
case "vcenter.vm.cpu.readiness":
assert.False(t, validatedMetrics["vcenter.vm.cpu.readiness"], "Found a duplicate in the metrics slice: vcenter.vm.cpu.readiness")
validatedMetrics["vcenter.vm.cpu.readiness"] = true
@@ -1105,6 +1153,21 @@ func TestMetricsBuilder(t *testing.T) {
assert.Equal(t, ts, dp.Timestamp())
assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
assert.Equal(t, int64(1), dp.IntValue())
+ case "vcenter.vm.cpu.ready.time":
+ assert.False(t, validatedMetrics["vcenter.vm.cpu.ready.time"], "Found a duplicate in the metrics slice: vcenter.vm.cpu.ready.time")
+ validatedMetrics["vcenter.vm.cpu.ready.time"] = true
+ assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
+ assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
+ assert.Equal(t, "Milliseconds of CPU time spent in ready state.", ms.At(i).Description())
+ assert.Equal(t, "ms", ms.At(i).Unit())
+ dp := ms.At(i).Gauge().DataPoints().At(0)
+ assert.Equal(t, start, dp.StartTimestamp())
+ assert.Equal(t, ts, dp.Timestamp())
+ assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
+ assert.Equal(t, int64(1), dp.IntValue())
+ attrVal, ok := dp.Attributes().Get("object")
+ assert.True(t, ok)
+ assert.EqualValues(t, "object_name-val", attrVal.Str())
case "vcenter.vm.cpu.usage":
assert.False(t, validatedMetrics["vcenter.vm.cpu.usage"], "Found a duplicate in the metrics slice: vcenter.vm.cpu.usage")
validatedMetrics["vcenter.vm.cpu.usage"] = true
@@ -1131,6 +1194,21 @@ func TestMetricsBuilder(t *testing.T) {
assert.Equal(t, ts, dp.Timestamp())
assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
+ case "vcenter.vm.cpu.wait.time":
+ assert.False(t, validatedMetrics["vcenter.vm.cpu.wait.time"], "Found a duplicate in the metrics slice: vcenter.vm.cpu.wait.time")
+ validatedMetrics["vcenter.vm.cpu.wait.time"] = true
+ assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
+ assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
+ assert.Equal(t, "Total CPU time spent in wait state.The wait total includes time spent the CPU Idle, CPU Swap Wait, and CPU I/O Wait states.", ms.At(i).Description())
+ assert.Equal(t, "ms", ms.At(i).Unit())
+ dp := ms.At(i).Gauge().DataPoints().At(0)
+ assert.Equal(t, start, dp.StartTimestamp())
+ assert.Equal(t, ts, dp.Timestamp())
+ assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
+ assert.Equal(t, int64(1), dp.IntValue())
+ attrVal, ok := dp.Attributes().Get("object")
+ assert.True(t, ok)
+ assert.EqualValues(t, "object_name-val", attrVal.Str())
case "vcenter.vm.disk.latency.avg":
assert.False(t, validatedMetrics["vcenter.vm.disk.latency.avg"], "Found a duplicate in the metrics slice: vcenter.vm.disk.latency.avg")
validatedMetrics["vcenter.vm.disk.latency.avg"] = true
@@ -1296,6 +1374,42 @@ func TestMetricsBuilder(t *testing.T) {
assert.Equal(t, ts, dp.Timestamp())
assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
+ case "vcenter.vm.network.broadcast.packet.rate":
+ assert.False(t, validatedMetrics["vcenter.vm.network.broadcast.packet.rate"], "Found a duplicate in the metrics slice: vcenter.vm.network.broadcast.packet.rate")
+ validatedMetrics["vcenter.vm.network.broadcast.packet.rate"] = true
+ assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
+ assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
+ assert.Equal(t, "The rate of broadcast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.", ms.At(i).Description())
+ assert.Equal(t, "{packets/s}", ms.At(i).Unit())
+ dp := ms.At(i).Gauge().DataPoints().At(0)
+ assert.Equal(t, start, dp.StartTimestamp())
+ assert.Equal(t, ts, dp.Timestamp())
+ assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
+ assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
+ attrVal, ok := dp.Attributes().Get("direction")
+ assert.True(t, ok)
+ assert.EqualValues(t, "transmitted", attrVal.Str())
+ attrVal, ok = dp.Attributes().Get("object")
+ assert.True(t, ok)
+ assert.EqualValues(t, "object_name-val", attrVal.Str())
+ case "vcenter.vm.network.multicast.packet.rate":
+ assert.False(t, validatedMetrics["vcenter.vm.network.multicast.packet.rate"], "Found a duplicate in the metrics slice: vcenter.vm.network.multicast.packet.rate")
+ validatedMetrics["vcenter.vm.network.multicast.packet.rate"] = true
+ assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
+ assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
+ assert.Equal(t, "The rate of multicast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.", ms.At(i).Description())
+ assert.Equal(t, "{packets/s}", ms.At(i).Unit())
+ dp := ms.At(i).Gauge().DataPoints().At(0)
+ assert.Equal(t, start, dp.StartTimestamp())
+ assert.Equal(t, ts, dp.Timestamp())
+ assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
+ assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
+ attrVal, ok := dp.Attributes().Get("direction")
+ assert.True(t, ok)
+ assert.EqualValues(t, "transmitted", attrVal.Str())
+ attrVal, ok = dp.Attributes().Get("object")
+ assert.True(t, ok)
+ assert.EqualValues(t, "object_name-val", attrVal.Str())
case "vcenter.vm.network.packet.drop.rate":
assert.False(t, validatedMetrics["vcenter.vm.network.packet.drop.rate"], "Found a duplicate in the metrics slice: vcenter.vm.network.packet.drop.rate")
validatedMetrics["vcenter.vm.network.packet.drop.rate"] = true
diff --git a/receiver/vcenterreceiver/internal/metadata/testdata/config.yaml b/receiver/vcenterreceiver/internal/metadata/testdata/config.yaml
index ce2aae9f092d..58dc3547851c 100644
--- a/receiver/vcenterreceiver/internal/metadata/testdata/config.yaml
+++ b/receiver/vcenterreceiver/internal/metadata/testdata/config.yaml
@@ -95,12 +95,20 @@ all_set:
enabled: true
vcenter.resource_pool.memory.usage:
enabled: true
+ vcenter.vm.cpu.idle.time:
+ enabled: true
+ vcenter.vm.cpu.latency.avg:
+ enabled: true
vcenter.vm.cpu.readiness:
enabled: true
+ vcenter.vm.cpu.ready.time:
+ enabled: true
vcenter.vm.cpu.usage:
enabled: true
vcenter.vm.cpu.utilization:
enabled: true
+ vcenter.vm.cpu.wait.time:
+ enabled: true
vcenter.vm.disk.latency.avg:
enabled: true
vcenter.vm.disk.latency.max:
@@ -123,6 +131,10 @@ all_set:
enabled: true
vcenter.vm.memory.utilization:
enabled: true
+ vcenter.vm.network.broadcast.packet.rate:
+ enabled: true
+ vcenter.vm.network.multicast.packet.rate:
+ enabled: true
vcenter.vm.network.packet.drop.rate:
enabled: true
vcenter.vm.network.packet.rate:
@@ -258,12 +270,20 @@ none_set:
enabled: false
vcenter.resource_pool.memory.usage:
enabled: false
+ vcenter.vm.cpu.idle.time:
+ enabled: false
+ vcenter.vm.cpu.latency.avg:
+ enabled: false
vcenter.vm.cpu.readiness:
enabled: false
+ vcenter.vm.cpu.ready.time:
+ enabled: false
vcenter.vm.cpu.usage:
enabled: false
vcenter.vm.cpu.utilization:
enabled: false
+ vcenter.vm.cpu.wait.time:
+ enabled: false
vcenter.vm.disk.latency.avg:
enabled: false
vcenter.vm.disk.latency.max:
@@ -286,6 +306,10 @@ none_set:
enabled: false
vcenter.vm.memory.utilization:
enabled: false
+ vcenter.vm.network.broadcast.packet.rate:
+ enabled: false
+ vcenter.vm.network.multicast.packet.rate:
+ enabled: false
vcenter.vm.network.packet.drop.rate:
enabled: false
vcenter.vm.network.packet.rate:
diff --git a/receiver/vcenterreceiver/internal/mockserver/responses/vm-performance-counters.xml b/receiver/vcenterreceiver/internal/mockserver/responses/vm-performance-counters.xml
index 59f89bf27dab..e4ee92e410f2 100644
--- a/receiver/vcenterreceiver/internal/mockserver/responses/vm-performance-counters.xml
+++ b/receiver/vcenterreceiver/internal/mockserver/responses/vm-performance-counters.xml
@@ -78,6 +78,20 @@
20
+
+
+ 533
+
+
+ 70
+
+
+
+ 535
+
+
+ 90
+
143
@@ -190,6 +204,20 @@
20
+
+
+ 533
+ vmnic1
+
+ 70
+
+
+
+ 535
+ vmnic1
+
+ 90
+
143
@@ -225,6 +253,20 @@
20
+
+
+ 533
+ vmnic0
+
+ 70
+
+
+
+ 535
+ vmnic0
+
+ 90
+
143
@@ -246,6 +288,20 @@
20
+
+
+ 533
+ vmnic3
+
+ 70
+
+
+
+ 535
+ vmnic3
+
+ 90
+
146
@@ -260,6 +316,20 @@
20
+
+
+ 533
+ vmnic2
+
+ 70
+
+
+
+ 535
+ vmnic2
+
+ 90
+
532
@@ -323,6 +393,20 @@
20
+
+
+ 533
+ 4000
+
+ 70
+
+
+
+ 535
+ 4000
+
+ 90
+
147
@@ -351,6 +435,27 @@
899
+
+
+ 13
+ 4000
+
+ 1899
+
+
+
+ 11
+ 4000
+
+ 2899
+
+
+
+ 12
+ 4000
+
+ 3899
+
vm-6004
@@ -428,6 +533,20 @@
20
+
+
+ 533
+
+
+ 70
+
+
+
+ 535
+
+
+ 20
+
143
@@ -540,6 +659,20 @@
20
+
+
+ 533
+ vmnic1
+
+ 70
+
+
+
+ 535
+ vmnic1
+
+ 90
+
143
@@ -575,6 +708,20 @@
20
+
+
+ 533
+ vmnic0
+
+ 70
+
+
+
+ 535
+ vmnic0
+
+ 90
+
143
@@ -596,6 +743,20 @@
20
+
+
+ 533
+ vmnic3
+
+ 70
+
+
+
+ 535
+ vmnic3
+
+ 90
+
146
@@ -610,6 +771,20 @@
20
+
+
+ 533
+ vmnic2
+
+ 70
+
+
+
+ 535
+ vmnic2
+
+ 90
+
532
@@ -687,6 +862,20 @@
20
+
+
+ 533
+ 4000
+
+ 70
+
+
+
+ 535
+ 4000
+
+ 90
+
532
@@ -701,6 +890,27 @@
899
+
+
+ 13
+ 4000
+
+ 1899
+
+
+
+ 11
+ 4000
+
+ 2899
+
+
+
+ 12
+ 4000
+
+ 3899
+
vm-6005
@@ -778,6 +988,20 @@
20
+
+
+ 533
+
+
+ 70
+
+
+
+ 535
+
+
+ 90
+
143
@@ -890,6 +1114,20 @@
20
+
+
+ 533
+ vmnic1
+
+ 70
+
+
+
+ 535
+ vmnic1
+
+ 90
+
143
@@ -925,6 +1163,20 @@
20
+
+
+ 533
+ vmnic0
+
+ 70
+
+
+
+ 535
+ vmnic0
+
+ 90
+
143
@@ -946,6 +1198,20 @@
20
+
+
+ 533
+ vmnic3
+
+ 70
+
+
+
+ 535
+ vmnic3
+
+ 90
+
146
@@ -960,6 +1226,20 @@
20
+
+
+ 533
+ vmnic2
+
+ 70
+
+
+
+ 535
+ vmnic2
+
+ 90
+
532
@@ -1030,6 +1310,20 @@
20
+
+
+ 533
+ 4000
+
+ 70
+
+
+
+ 535
+ 4000
+
+ 90
+
530
@@ -1051,6 +1345,27 @@
899
+
+
+ 13
+ 4000
+
+ 1899
+
+
+
+ 11
+ 4000
+
+ 2899
+
+
+
+ 12
+ 4000
+
+ 4899
+
diff --git a/receiver/vcenterreceiver/metadata.yaml b/receiver/vcenterreceiver/metadata.yaml
index 761b36c3bcf0..143139afc52d 100644
--- a/receiver/vcenterreceiver/metadata.yaml
+++ b/receiver/vcenterreceiver/metadata.yaml
@@ -320,7 +320,7 @@ metrics:
unit: "{congestions/s}"
gauge:
value_type: double
- attributes: []
+ attributes: []
vcenter.datastore.disk.usage:
enabled: true
description: The amount of space in the datastore.
@@ -568,6 +568,34 @@ metrics:
value_type: int
aggregation_temporality: cumulative
attributes: []
+ vcenter.vm.cpu.idle.time:
+ enabled: false
+ description: Total time that the CPU spent in an idle state.
+ unit: ms
+ gauge:
+ value_type: int
+ attributes: [object_name]
+ vcenter.vm.cpu.wait.time:
+ enabled: false
+ description: Total CPU time spent in wait state.The wait total includes time spent the CPU Idle, CPU Swap Wait, and CPU I/O Wait states.
+ unit: ms
+ gauge:
+ value_type: int
+ attributes: [object_name]
+ vcenter.vm.cpu.ready.time:
+ enabled: false
+ description: Milliseconds of CPU time spent in ready state.
+ unit: ms
+ gauge:
+ value_type: int
+ attributes: [object_name]
+ vcenter.vm.cpu.latency.avg:
+ enabled: false
+ description: Percent of time the virtual machine is unable to run because it is contending for access to the physical CPU.
+ unit: ms
+ gauge:
+ value_type: int
+ attributes: [object_name]
vcenter.vm.memory.ballooned:
enabled: true
description: The amount of memory that is ballooned due to virtualization.
@@ -662,6 +690,22 @@ metrics:
aggregation_temporality: cumulative
attributes: [throughput_direction, object_name]
extended_documentation: As measured over the most recent 20s interval.
+ vcenter.vm.network.broadcast.packet.rate:
+ enabled: false
+ description: The rate of broadcast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+ unit: "{packets/s}"
+ gauge:
+ value_type: double
+ attributes: [throughput_direction, object_name]
+ extended_documentation: As measured over the most recent 20s interval.
+ vcenter.vm.network.multicast.packet.rate:
+ enabled: false
+ description: The rate of multicast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+ unit: "{packets/s}"
+ gauge:
+ value_type: double
+ attributes: [throughput_direction, object_name]
+ extended_documentation: As measured over the most recent 20s interval.
vcenter.vm.network.packet.rate:
enabled: true
description: The rate of packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
diff --git a/receiver/vcenterreceiver/metrics.go b/receiver/vcenterreceiver/metrics.go
index 199da2fa8317..69fc22fd2d2b 100644
--- a/receiver/vcenterreceiver/metrics.go
+++ b/receiver/vcenterreceiver/metrics.go
@@ -406,6 +406,9 @@ var vmPerfMetricList = []string{
"net.bytesRx.average",
"net.bytesTx.average",
"net.usage.average",
+ "net.multicastRx.summation",
+ "net.broadcastRx.summation",
+
// disk metrics
"disk.totalWriteLatency.average",
"disk.totalReadLatency.average",
@@ -414,6 +417,12 @@ var vmPerfMetricList = []string{
"virtualDisk.totalReadLatency.average",
"virtualDisk.read.average",
"virtualDisk.write.average",
+
+ // cpu metrics
+ "cpu.idle.summation",
+ "cpu.wait.summation",
+ "cpu.ready.summation",
+ "cpu.latency.average",
}
// recordVMPerformanceMetrics records performance metrics for a vSphere Virtual Machine
@@ -460,6 +469,26 @@ func (v *vcenterMetricScraper) recordVMPerformanceMetrics(entityMetric *performa
case "net.droppedRx.summation":
rxRate := float64(nestedValue) / 20
v.mb.RecordVcenterVMNetworkPacketDropRateDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), rxRate, metadata.AttributeThroughputDirectionReceived, val.Instance)
+ case "net.multicastRx.summation":
+ rxRate := float64(nestedValue) / 20
+ v.mb.RecordVcenterVMNetworkMulticastPacketRateDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), rxRate, metadata.AttributeThroughputDirectionReceived, val.Instance)
+ case "net.multicastTx.summation":
+ rxRate := float64(nestedValue) / 20
+ v.mb.RecordVcenterVMNetworkMulticastPacketRateDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), rxRate, metadata.AttributeThroughputDirectionReceived, val.Instance)
+ case "cpu.idle.summation":
+ v.mb.RecordVcenterVMCPUIdleTimeDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), nestedValue, val.Instance)
+ case "cpu.wait.summation":
+ v.mb.RecordVcenterVMCPUWaitTimeDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), nestedValue, val.Instance)
+ case "cpu.latency.average":
+ v.mb.RecordVcenterVMCPULatencyAvgDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), nestedValue, val.Instance)
+ case "cpu.ready.summation":
+ v.mb.RecordVcenterVMCPUReadyTimeDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), nestedValue, val.Instance)
+ case "net.broadcastRx.summation":
+ rxRate := float64(nestedValue) / 20
+ v.mb.RecordVcenterVMNetworkBroadcastPacketRateDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), rxRate, metadata.AttributeThroughputDirectionReceived, val.Instance)
+ case "net.broadcastTx.summation":
+ rxRate := float64(nestedValue) / 20
+ v.mb.RecordVcenterVMNetworkBroadcastPacketRateDataPoint(pcommon.NewTimestampFromTime(si.Timestamp), rxRate, metadata.AttributeThroughputDirectionReceived, val.Instance)
}
}
}
diff --git a/receiver/vcenterreceiver/scraper_test.go b/receiver/vcenterreceiver/scraper_test.go
index c30d3e29641d..2878e25fa9e6 100644
--- a/receiver/vcenterreceiver/scraper_test.go
+++ b/receiver/vcenterreceiver/scraper_test.go
@@ -5,6 +5,7 @@ package vcenterreceiver // import github.com/open-telemetry/opentelemetry-collec
import (
"context"
+ "fmt"
"path/filepath"
"testing"
@@ -42,6 +43,11 @@ func TestScrapeConfigsEnabled(t *testing.T) {
optConfigs := metadata.DefaultMetricsBuilderConfig()
optConfigs.Metrics.VcenterHostMemoryCapacity.Enabled = true
optConfigs.Metrics.VcenterVMMemoryGranted.Enabled = true
+ optConfigs.Metrics.VcenterVMNetworkBroadcastPacketRate.Enabled = true
+ optConfigs.Metrics.VcenterVMNetworkMulticastPacketRate.Enabled = true
+ optConfigs.Metrics.VcenterVMCPUIdleTime.Enabled = true
+ optConfigs.Metrics.VcenterVMCPUWaitTime.Enabled = true
+ optConfigs.Metrics.VcenterVMCPUReadyTime.Enabled = true
setResourcePoolMemoryUsageAttrFeatureGate(t, true)
cfg := &Config{
@@ -76,6 +82,7 @@ func testScrape(ctx context.Context, t *testing.T, cfg *Config, fileName string)
scraper := newVmwareVcenterScraper(zap.NewNop(), cfg, receivertest.NewNopSettings())
metrics, err := scraper.scrape(ctx)
+ fmt.Println(metrics)
require.NoError(t, err)
require.NotEqual(t, 0, metrics.MetricCount())
diff --git a/receiver/vcenterreceiver/testdata/metrics/expected-all-enabled.yaml b/receiver/vcenterreceiver/testdata/metrics/expected-all-enabled.yaml
index a850c3d2669b..c8b29715a11d 100644
--- a/receiver/vcenterreceiver/testdata/metrics/expected-all-enabled.yaml
+++ b/receiver/vcenterreceiver/testdata/metrics/expected-all-enabled.yaml
@@ -2159,6 +2159,18 @@ resourceMetrics:
stringValue: CentOS 9
scopeMetrics:
- metrics:
+ - description: Total time that the CPU spent in an idle state.
+ gauge:
+ dataPoints:
+ - asInt: "1899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.idle.time
+ unit: ms
- description: Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU.
gauge:
dataPoints:
@@ -2167,6 +2179,18 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.cpu.readiness
unit: '%'
+ - description: Milliseconds of CPU time spent in ready state.
+ gauge:
+ dataPoints:
+ - asInt: "4899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.ready.time
+ unit: ms
- description: The amount of CPU used by the VM.
name: vcenter.vm.cpu.usage
sum:
@@ -2184,6 +2208,18 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.cpu.utilization
unit: '%'
+ - description: Total CPU time spent in wait state.The wait total includes time spent the CPU Idle, CPU Swap Wait, and CPU I/O Wait states.
+ gauge:
+ dataPoints:
+ - asInt: "2899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.wait.time
+ unit: ms
- description: The latency of operations to the virtual machine's disk.
gauge:
dataPoints:
@@ -2353,6 +2389,136 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.memory.utilization
unit: '%'
+ - description: The rate of broadcast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+ gauge:
+ dataPoints:
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: ""
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic0
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic1
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic2
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic3
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.network.broadcast.packet.rate
+ unit: '{packets/s}'
+ - description: The rate of multicast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+ gauge:
+ dataPoints:
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: ""
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic0
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic1
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic2
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic3
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.network.multicast.packet.rate
+ unit: '{packets/s}'
- description: The rate of transmitted or received packets dropped by each vNIC (virtual network interface controller) on the virtual machine.
gauge:
dataPoints:
@@ -2805,6 +2971,18 @@ resourceMetrics:
stringValue: CentOS 7
scopeMetrics:
- metrics:
+ - description: Total time that the CPU spent in an idle state.
+ gauge:
+ dataPoints:
+ - asInt: "1899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.idle.time
+ unit: ms
- description: Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU.
gauge:
dataPoints:
@@ -2813,6 +2991,18 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.cpu.readiness
unit: '%'
+ - description: Milliseconds of CPU time spent in ready state.
+ gauge:
+ dataPoints:
+ - asInt: "3899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.ready.time
+ unit: ms
- description: The amount of CPU used by the VM.
name: vcenter.vm.cpu.usage
sum:
@@ -2830,6 +3020,18 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.cpu.utilization
unit: '%'
+ - description: Total CPU time spent in wait state.The wait total includes time spent the CPU Idle, CPU Swap Wait, and CPU I/O Wait states.
+ gauge:
+ dataPoints:
+ - asInt: "2899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.wait.time
+ unit: ms
- description: The latency of operations to the virtual machine's disk.
gauge:
dataPoints:
@@ -2999,6 +3201,136 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.memory.utilization
unit: '%'
+ - description: The rate of broadcast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+ gauge:
+ dataPoints:
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: ""
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic0
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic1
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic2
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic3
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.network.broadcast.packet.rate
+ unit: '{packets/s}'
+ - description: The rate of multicast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+ gauge:
+ dataPoints:
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: ""
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic0
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic1
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic2
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic3
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.network.multicast.packet.rate
+ unit: '{packets/s}'
- description: The rate of transmitted or received packets dropped by each vNIC (virtual network interface controller) on the virtual machine.
gauge:
dataPoints:
@@ -3550,6 +3882,18 @@ resourceMetrics:
stringValue: CentOS 8
scopeMetrics:
- metrics:
+ - description: Total time that the CPU spent in an idle state.
+ gauge:
+ dataPoints:
+ - asInt: "1899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.idle.time
+ unit: ms
- description: Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU.
gauge:
dataPoints:
@@ -3558,6 +3902,18 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.cpu.readiness
unit: '%'
+ - description: Milliseconds of CPU time spent in ready state.
+ gauge:
+ dataPoints:
+ - asInt: "3899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.ready.time
+ unit: ms
- description: The amount of CPU used by the VM.
name: vcenter.vm.cpu.usage
sum:
@@ -3575,6 +3931,18 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.cpu.utilization
unit: '%'
+ - description: Total CPU time spent in wait state.The wait total includes time spent the CPU Idle, CPU Swap Wait, and CPU I/O Wait states.
+ gauge:
+ dataPoints:
+ - asInt: "2899"
+ attributes:
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.cpu.wait.time
+ unit: ms
- description: The latency of operations to the virtual machine's disk.
gauge:
dataPoints:
@@ -3744,6 +4112,136 @@ resourceMetrics:
timeUnixNano: "2000000"
name: vcenter.vm.memory.utilization
unit: '%'
+ - description: The rate of broadcast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+ gauge:
+ dataPoints:
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: ""
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic0
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic1
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic2
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 3.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic3
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.network.broadcast.packet.rate
+ unit: '{packets/s}'
+ - description: The rate of multicast packets transmitted or received by each vNIC (virtual network interface controller) on the virtual machine.
+ gauge:
+ dataPoints:
+ - asDouble: 1.0
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: ""
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: "4000"
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic0
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic1
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic2
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ - asDouble: 4.5
+ attributes:
+ - key: direction
+ value:
+ stringValue: received
+ - key: object
+ value:
+ stringValue: vmnic3
+ startTimeUnixNano: "2000000"
+ timeUnixNano: "1000000"
+ name: vcenter.vm.network.multicast.packet.rate
+ unit: '{packets/s}'
- description: The rate of transmitted or received packets dropped by each vNIC (virtual network interface controller) on the virtual machine.
gauge:
dataPoints: