Observabilidade - AWS SDK para .NET (V3)

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:

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.