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 con SQL.

Il connettore mappa i tuoi 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

Usa le variabili di ambiente Lambda in 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 codificata in JSON delle intestazioni e dei valori della richiesta per la richiesta putObject di Amazon S3 utilizzata per lo spill (ad esempio, {"x-amz-server-side-encryption" : "AES256"}). Per altre possibili intestazioni, consulta il riferimento PutObjectall'API di Amazon Simple Storage Service.

  • kms_key_id: (facoltativo) per impostazione predefinita, tutti i dati riversati in Amazon S3 vengono crittografati utilizzando la modalità di crittografia autenticata AES-GCM e una chiave generata casualmente. Per fare in modo che la tua funzione Lambda utilizzi chiavi di crittografia più potenti generate da KMS come a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, puoi specificare l'ID della chiave KMS.

  • disable_spill_encryption: (facoltativo) se impostato su True, disabilita la crittografia dello spill. L'impostazione predefinita è False: in questo modo, i dati riversati su S3 vengono crittografati utilizzando AES-GCM tramite una chiave generata casualmente o una chiave generata mediante 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 congestione AIMD per la gestione degli eventi di limitazione tramite il costrutto CloudWatch 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 derivare il TPS dividendolo per 1.000 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

Consulta la sezione Policies del file athena-cloudwatch.yaml per i dettagli completi delle policy IAM richieste da questo connettore. 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