Delen via


EXTOBS0001: IResourceMonitor is verouderd

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.

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.

Zie ook