Connecteur de métriques Amazon Athena pour CloudWatch - Amazon Athena

Connecteur de métriques Amazon Athena pour CloudWatch

Le connecteur Amazon Athena CloudWatch Metrics permet à Amazon Athena d’interroger des données CloudWatch Metrics avec SQL.

Ce connecteur n’utilise pas les connexions Glue pour centraliser les propriétés de configuration dans Glue. La configuration de la connexion s’effectue via Lambda.

Pour plus d’informations sur la publication de métriques de requêtes sur CloudWatch depuis Athena, consultez Surveillance des requêtes et contrôle des coûts à l’aide de CloudWatch et d’EventBridge.

Prérequis

Paramètres

Utilisez les paramètres de cette section pour configurer le connecteur CloudWatch Metrics.

Nous vous recommandons de configurer un connecteur CloudWatch Metrics en utilisant un objet des connexions Glue. Pour ce faire, définissez la variable d’environnement glue_connection du connecteur CloudWatch Metrics Lambda sur le nom de la connexion Glue à utiliser.

Propriétés des connexions Glue

Utilisez la commande suivante afin d’obtenir le schéma d’un objet de connexion Glue. Ce schéma contient tous les paramètres que vous pouvez utiliser pour contrôler votre connexion.

aws glue describe-connection-type --connection-type CLOUDWATCHMETRICS

Propriétés d’environnement Lambda

  • glue_connection – Spécifie le nom de la connexion Glue associée au connecteur fédéré.

Note
  • Tous les connecteurs qui utilisent des connexions Glue doivent utiliser AWS Secrets Manager pour stocker les informations d’identification.

  • Le connecteur CloudWatch Metrics créé à l’aide des connexions Glue ne prend pas en charge l’utilisation d’un gestionnaire de multiplexage.

  • Le connecteur CloudWatch Metrics créé à l’aide des connexions Glue prend uniquement en charge ConnectionSchemaVersion 2.

  • spill_bucket – Spécifie le compartiment Amazon S3 pour les données qui dépassent les limites des fonctions Lambda.

  • spill_prefix – (Facultatif) Par défaut, il s’agit d’un sous-dossier dans le spill_bucket spécifié appelé athena-federation-spill. Nous vous recommandons de configurer un cycle de vie de stockage Amazon S3 à cet endroit pour supprimer les déversements supérieurs à un nombre de jours ou d’heures prédéterminé.

  • spill_put_request_headers – (Facultatif) Une carte codée au format JSON des en-têtes et des valeurs des demandes pour la demande putObject Amazon S3 utilisée pour le déversement (par exemple, {"x-amz-server-side-encryption" : "AES256"}). Pour les autres en-têtes possibles, consultez PutObject dans la Référence d'API Amazon Simple Storage Service.

  • kms_key_id – (Facultatif) Par défaut, toutes les données déversées vers Amazon S3 sont chiffrées à l'aide du mode de chiffrement authentifié AES-GCM et d'une clé générée de manière aléatoire. Pour que votre fonction Lambda utilise des clés de chiffrement plus puissantes générées par KMS, comme a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, vous pouvez spécifier l’ID d’une clé KMS.

  • disable_spill_encryption – (Facultatif) Lorsque la valeur est définie sur True, le chiffrement des déversements est désactivé. La valeur par défaut est False afin que les données déversées vers S3 soient chiffrées à l’aide d’AES-GCM, soit à l’aide d’une clé générée de manière aléatoire soit à l’aide de KMS pour générer des clés. La désactivation du chiffrement des déversements peut améliorer les performances, surtout si votre lieu de déversement utilise le chiffrement côté serveur.

