Connettore Amazon Athena CloudWatch - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Connettore Amazon Athena CloudWatch

Il CloudWatch connettore Amazon Athena consente la comunicazione CloudWatch con Amazon Athena in modo da poter interrogare i dati di log. SQL

Questo connettore non utilizza Glue Connections per centralizzare le proprietà di configurazione in Glue. La configurazione della connessione viene effettuata tramite Lambda.

Il connettore mappa gli schemi LogGroups AS e ciascuno LogStream come tabella. Il connettore mappa anche una all_log_streams vista speciale che contiene tutto LogStreams in. LogGroup Questa visualizzazione consente di interrogare tutti i log in una sola LogGroup volta invece di cercarli LogStream singolarmente.

Prerequisiti

Parametri

Utilizzate i parametri di questa sezione per configurare il CloudWatch connettore.

  • spill_bucket: specifica il bucket Amazon S3 per i dati che superano i limiti della funzione Lambda.

  • spill_prefix: (facoltativo) per impostazione predefinita, viene utilizzata una sottocartella nello spill_bucket specificato chiamata athena-federation-spill. Ti consigliamo di configurare un ciclo di vita dell'archiviazione di Amazon S3 in questa posizione per eliminare gli spill più vecchi di un numero predeterminato di giorni o ore.

  • spill_put_request_headers — (Facoltativo) Una mappa JSON codificata delle intestazioni e dei valori delle richieste per la richiesta Amazon S3 utilizzata per lo spilling (ad esempio,). putObject {"x-amz-server-side-encryption" : "AES256"} Per altre possibili intestazioni, consulta PutObjectAmazon Simple Storage Service API Reference.

  • kms_key_id — (Facoltativo) Per impostazione predefinita, tutti i dati trasferiti su Amazon S3 vengono crittografati utilizzando la modalità di crittografia autenticata e una chiave generata AES GCM casualmente. Per fare in modo che la funzione Lambda utilizzi chiavi di crittografia più potenti generate da KMS likea7e63k4b-8loc-40db-a2a1-4d0en2cd8331, puoi specificare un ID di KMS chiave.

  • disable_spill_encryption: (facoltativo) se impostato su True, disabilita la crittografia dello spill. L'impostazione predefinita è False che i dati trasferiti su S3 vengano crittografati utilizzando AES GCM -, utilizzando una chiave generata casualmente o per generare chiavi. KMS La disabilitazione della crittografia dello spill può migliorare le prestazioni, soprattutto se la posizione dello spill utilizza la crittografia lato server.

Il connettore supporta anche il controllo della AIMD congestione per la gestione degli eventi di limitazione CloudWatch tramite il costrutto Amazon Athena Query Federation. SDK ThrottlingInvoker Puoi modificare il comportamento di limitazione predefinito impostando una delle seguenti variabili di ambiente facoltative:

  • throttle_initial_delay_ms: il ritardo iniziale della chiamata applicato dopo il primo evento di congestione. Il valore predefinito è 10 millisecondi.

  • throttle_max_delay_ms: il ritardo massimo tra le chiamate. Puoi TPS derivarlo dividendolo in 1000 ms. Il valore predefinito è 1000 millisecondi.

  • throttle_decrease_factor: il fattore in base al quale Athena riduce la frequenza delle chiamate. Il valore predefinito è 0.5

  • throttle_increase_ms: la velocità con cui Athena riduce il ritardo della chiamata. Il valore predefinito è 10 millisecondi.

Database e tabelle

Il CloudWatch connettore Athena mappa i tuoi schemi LogGroups AS (ovvero database) e ciascuno LogStream come tabella. Il connettore mappa anche una all_log_streams vista speciale che contiene tutto LogStreams in. LogGroup Questa visualizzazione consente di interrogare tutti i log in una sola LogGroup volta invece di cercarli LogStream singolarmente.

Ogni tabella mappata dal connettore CloudWatch Athena ha lo schema seguente. Questo schema corrisponde ai campi forniti da CloudWatch Logs.

  • log_stream — Un VARCHAR che contiene il nome da LogStream cui proviene la riga.

  • time: un INT64 che contiene l'ora epoch in cui è stata generata la riga del log.

  • message: un VARCHAR che contiene il messaggio di log.

Esempi

L'esempio seguente mostra come eseguire un'SELECTinterrogazione su un oggetto specificato. LogStream

SELECT * FROM "lambda:cloudwatch_connector_lambda_name"."log_group_path"."log_stream_name" LIMIT 100

L'esempio seguente mostra come utilizzare la all_log_streams vista per eseguire un'interrogazione su tutti i dati LogStreams in uno specifico LogGroup.

SELECT * FROM "lambda:cloudwatch_connector_lambda_name"."log_group_path"."all_log_streams" LIMIT 100

Autorizzazioni richieste

Per tutti i dettagli sulle IAM politiche richieste da questo connettore, consulta la Policies sezione del file athena-cloudwatch.yaml. L'elenco che segue riporta un riepilogo delle autorizzazioni richieste.

  • Accesso in scrittura ad Amazon S3: per trasferire i risultati di query di grandi dimensioni, il connettore richiede l'accesso in scrittura a una posizione in Amazon S3.

  • Athena GetQueryExecution: il connettore utilizza questa autorizzazione per fallire rapidamente quando la query Athena upstream è terminata.

  • CloudWatch Lettura/scrittura dei registri: il connettore utilizza questa autorizzazione per leggere i dati di registro e scrivere i registri di diagnostica.

Prestazioni

Il CloudWatch connettore Athena tenta di ottimizzare le query CloudWatch parallelizzando le scansioni dei flussi di log necessari per la query. Per determinati filtri temporali, il pushdown dei predicati viene eseguito sia all'interno della funzione Lambda che all'interno di Logs. CloudWatch

Per prestazioni ottimali, utilizza solo lettere minuscole per i nomi di gruppi di log e dei flussi di log. L'utilizzo di caratteri misti tra maiuscole e minuscole fa sì che il connettore esegua una ricerca senza distinzione tra maiuscole e minuscole, più impegnativa dal punto di vista computazionale.

Interrogazioni pass-through

Il CloudWatch connettore supporta le query passthrough che utilizzano la sintassi delle query di CloudWatch Logs Insights. Per ulteriori informazioni su CloudWatch Logs Insights, consulta Analyzing log data with CloudWatch Logs Insights nella Amazon CloudWatch Logs User Guide.

Per creare query passthrough con CloudWatch, utilizza la seguente sintassi:

SELECT * FROM TABLE( system.query( STARTTIME => 'start_time', ENDTIME => 'end_time', QUERYSTRING => 'query_string', LOGGROUPNAMES => 'log_group-names', LIMIT => 'max_number_of_results' ))

Il seguente esempio di query CloudWatch passthrough filtra per il duration campo quando questo non è uguale a 1000.

SELECT * FROM TABLE( system.query( STARTTIME => '1710918615308', ENDTIME => '1710918615972', QUERYSTRING => 'fields @duration | filter @duration != 1000', LOGGROUPNAMES => '/aws/lambda/cloudwatch-test-1', LIMIT => '2' ))

Informazioni sulla licenza

Il progetto Amazon Athena CloudWatch Connector è concesso in licenza con licenza Apache-2.0.

Risorse aggiuntive

Per ulteriori informazioni su questo connettore, visita il sito corrispondente su .com. GitHub