Amazon Athena Athena-Anschluss CloudWatch - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon Athena Athena-Anschluss CloudWatch

Der Amazon CloudWatch Athena-Connector ermöglicht Amazon Athena die Kommunikation mit, CloudWatch sodass Sie Ihre Protokolldaten mit SQL abfragen können.

Der Konnektor ordnet Ihre LogGroups AS-Schemas und jedes Schema LogStream als Tabelle zu. Der Konnektor ordnet auch eine spezielle all_log_streams Ansicht zu, die alles LogStreams in der LogGroup enthält. In dieser Ansicht können Sie alle Protokolle in einem LogGroup auf einmal abfragen, anstatt sie LogStream einzeln zu durchsuchen.

Voraussetzungen

Parameter

Verwenden Sie die Lambda-Umgebungsvariablen in diesem Abschnitt, um den CloudWatch Konnektor zu konfigurieren.

  • spill_bucket – Gibt den Amazon S3-Bucket für Daten an, die die Lambda-Funktionsgrenzen überschreiten.

  • spill_prefix – (Optional) Ist standardmäßig ein Unterordner im angegebenen spill_bucket genannt athena-federation-spill. Wir empfehlen Ihnen, einen Amazon-S3-Speicher-Lebenszyklus an dieser Stelle zu konfigurieren, um die Überlaufe zu löschen, die älter als eine festgelegte Anzahl von Tagen oder Stunden sind.

  • spill_put_request_headers – (Optional) Eine JSON-codierte Zuordnung von Anforderungsheadern und Werten für die Amazon-S3-putObject-Anforderung, die für den Überlauf verwendet wird (z. B. {"x-amz-server-side-encryption" : "AES256"}). Weitere mögliche Header finden Sie PutObjectin der Amazon Simple Storage Service API-Referenz.

  • kms_key_id – (Optional) Standardmäßig werden alle Daten, die an Amazon S3 gesendet werden, mit dem AES-GCM-authentifizierten Verschlüsselungsmodus und einem zufällig generierten Schlüssel verschlüsselt. Damit Ihre Lambda-Funktion stärkere Verschlüsselungsschlüssel verwendet, die von KMS generiert werden, wiea7e63k4b-8loc-40db-a2a1-4d0en2cd8331, können Sie eine ID einer Verschlüsselung angeben.

  • disable_spill_encryption – (Optional) Bei Einstellung auf True, wird die Spill-Verschlüsselung deaktiviert. Die Standardeinstellung ist False, sodass Daten, die an S3 übertrragen werden, mit AES-GCM verschlüsselt werden - entweder mit einem zufällig generierten Schlüssel oder mit KMS zum Generieren von Schlüsseln. Das Deaktivieren der Überlauf-Verschlüsselung kann die Leistung verbessern, insbesondere wenn Ihr Überlauf-Standort eine serverseitige Verschlüsselung verwendet.

Der Connector unterstützt auch AIMD-Überlastungskontrolle für die Verarbeitung von Drosselungsereignissen CloudWatch über das Amazon Athena Query Federation SDK-Konstrukt. ThrottlingInvoker Sie können das Standarddrosselungsverhalten optimieren, indem Sie eine der folgenden optionalen Umgebungsvariablen festlegen:

  • throttle_initial_delay_ms – Die erste Aufrufverzögerung, die nach dem ersten Stauereignis angewendet wurde. Der Standardwert beträgt 10 Millisekunden.

  • throttle_max_delay_ms – Die maximale Verzögerung zwischen Aufrufen. Sie können TPS ableiten, indem Sie es in 1000 ms teilen. Der Standardwert beträgt 1 000 Millisekunden.

  • throttle_decrease_factor – Der Faktor, um den Athena die Aufrufrate reduziert. Der Standardwert ist 0,5.

  • throttle_increase_ms – Die Geschwindigkeit, mit der Athena die Aufrufverzögerung verringert. Der Standardwert beträgt 10 Millisekunden.

