次の方法で共有


EXTOBS0001: IResourceMonitor は廃止されました

Microsoft.Extensions.Diagnostics.ResourceMonitoring.IResourceMonitor インターフェイスと関連 API は、.NET 9 以降では廃止されています。 これらの API は、今後のバージョンで削除される予定です。 リソース監視機能は、監視可能なインストルメントを使用して、より効率的なメトリックベースのアプローチに置き換えられました。

次の API は古い形式としてマークされています。 これらの API を使用すると、コンパイル時に警告 EXTOBS0001 が生成されます。

対処方法

IResourceMonitorを使用する代わりに、監視可能なインストルメントでリソース監視メトリックを使用するように切り替えます。 メトリックベースのアプローチでは、同じリソース使用率情報 (CPU、メモリ) が提供されますが、OpenTelemetry などの最新の監視システムとの統合が向上します。

移行の例

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

メトリックを使用した新しいアプローチ:

services.AddResourceMonitoring();

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

リソース監視メトリックは自動的に発行され、OpenTelemetry と互換性のあるメトリック パイプラインで使用できます。 詳細については、「 Microsoft.Extensions.Diagnostics.ResourceMonitoring メトリック」を参照してください。

警告を抑制する

古い API を使用する必要がある場合は、コードまたはプロジェクト ファイルで警告を抑制できます。

1 つの違反のみを抑制するには、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、警告を再度有効にします。

// Disable the warning.
#pragma warning disable EXTOBS0001

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

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

プロジェクト内のすべての EXTOBS0001 警告を抑制するには、プロジェクト ファイルに <NoWarn> プロパティを追加します。

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

詳細については、「警告を表示しない」を参照してください。

こちらも参照ください