Observabilité - Kit AWS SDK pour Kotlin

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Observabilité

L'observabilité est la mesure dans laquelle l'état actuel d'un système peut être déduit des données qu'il émet. Les données émises sont communément appelées télémétrie.

Ils Kit AWS SDK pour Kotlin peuvent fournir les trois signaux de télémétrie courants : métriques, traces et logs. Vous pouvez connecter un TelemetryProviderpour envoyer des données de télémétrie à un backend d'observabilité (tel que AWS X-RayAmazon CloudWatch), puis agir en conséquence.

Par défaut, seule la journalisation est activée et les autres signaux de télémétrie sont désactivés dans le SDK. Cette rubrique explique comment activer et configurer la sortie de télémétrie.

Important

TelemetryProviderest actuellement une API expérimentale qui doit être activée pour être utilisée.

Configurez un TelemetryProvider

Vous pouvez configurer un TelemetryProvider dans votre application globalement pour tous les clients de service ou pour des clients individuels. Les exemples suivants utilisent une getConfiguredProvider() fonction hypothétique pour illustrer les opérations de l'TelemetryProviderAPI. La Fournisseurs de services de télémétrie section décrit les informations relatives aux implémentations fournies par le SDK. Si un fournisseur n'est pas pris en charge, vous pouvez implémenter votre propre support ou ouvrir une demande de fonctionnalité sur GitHub.

Configuration du fournisseur de télémétrie global par défaut

Par défaut, chaque client de service tente d'utiliser le fournisseur de télémétrie disponible dans le monde entier. De cette façon, vous pouvez définir le fournisseur une seule fois, et tous les clients l'utiliseront. Cela ne doit être fait qu'une seule fois, avant d'instancier un client de service.

Pour utiliser le fournisseur de télémétrie global, mettez d'abord à jour les dépendances de votre projet pour ajouter le module de télémétrie par défaut, comme indiqué dans l'extrait de code Gradle suivant.

(Vous pouvez accéder au X.Y.Z lien pour voir la dernière version disponible.)

dependencies { implementation(platform("aws.smithy.kotlin:bom:X.Y.Z")) implementation("aws.smithy.kotlin:telemetry-defaults") ... }

Définissez ensuite le fournisseur de télémétrie global avant de créer un client de service, comme indiqué dans le code suivant.

import aws.sdk.kotlin.services.s3.S3Client import aws.smithy.kotlin.runtime.telemetry.GlobalTelemetryProvider import kotlinx.coroutines.runBlocking fun main() = runBlocking { val myTelemetryProvider = getConfiguredProvider() GlobalTelemetryProvider.set(myTelemetryProvider) S3Client.fromEnvironment().use { s3 -> … } } fun getConfiguredProvider(): TelemetryProvider { TODO("TODO - configure a provider") }

Configuration d'un fournisseur de télémétrie pour un client de service spécifique

Vous pouvez configurer un client de service individuel auprès d'un fournisseur de télémétrie spécifique (autre que le fournisseur global). Voici un exemple :

import aws.sdk.kotlin.services.s3.S3Client import kotlinx.coroutines.runBlocking fun main() = runBlocking { S3Client.fromEnvironment{ telemetryProvider = getConfiguredProvider() }.use { s3 -> ... } } fun getConfiguredProvider(): TelemetryProvider { TODO("TODO - configure a provider") }