EXTOBS0001: IResourceMonitor je zastaralý

Rozhraní Microsoft.Extensions.Diagnostics.ResourceMonitoring.IResourceMonitor a související rozhraní API jsou zastaralá počínaje rozhraním .NET 9. Tato rozhraní API budou odebrána v budoucí verzi. Funkce monitorování prostředků byla nahrazena efektivnějším přístupem založeným na metrikách pomocí pozorovatelných nástrojů.

Následující rozhraní API jsou označena zastaralá. Použití těchto rozhraní API generuje upozornění EXTOBS0001 v době kompilace.

Alternativní řešení

Místo použití IResourceMonitor přejděte k používání metrik pro monitorování prostředků za použití pozorovatelných nástrojů. Přístup založený na metrikách poskytuje stejné informace o využití prostředků (procesor, paměť), ale lépe se integruje s moderními systémy pozorovatelnosti, jako je OpenTelemetry.

Příklad migrace

Starý přístup pomocí 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}%");
    }
}

Nový přístup s využitím metrik:

services.AddResourceMonitoring();

// Configure metrics collection.
services.AddOpenTelemetry()
    .WithMetrics(builder =>
    {
        builder.AddMeter("Microsoft.Extensions.Diagnostics.ResourceMonitoring");
        builder.AddConsoleExporter();
    });

Metriky monitorování prostředků se publikují automaticky a dají se využívat libovolným kanálem metrik kompatibilním s OpenTelemetry. Další informace najdete v metrikáchMicrosoft.Extensions.Diagnostics.ResourceMonitoring.

Potlačte upozornění

Pokud musíte použít zastaralá rozhraní API, můžete potlačit upozornění v kódu nebo v souboru projektu.

Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.

// Disable the warning.
#pragma warning disable EXTOBS0001

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore EXTOBS0001

Pokud chcete potlačit všechna EXTOBS0001 upozornění v projektu, přidejte <NoWarn> do souboru projektu vlastnost.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);EXTOBS0001</NoWarn>
  </PropertyGroup>
</Project>

Další informace naleznete v tématu Potlačení upozornění.

Viz také