

A versão 4 (V4) do AWS SDK para .NET foi lançada\$1

Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o [tópico de migração](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html).

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Observabilidade
<a name="observability"></a>

Observabilidade é a medida em que o estado atual de um sistema pode ser identificado com base nos dados que ele emite. Os dados emitidos são chamados, com frequência, de telemetria.

Eles AWS SDK para .NET podem fornecer dois sinais, métricas e rastreamentos de telemetria comuns, além de registros. Você pode conectar um [TelemetryProvider](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TTelemetryProvider.html)para enviar dados de telemetria para um back-end de observabilidade (como a [AWS X-Ray](https://docs.aws.amazon.com/xray/?icmpid=docs_homepage_devtools)[Amazon CloudWatch](https://docs.aws.amazon.com/cloudwatch/?icmpid=docs_homepage_mgmtgov)) e, em seguida, agir de acordo com eles.

Por padrão, os sinais de telemetria permanecem desabilitados no SDK. Este tópico explica como habilitar e configurar a saída de telemetria.

## Recursos adicionais do
<a name="observability-resources"></a>

Para acessar mais informações sobre como habilitar e usar a observabilidade, consulte os seguintes recursos:
+ [OpenTelemetry](https://opentelemetry.io/)
+ A postagem do blog [Enhancing Observability in the AWS SDK para .NET with](https://aws.amazon.com/blogs/developer/enhancing-observability-in-the-aws-sdk-for-net-with-opentelemetry/). OpenTelemetry
+ A postagem do blog [anunciando a disponibilidade geral das AWS OpenTelemetry bibliotecas.NET](https://aws.amazon.com/blogs/dotnet/announcing-the-general-availability-of-aws-net-opentelemetry-libraries/).
+ [Exportadores para OpenTelemetry](https://opentelemetry.io/docs/languages/net/exporters/)
+ Para exemplos de observabilidade no Ferramentas da AWS para PowerShell, consulte [Observabilidade no Guia de](https://docs.aws.amazon.com/powershell/latest/userguide/observability.html) [Ferramentas do PowerShell Usuário](https://docs.aws.amazon.com/powershell/latest/userguide/).

## Configurar um `TelemetryProvider`
<a name="observability-conf-telemetry-provider"></a>

Você pode configurar um `TelemetryProvider` em sua aplicação globalmente para todos os clientes de serviço ou para clientes individuais, conforme mostrado nos exemplos a seguir. A seção [Provedores de telemetria](observability-telemetry-providers.md) contém informações sobre implementações de telemetria, incluindo informações sobre implementações fornecidas com o SDK.

### Configurar o provedor de telemetria global padrão
<a name="observability-conf-telemetry-provider-global"></a>

Por padrão, todo cliente de serviço tenta usar o provedor de telemetria disponível globalmente. Dessa forma, é possível definir o provedor uma vez e todos os clientes o usarão. Isso deve ser feito apenas uma vez, antes de criar qualquer cliente de serviço.

O trecho de código a seguir mostra como definir o provedor de telemetria global. Depois, ele cria um cliente de serviço Amazon S3 e tenta realizar uma operação que falha. O código adiciona rastreamento e métricas à aplicação. Esse código usa os seguintes NuGet pacotes: `OpenTelemetry.Exporter.Console` `OpenTelemetry.Instrumentation.AWS` e.

**nota**  
Se você estiver usando Centro de Identidade do AWS IAM para autenticação, não se esqueça de também adicionar `AWSSDK.SSO` `AWSSDK.SSOOIDC` e.

```
using Amazon.S3;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;

Sdk.CreateTracerProviderBuilder()
    .ConfigureResource(e => e.AddService("DemoOtel"))
    .AddAWSInstrumentation()
    .AddConsoleExporter()
    .Build();

Sdk.CreateMeterProviderBuilder()
    .ConfigureResource(e => e.AddService("DemoOtel"))
    .AddAWSInstrumentation()
    .AddConsoleExporter()
    .Build();

var s3Client = new AmazonS3Client();

try
{
    var listBucketsResponse = await s3Client.ListBucketsAsync();
    // Attempt to delete a bucket that doesn't exist.
    var deleteBucketResponse = await s3Client.DeleteBucketAsync("amzn-s3-demo-bucket");
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Console.Read();
```

### Configurar um provedor de telemetria para um cliente de serviço específico
<a name="observability-conf-telemetry-provider-client"></a>

É possível configurar um cliente de serviço individual com um provedor de telemetria específico (diferente do global). Para isso, use a classe `TelemetryProvider` do objeto Config de um construtor de cliente de serviço. Por exemplo, consulte [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html) e procure a propriedade `TelemetryProvider`. Consulte [Provedores de telemetria](observability-telemetry-providers.md) para acessar informações sobre implementações personalizadas de telemetria.

**Topics**
+ [Recursos adicionais do](#observability-resources)
+ [Configurar um `TelemetryProvider`](#observability-conf-telemetry-provider)
+ [Métricas](observability-metrics.md)
+ [Provedores de telemetria](observability-telemetry-providers.md)