-
Notifications
You must be signed in to change notification settings - Fork 844
Closed
Labels
api-approvedAPI was approved in API review, it can be implementedAPI was approved in API review, it can be implementedapi-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationarea-fundamentals
Description
Background and motivation
The Snapshot property of Microsoft.Extensions.Diagnostics.ResourceMonitoring.ResourceUtilization struct is internal, but I suggest making it public, so that any implementation of the public interface IResourceUtilizationPublisher would be able to access it. This is also required by for a 1P library and partners.
API Proposal
namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring;
/// <summary>
/// Captures resource usage at a given point in time.
/// </summary>
[SuppressMessage("Performance", "CA1815:Override equals and operator equals on value types", Justification = "Comparing instances is not an expected scenario")]
public readonly struct ResourceUtilization
{
public double CpuUsedPercentage { get; }
public double MemoryUsedPercentage { get; }
public ulong MemoryUsedInBytes { get; }
public SystemResources SystemResources { get; }
- internal Snapshot Snapshot { get; } = default;
+ public Snapshot Snapshot { get; } = default;API Usage
// a custom implementation of IResourceUtilizationPublisher:
internal class MyCounterPublisher : IResourceUtilizationPublisher
{
...
public ValueTask PublishAsync(ResourceUtilization utilization, CancellationToken cancellationToken)
{
...
utilization.Snapshot // do something with it.
}
}Alternative Designs
No response
Risks
No response
Metadata
Metadata
Assignees
Labels
api-approvedAPI was approved in API review, it can be implementedAPI was approved in API review, it can be implementedapi-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationarea-fundamentals