Partager via


EXTOBS0001 : IResourceMonitor est obsolète

L’interface Microsoft.Extensions.Diagnostics.ResourceMonitoring.IResourceMonitor et les API associées sont obsolètes à partir de .NET 9. Ces API seront supprimées dans une version ultérieure. La fonctionnalité de supervision des ressources a été remplacée par une approche plus efficace basée sur les métriques à l’aide d’instruments observables.

Les API suivantes sont marquées comme obsolètes. L’utilisation de ces API génère un avertissement EXTOBS0001 au moment de la compilation.

Solutions de contournement

Au lieu d’utiliser IResourceMonitor, basculez vers l’utilisation des métriques de surveillance des ressources avec des instruments observables. L’approche basée sur les métriques fournit les mêmes informations d’utilisation des ressources (PROCESSEUR, mémoire), mais s’intègre mieux aux systèmes d’observabilité modernes comme OpenTelemetry.

Exemple de migration

Ancienne approche utilisant 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}%");
    }
}

Nouvelle approche utilisant des métriques :

services.AddResourceMonitoring();

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

Les métriques de surveillance des ressources sont automatiquement publiées et peuvent être consommées par n’importe quel pipeline de métriques compatibles OpenTelemetry. Pour plus d’informations, consultez Microsoft.Extensions.Diagnostics.ResourceMonitoring les métriques.

Supprimer un avertissement

Si vous devez utiliser les API obsolètes, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.

Pour supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez l’avertissement.

// Disable the warning.
#pragma warning disable EXTOBS0001

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

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

Pour supprimer tous les EXTOBS0001 avertissements dans votre projet, ajoutez une <NoWarn> propriété à votre fichier projet.

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

Pour plus d’informations, consultez Supprimer des avertissements.

Voir aussi