You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merged PR 41659: Add metrics with correct names for Resource Monitoring (#5341)
Add metrics with correct names for Resource Monitoring (#5341)
Fixes#5113
Previous art: #5309
Add new metrics with correct names. Old metrics will continue to be enabled by default.
### Existing metric setup
**Windows Snapshot provider class**
`process.cpu.utilization`
`dotnet.process.memory.virtual.utilization`
**Windows Container Snapshot provider class**
`process.cpu.utilization`
`dotnet.process.memory.virtual.utilization`
**Linix Utilization Provider class**
`process.cpu.utilization`
`dotnet.process.memory.virtual.utilization`
### New metric setup
**Windows Snapshot provider class**
`process.cpu.utilization` - no changes
`dotnet.process.memory.virtual.utilization` - no changes
**Windows Container Snapshot provider class**
`process.cpu.utilization` - no changes
`dotnet.process.memory.virtual.utilization` - calculates memory for the dotnet process only (instead of all processes)
`container.cpu.limit.utilization` - new metric, same value as `process.cpu.utilization`
`container.memory.limit.utilization` - new metric, calculates memory for all processes in the container
**Linux Utilization Provider class**
`process.cpu.utilization` - fixed incorrect scale calculation, instead of `host CPUs / CPU limit / CPU request`, it is now `host CPUs / CPU request`
`dotnet.process.memory.virtual.utilization` - no changes
`container.cpu.limit.utilization` - new metric, value is relative to CPU resource limit (aka maximum CPU units)
`container.memory.limit.utilization` - new metric, calculates memory for all processes in the container
`container.cpu.request.utilization` - new metric, same value as `process.cpu.utilization`
----
#### AI description (iteration 1)
#### PR Classification
New feature: Added metrics with correct names for resource monitoring.
#### PR Summary
This pull request introduces new metrics for resource monitoring with correct naming conventions and updates the related tests and implementation.
- `LinuxUtilizationProvider.cs`: Added new metrics for container CPU and memory utilization, and updated existing metrics.
- `AcceptanceTest.cs`: Added new tests for verifying the new metrics and updated existing tests for better coverage.
- `ResourceUtilizationInstruments.cs`: Defined new constants for the new metrics.
- Removed `WindowsCounters.cs` as it is no longer needed.
Copy file name to clipboardexpand all lines: src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/ResourceMonitoringServiceCollectionExtensions.cs
/// The name of an instrument to retrieve memory limit consumption of all processes running inside a container or control group in range <c>[0, 1]</c>.
35
+
/// </summary>
36
+
/// <remarks>
37
+
/// The type of an instrument is <see cref="System.Diagnostics.Metrics.ObservableGauge{T}"/>.
0 commit comments