Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs Microsoft.Extensions.Diagnostics.ResourceMonitoring.IResourceMonitor i powiązane interfejsy API są przestarzałe, począwszy od platformy .NET 9. Te interfejsy API zostaną usunięte w przyszłej wersji. Funkcje monitorowania zasobów zostały zastąpione bardziej wydajnym podejściem opartym na metrykach przy użyciu obserwowalnych instrumentów.
Następujące interfejsy API są oznaczone jako przestarzałe. Użycie tych interfejsów API generuje ostrzeżenie EXTOBS0001 w czasie kompilacji.
- IResourceMonitor
- ResourceMonitoringOptions.CollectionWindow
- ResourceMonitoringOptions.SamplingInterval
- ResourceMonitoringBuilderExtensions
- ResourceUtilization
- IResourceMonitorBuilder
- IResourceUtilizationPublisher
- ISnapshotProvider
- Snapshot
- SystemResources
- ResourceMonitoringServiceCollectionExtensions.AddResourceMonitoring(IServiceCollection, Action<IResourceMonitorBuilder>)
Rozwiązania alternatywne
Zamiast używać IResourceMonitor, przejdź do korzystania z metryk monitorowania zasobów z obserwowalnymi instrumentami. Podejście oparte na metrykach zapewnia te same informacje o wykorzystaniu zasobów (procesor CPU, pamięć), ale integruje się lepiej z nowoczesnymi systemami obserwacji, takimi jak OpenTelemetry.
Przykład migracji
Stare podejście przy użyciu polecenia 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}%");
}
}
Nowe podejście przy użyciu metryk:
services.AddResourceMonitoring();
// Configure metrics collection.
services.AddOpenTelemetry()
.WithMetrics(builder =>
{
builder.AddMeter("Microsoft.Extensions.Diagnostics.ResourceMonitoring");
builder.AddConsoleExporter();
});
Metryki monitorowania zasobów są publikowane automatycznie i mogą być używane przez dowolny potok metryk zgodny z OpenTelemetry. Aby uzyskać więcej informacji, zobacz Microsoft.Extensions.Diagnostics.ResourceMonitoring metryki.
Pomijanie ostrzeżenia
Jeśli musisz używać przestarzałych interfejsów API, możesz pominąć ostrzeżenie w kodzie lub w pliku projektu.
Aby pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć ostrzeżenie.
// Disable the warning.
#pragma warning disable EXTOBS0001
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore EXTOBS0001
Aby pominąć wszystkie ostrzeżenia EXTOBS0001 w projekcie, dodaj właściwość <NoWarn> do pliku projektu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);EXTOBS0001</NoWarn>
</PropertyGroup>
</Project>
Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.