Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De Microsoft.Extensions.Diagnostics.ResourceMonitoring.IResourceMonitor interface en gerelateerde API's zijn verouderd vanaf .NET 9. Deze API's worden verwijderd in een toekomstige versie. De functionaliteit voor resourcebewaking is vervangen door een efficiëntere op metrische gegevens gebaseerde benadering met behulp van waarneembare instrumenten.
De volgende API's zijn gemarkeerd als verouderd. Het gebruik van deze API's genereert een waarschuwing EXTOBS0001 tijdens het compileren.
- IResourceMonitor
- ResourceMonitoringOptions.CollectionWindow
- ResourceMonitoringOptions.SamplingInterval
- ResourceMonitoringBuilderExtensions
- ResourceUtilization
- IResourceMonitorBuilder
- IResourceUtilizationPublisher
- ISnapshotProvider
- Snapshot
- SystemResources
- ResourceMonitoringServiceCollectionExtensions.AddResourceMonitoring(IServiceCollection, Action<IResourceMonitorBuilder>)
Tijdelijke oplossingen
Schakel over naar het gebruik van meetwaarden voor het bewaken van resources met waarneembare instrumenten in plaats van IResourceMonitor. De benadering op basis van metrische gegevens biedt dezelfde informatie over het resourcegebruik (CPU, geheugen), maar integreert beter met moderne waarneembaarheidssystemen zoals OpenTelemetry.
Voorbeeld van migratie
Oude benadering met behulp van IResourceMonitor:
services.AddResourceMonitoring();
// Inject and use IResourceMonitor
public class MyService
{
private readonly IResourceMonitor _resourceMonitor;
public MyService(IResourceMonitor resourceMonitor)
{
_resourceMonitor = resourceMonitor;
}
public void CheckResources()
{
var utilization = _resourceMonitor.GetUtilization(TimeSpan.FromSeconds(1));
Console.WriteLine($"CPU: {utilization.CpuUsedPercentage}%");
Console.WriteLine($"Memory: {utilization.MemoryUsedPercentage}%");
}
}
Nieuwe benadering met metrische gegevens:
services.AddResourceMonitoring();
// Configure metrics collection.
services.AddOpenTelemetry()
.WithMetrics(builder =>
{
builder.AddMeter("Microsoft.Extensions.Diagnostics.ResourceMonitoring");
builder.AddConsoleExporter();
});
De metrische gegevens voor resourcebewaking worden automatisch gepubliceerd en kunnen worden gebruikt door elke pijplijn voor metrische gegevens die compatibel zijn met OpenTelemetry. Zie Microsoft.Extensions.Diagnostics.ResourceMonitoring metrische gegevens voor meer informatie.
Een waarschuwing onderdrukken
Als u de verouderde API's moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.
// Disable the warning.
#pragma warning disable EXTOBS0001
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore EXTOBS0001
Als u alle EXTOBS0001 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);EXTOBS0001</NoWarn>
</PropertyGroup>
</Project>
Zie Waarschuwingen onderdrukkenvoor meer informatie.