

¡Se AWS SDK para .NET ha publicado la versión 4 (V4) del\$1

Para obtener información sobre los cambios más importantes y la migración de sus aplicaciones, consulte el [tema sobre migración](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)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

La observabilidad es la medida en que se puede deducir el estado actual de un sistema a partir de los datos que emite. Los datos emitidos se denominan comúnmente “telemetría”.

 AWS SDK para .NET Pueden proporcionar dos señales telemétricas comunes, métricas y trazas, así como registros. Puedes configurar un cable [TelemetryProvider](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TTelemetryProvider.html)para enviar datos de telemetría a un backend de observabilidad (como [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)) y luego actuar en consecuencia.

De forma predeterminada, las señales de telemetría están deshabilitadas en el SDK. En este tema se explica cómo habilitar y configurar la salida de telemetría.

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

Para obtener más información sobre la habilitación y el uso de la observabilidad, consulte los siguientes recursos:
+ [OpenTelemetry](https://opentelemetry.io/)
+ La entrada del blog [Enhancing Observability](https://aws.amazon.com/blogs/developer/enhancing-observability-in-the-aws-sdk-for-net-with-opentelemetry/) in the with. AWS SDK para .NET OpenTelemetry
+ La entrada del blog [que anuncia la disponibilidad general de las 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 ver ejemplos de observabilidad en el Herramientas de AWS para PowerShell, consulte [Observabilidad](https://docs.aws.amazon.com/powershell/latest/userguide/observability.html) en la Guía del [ PowerShell usuario de Tools for User](https://docs.aws.amazon.com/powershell/latest/userguide/).

## Configuración de un `TelemetryProvider`
<a name="observability-conf-telemetry-provider"></a>

Puede configurar un `TelemetryProvider` en su aplicación de forma global para todos los clientes del servicio o para clientes individuales, como se muestra en los siguientes ejemplos. La sección [Proveedores de telemetría](observability-telemetry-providers.md) contiene información sobre las implementaciones de telemetría, incluida información sobre las implementaciones que se proporcionan con el SDK.

### Configuración del proveedor de telemetría global predeterminado
<a name="observability-conf-telemetry-provider-global"></a>

De forma predeterminada, todos los clientes del servicio intentan utilizar el proveedor de telemetría disponible en todo el mundo. De esta forma, puede configurar el proveedor una vez y todos los clientes lo utilizarán. Esto debe hacerse solo una vez, antes de crear cualquier cliente de servicio.

En el siguiente fragmento de código se muestra cómo configurar el proveedor de telemetría global. A continuación, se crea un cliente de servicio de Amazon S3 y se intenta realizar una operación que no funciona. El código añade tanto el rastreo como las métricas a la aplicación. Este código usa los siguientes NuGet paquetes: `OpenTelemetry.Exporter.Console` y. `OpenTelemetry.Instrumentation.AWS`

**nota**  
Si lo utilizas AWS IAM Identity Center para la autenticación, asegúrate de añadir también `AWSSDK.SSO` y`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();
```

### Configuración de un proveedor de telemetría para un cliente de servicio específico
<a name="observability-conf-telemetry-provider-client"></a>

Puede configurar un cliente de servicio individual con un proveedor de telemetría específico (distinto del global). Para ello, utilice la clase `TelemetryProvider` del objeto Config del constructor de un cliente de servicio. Por ejemplo, consulte [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html) y busque la propiedad `TelemetryProvider`. Consulte [Proveedores de telemetría](observability-telemetry-providers.md) para obtener información sobre las implementaciones de telemetría personalizadas.

**Topics**
+ [Recursos adicionales](#observability-resources)
+ [Configuración de un `TelemetryProvider`](#observability-conf-telemetry-provider)
+ [Métricas](observability-metrics.md)
+ [Proveedores de telemetría](observability-telemetry-providers.md)