A versão 4 (V4) do AWS SDK para .NET foi lançada!
Para começar a usar a nova versão do SDK, consulte o Guia do desenvolvedor AWS SDK para .NET (V4), especialmente o tópico sobre migração para a versão 4.
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
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.
O AWS SDK para .NET pode fornecer dois sinais de telemetria comuns, métricas e rastreamentos, além de registro em log. É possível conectar um TelemetryProvider para enviar dados de telemetria a um backend de observabilidade (como o AWS X-Ray ou o Amazon CloudWatch) e, depois, agir com base neles.
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
Para acessar mais informações sobre como habilitar e usar a observabilidade, consulte os seguintes recursos:
-
A postagem do blog Enhancing Observability in the AWS SDK para .NET with OpenTelemetry
. -
A postagem do blog Announcing the general availability of AWS .NET OpenTelemetry libraries
. -
Para ver exemplos de observabilidade no Ferramentas da AWS para PowerShell, consulte Observabilidade no Guia do usuário do Ferramentas para PowerShell.
Configurar um TelemetryProvider
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 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
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 pacotes NuGet: OpenTelemetry.Exporter.Console e OpenTelemetry.Instrumentation.AWS.
nota
Se você estiver usando AWS IAM Identity Center para autenticação, não se esqueça de também adicionar AWSSDK.SSO e AWSSDK.SSOOIDC.
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
É 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 e procure a propriedade TelemetryProvider. Consulte Provedores de telemetria para acessar informações sobre implementações personalizadas de telemetria.