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.
Connecteur Amazon Athena CloudWatch
Le CloudWatch connecteur Amazon Athena permet à Amazon Athena de communiquer CloudWatch avec vous afin que vous puissiez interroger les données de vos journaux avec SQL.
Le connecteur vous met LogGroups en correspondance sous forme de schémas et chacun d'entre eux LogStream sous forme de table. Le connecteur mappe également une all_log_streams
vue spéciale qui contient tout ce qui LogStreams se trouve dans le LogGroup. Cette vue vous permet d'interroger tous les journaux en une seule fois LogGroup au lieu de les parcourir LogStream individuellement.
Prérequis
Déployez le connecteur sur votre Compte AWS à l’aide de la console Athena ou du AWS Serverless Application Repository. Pour plus d’informations, consultez Déploiement d'un connecteur de source de données ou Utilisation de AWS Serverless Application Repository pour déployer un connecteur de source de données.
Paramètres
Utilisez les variables d'environnement Lambda de cette section pour configurer le CloudWatch connecteur.
-
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 le PutObjectmanuel Amazon Simple Storage Service API Reference. -
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 estFalse
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 AIMDThrottlingInvoker
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 CloudWatch connecteur Athena vous met en correspondance LogGroups sous forme de schémas (c'est-à-dire de bases de données) et chacun d'entre eux LogStream sous forme de table. Le connecteur mappe également une all_log_streams
vue spéciale qui contient tout ce qui LogStreams se trouve dans le LogGroup. Cette vue vous permet d'interroger tous les journaux en une seule fois LogGroup au lieu de les parcourir LogStream individuellement.
Chaque table mappée par le connecteur CloudWatch Athena possède le schéma suivant. Ce schéma correspond aux champs fournis par CloudWatch Logs.
-
log_stream — Un
VARCHAR
qui contient le nom de la ligne d' LogStream où provient la ligne. -
time (temps) – Un
INT64
qui contient l’heure à laquelle la ligne de journal a été générée. -
message – Un
VARCHAR
qui contient le message du journal.
Exemples
L'exemple suivant montre comment exécuter une SELECT
requête sur un objet spécifique LogStream.
SELECT * FROM "lambda:
cloudwatch_connector_lambda_name
"."log_group_path
"."log_stream_name
" LIMIT 100
L'exemple suivant montre comment utiliser la all_log_streams
vue pour exécuter une requête sur tous les éléments LogStreams d'une valeur spécifiée LogGroup.
SELECT * FROM "lambda:
cloudwatch_connector_lambda_name
"."log_group_path
"."all_log_streams" LIMIT 100
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.yaml
-
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 échouer rapidement lorsque la requête Athena en amont est terminée.
-
CloudWatch Lecture/écriture des journaux : le connecteur utilise cette autorisation pour lire les données de vos journaux et écrire ses journaux de diagnostic.
Performance
Le CloudWatch connecteur Athena tente d'optimiser les requêtes CloudWatch en parallélisant les analyses des flux de log requis pour votre requête. Pour certains filtres temporels, le transfert des prédicats est effectué à la fois dans la fonction Lambda et dans Logs. CloudWatch
Pour des performances optimales, n'utilisez que des minuscules pour vos noms de groupes de journaux et de flux de journaux. L'utilisation d'une casse mixte oblige le connecteur à effectuer une recherche insensible à la casse, ce qui demande plus de temps de calcul.
Requêtes passthrough
Le CloudWatch connecteur prend en charge les requêtes passthrough qui utilisent la syntaxe de requête CloudWatch Logs Insights. Pour plus d'informations sur CloudWatch Logs Insights, consultez Analyser les données des CloudWatch journaux avec Logs Insights dans le guide de l'utilisateur Amazon CloudWatch Logs.
Pour créer des requêtes directes avec CloudWatch, utilisez la syntaxe suivante :
SELECT * FROM TABLE( system.query( STARTTIME => '
start_time
', ENDTIME => 'end_time
', QUERYSTRING => 'query_string
', LOGGROUPNAMES => 'log_group-names
', LIMIT => 'max_number_of_results
' ))
L'exemple de requête CloudWatch directe suivant filtre le duration
champ lorsqu'il n'est pas égal à 1000.
SELECT * FROM TABLE( system.query( STARTTIME => '1710918615308', ENDTIME => '1710918615972', QUERYSTRING => 'fields @duration | filter @duration != 1000', LOGGROUPNAMES => '/aws/lambda/cloudwatch-test-1', LIMIT => '2' ))
Informations de licence
Le projet de CloudWatch connecteur Amazon Athena est concédé sous licence Apache-2.0
Ressources supplémentaires
Pour plus d'informations sur ce connecteur, rendez-vous sur le site correspondant