Datenbanken und Tabellen

Der CloudWatch Athena-Konnektor ordnet Ihre LogGroups AS-Schemas (d. h. Datenbanken) und jeweils LogStream als Tabelle zu. Der Konnektor ordnet auch eine spezielle all_log_streams Ansicht zu, die alles LogStreams in der enthält. LogGroup In dieser Ansicht können Sie alle Protokolle in einem LogGroup auf einmal abfragen, anstatt sie LogStream einzeln zu durchsuchen.

Jede vom CloudWatch Athena-Konnektor zugeordnete Tabelle hat das folgende Schema. Dieses Schema entspricht den Feldern, die von Logs bereitgestellt CloudWatch werden.

  • log_stream — Ein WertVARCHAR, der den Namen des Objekts enthält, aus dem LogStream die Zeile stammt.

  • Zeit – Ein INT64, das die Epochenzeit enthält, zu der die Protokollzeile generiert wurde.

  • Botschaft – Ein VARCHAR, das die Protokollnachricht enthält.

Beispiele

Das folgende Beispiel zeigt, wie eine SELECT Abfrage für ein bestimmtes Objekt ausgeführt wird. LogStream

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

Das folgende Beispiel zeigt, wie die all_log_streams Ansicht verwendet wird, um eine Abfrage für alle LogStreams in einem bestimmten Bereich durchzuführen LogGroup.

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

Erforderliche Berechtigungen

Ausführliche Informationen zu den für diesen Konnektor erforderlichen IAM-Richtlinien finden Sie im Policies-Abschnitt der athena-cloudwatch.yaml-Datei. In der folgenden Liste sind die erforderlichen Berechtigungen zusammengefasst.

  • Amazon-S3-Schreibzugriff – Der Konnektor benötigt Schreibzugriff auf einen Speicherort in Amazon S3, um Ergebnisse aus großen Abfragen zu übertragen.

  • Athena GetQueryExecution — Der Konnektor verwendet diese Berechtigung, um einen Fast-Fail auszuführen, wenn die Upstream-Athena-Abfrage beendet wurde.

  • CloudWatch Lesen/Schreiben von Protokollen — Der Connector verwendet diese Berechtigung, um Ihre Protokolldaten zu lesen und seine Diagnoseprotokolle zu schreiben.

Leistung

Der CloudWatch Athena-Konnektor versucht, Abfragen zu optimieren, CloudWatch indem er Scans der für Ihre Abfrage erforderlichen Protokollstreams parallelisiert. Für bestimmte Zeitraumfilter wird der Prädikat-Pushdown sowohl innerhalb der Lambda-Funktion als auch innerhalb von Logs ausgeführt. CloudWatch

Verwenden Sie für Ihre Protokollgruppennamen und Protokollstreamnamen nur Kleinbuchstaben, um eine optimale Leistung zu erzielen. Bei der Verwendung gemischter Groß- und Kleinschreibung führt der Konnektor eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durch, die rechenintensiver ist.

Passthrough-Abfragen

Der CloudWatch Connector unterstützt Passthrough-Abfragen, die die CloudWatch Logs Insights-Abfragesyntax verwenden. Weitere Informationen zu CloudWatch Logs Insights finden Sie unter Analysieren von Protokolldaten mit CloudWatch Logs Insights im Amazon CloudWatch Logs-Benutzerhandbuch.

Verwenden Sie die folgende Syntax CloudWatch, um Passthrough-Abfragen mit zu erstellen:

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

In der folgenden CloudWatch Passthrough-Beispielabfrage wird nach dem duration Feld gefiltert, wenn es nicht 1000 entspricht.

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

Lizenzinformationen

Das Amazon Athena CloudWatch Connector-Projekt ist unter der Apache-2.0-Lizenz lizenziert.

Weitere Ressourcen

Weitere Informationen zu diesem Connector finden Sie auf der entsprechenden Website unter .com. GitHub