Le connecteur prend également en charge le contrôle de congestion AIMD pour gérer les événements de limitation depuis CloudWatch via la construction ThrottlingInvoker du kit SDK Amazon Athena Query Federation. Vous pouvez modifier le comportement de limitation par défaut en définissant l’une des variables d’environnement facultatives suivantes :

  • throttle_initial_delay_ms – Le délai d’appel initial appliqué après le premier événement de congestion. La valeur par défaut est de 10 millisecondes.

  • throttle_max_delay_ms – Le délai maximal entre les appels. Vous pouvez obtenir le TPS en le divisant en 1 000 ms. La valeur par défaut est de 1 000 millisecondes.

  • throttle_dimine_factor – Le facteur par lequel Athena réduit le taux d’appels. La valeur par défaut est 0,5.

  • throttle_increase_ms – La vitesse à laquelle Athena réduit le délai d’appel. La valeur par défaut est de 10 millisecondes.

Base de données et tables

Le connecteur Athena CloudWatch Metrics mappe vos espaces de noms, vos dimensions, vos métriques et vos valeurs métriques en deux tables dans un schéma unique appelé default.

Le tableau des métriques

La table metrics contient les métriques disponibles telles que définies de manière unique par une combinaison d’espace de noms, d’ensemble et de nom. La table metrics contient les colonnes suivantes.

  • namespace (espace de noms) – Un VARCHAR contenant l’espace de noms.

  • metric_name– Un VARCHAR contenant le nom de la métrique.

  • dimensions – Un LIST des objets STRUCT composés de dim_name (VARCHAR) et de dim_value (VARCHAR).

  • statistic (statistique) – Un LIST de statistiques VARCH (par exemple, p90, AVERAGE, ...) disponible pour la métrique.

La table metric_samples

La table metric_samples contient les échantillons de métriques disponibles pour chaque métrique de la table metrics. La table metric_samples contient les colonnes suivantes.

  • namespace (espace de noms) – Un VARCHAR qui contient l’espace de noms.

  • metric_name– Un VARCHAR qui contient le nom de la métrique.

  • dimensions – Un LIST des objets STRUCT composés de dim_name (VARCHAR) et de dim_value (VARCHAR).

  • dim_name– Un champ pratique VARCHAR que vous pouvez utiliser pour filtrer facilement en fonction du nom d’une dimension unique.

  • dim_value– Un champ pratique VARCHAR que vous pouvez utiliser pour filtrer facilement en fonction du nom d’une valeur unique.

  • period (période) – Un champ INT qui représente la « période » de la métrique en secondes (par exemple, une métrique de 60 secondes).

  • timestamp (horodatage) – Un champ BIGINT qui représente l’époque en secondes à laquelle se rapporte l’exemple de métrique.

  • value (valeur) – Un champ FLOAT8 qui contient la valeur de l’exemple.

  • statistic (statistique) – Un VARCHAR qui contient le type statistique de l’exemple (par exemple, AVERAGE ou p90).

Autorisations nécessaires

Pour plus de détails sur les politiques IAM requises par ce connecteur, reportez-vous à la section Policies du fichier athena-cloudwatch-metrics.yaml. La liste suivante résume les autorisations requises.

  • Amazon S3 write access (Accès en écriture Amazon S3) – Le connecteur nécessite un accès en écriture à un emplacement dans Amazon S3 pour déverser les résultats à partir de requêtes volumineuses.

  • Athena GetQueryExecution – Le connecteur utilise cette autorisation pour aboutir à un échec rapide lorsque la requête Athena en amont est terminée.

  • CloudWatch Metrics ReadOnly – Le connecteur utilise cette autorisation pour interroger vos données de métriques.

  • CloudWatch Logs Write – Le connecteur utilise cet accès pour écrire ses journaux de diagnostic.

Performances

Le connecteur Athena CloudWatch Metrics tente d’optimiser les requêtes par rapport à CloudWatch Metrics en parallélisant les analyses des flux de journaux nécessaires pour votre requête. Pour certains filtres de période, de métrique, d’espace de noms et de dimension, la poussée des prédicats est effectuée à la fois dans la fonction Lambda et dans CloudWatch Logs.

Informations de licence

Le projet de connecteur CloudWatch Metrics Amazon Athena est concédé sous licence dans le cadre de la licence Apache-2.0.

Ressources supplémentaires

Pour plus d'informations sur ce connecteur, consultez le site correspondant sur GitHub.com.