Observabilidade - AWS SDK para .NET (V4)

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

Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o tópico de migração.

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.

Eles AWS SDK para .NET podem fornecer dois sinais, métricas e rastreamentos de telemetria comuns, além de registros. Você pode conectar um TelemetryProviderpara enviar dados de telemetria para um back-end de observabilidade (como a AWS X-RayAmazon CloudWatch) 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

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 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

É 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.