Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Microsoft.Extensions.Diagnostics.ResourceMonitoring.IResourceMonitor interface e as APIs relacionadas estão obsoletas a partir do .NET 9. Essas APIs serão removidas em uma versão futura. A funcionalidade de monitoramento de recursos foi substituída por uma abordagem mais eficiente baseada em métricas usando instrumentos observáveis.
As APIs a seguir são marcadas como obsoletas. O uso dessas APIs gera aviso EXTOBS0001 em tempo de compilação.
- IResourceMonitor
- ResourceMonitoringOptions.CollectionWindow
- ResourceMonitoringOptions.SamplingInterval
- ResourceMonitoringBuilderExtensions
- ResourceUtilization
- IResourceMonitorBuilder
- IResourceUtilizationPublisher
- ISnapshotProvider
- Snapshot
- SystemResources
- ResourceMonitoringServiceCollectionExtensions.AddResourceMonitoring(IServiceCollection, Action<IResourceMonitorBuilder>)
Soluções alternativas
Em vez de usar IResourceMonitor, alterne para usar métricas de monitoramento de recursos com instrumentos observáveis. A abordagem baseada em métricas fornece as mesmas informações de utilização de recursos (CPU, memória), mas se integra melhor a sistemas de observabilidade modernos, como o OpenTelemetry.
Exemplo de migração
Abordagem antiga usando 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}%");
}
}
Nova abordagem usando métricas:
services.AddResourceMonitoring();
// Configure metrics collection.
services.AddOpenTelemetry()
.WithMetrics(builder =>
{
builder.AddMeter("Microsoft.Extensions.Diagnostics.ResourceMonitoring");
builder.AddConsoleExporter();
});
As métricas de monitoramento de recursos são publicadas automaticamente e podem ser consumidas por qualquer pipeline de métricas compatíveis com OpenTelemetry. Para obter mais informações, consulte Microsoft.Extensions.Diagnostics.ResourceMonitoring as métricas.
Suprimir um aviso
Se você precisar usar as APIs obsoletas, poderá suprimir o aviso no código ou no arquivo de projeto.
Para suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilitar o aviso.
// Disable the warning.
#pragma warning disable EXTOBS0001
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore EXTOBS0001
Para suprimir todos os EXTOBS0001 avisos em seu projeto, adicione uma <NoWarn> propriedade ao arquivo de projeto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);EXTOBS0001</NoWarn>
</PropertyGroup>
</Project>
Para obter mais informações, consulte Suprimir avisos.