Ich habe so etwas schon einmal gemacht, aber ich habe experimentiert, um zu sehen, was ich verstehen kann, indem ich es mit AWS X-Ray visualisiert habe.
Ich habe versucht, Amazon Athena von AWS Lambda aus zu betreiben
Das AWS X-Ray SDK scheint Trace-Daten nicht direkt an AWS X-Ray zu senden. Erstellen Sie daher eine EC2-Instanz zum Senden. Dies ist einfach, da Sie nur Folgendes als Benutzerdaten registrieren und eine Instanz erstellen müssen.
#!/bin/bash
curl https://s3.dualstack.us-east-1.amazonaws.com/aws-xray-assets.us-east-1/xray-daemon/aws-xray-daemon-2.x.rpm -o /home/ec2-user/xray.rpm
yum install -y /home/ec2-user/xray.rpm
Das Röntgeninstallationsprotokoll wurde im Systemprotokoll ausgegeben, daher sollte es in Ordnung sein.
Examining /home/ec2-user/xray.rpm: xray-2.0.0-1.x86_64
Marking /home/ec2-user/xray.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package xray.x86_64 0:2.0.0-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
xray x86_64 2.0.0-1 /xray 6.6 M
Transaction Summary
================================================================================
Install 1 Package
Total size: 6.6 M
Installed size: 6.6 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : xray-2.0.0-1.x86_64 1/1
xray start/running, process 2576
Verifying : xray-2.0.0-1.x86_64 1/1
Installed:
xray.x86_64 0:2.0.0-1
Complete!
Ich führe diesmal eine Java-Anwendung aus, aber wenn Sie die Lambda-Anwendung mit Röntgen überwachen möchten, müssen Sie anscheinend nur das folgende Kontrollkästchen auf der Registerkarte "Einstellungen" der Lambda-Anwendung aktivieren.
Referenz: http://docs.aws.amazon.com/ja_jp/xray/latest/devguide/xray-services.html
Sie müssen auch die Berechtigungen für den Betrieb von Röntgen in IAM festlegen. Da dies eine Testoperation war, habe ich "AWS Xray Full Access" hinzugefügt, aber ich möchte diesen Bereich sorgfältig entsprechend der tatsächlichen Operation auswählen.
Wenn Sie dies bisher tun können, können Sie die Lambda-App normal ausführen und sehen, wie sie in X-Ray aussieht. Dieses Mal wird der folgende JSON als Eingabe für die Lambda-Anwendung angegeben. Dies ist der Eingabewert, als ich im vorherigen Artikel versucht habe, Daten aus Athenas Tabelle als Beispiel abzurufen.
{
"region": "us-east-1",
"s3Path": "s3://ishida-athena-staging-dir/",
"sql": "SELECT elbname, requestip, requestport, backendip, backendport, requestprocessingtime, backendprocessingtime, timestamp FROM sampledb.elb_logs order by timestamp desc limit 10",
"columnListStr": "elbname, requestip, requestport, backendip, backendport, requestprocessingtime, backendprocessingtime, timestamp"
}
Nach einer Wartezeit von ca. 1 Minute nach der Ausführung wurde die folgende Anzeige auf Röntgen bestätigt. Es scheint, dass die Visualisierung erfolgreich war.
Als ich auf das Objekt auf der rechten Seite der angezeigten Service Map geklickt habe, wurde Folgendes angezeigt.
Sie können in einer Liste sehen, wie lange jeder Prozess dauert und was als Antwort zurückgegeben wird. Durch Klicken auf die angezeigte ID wurden die Details dieser Ablaufverfolgung bestätigt.
Soweit Sie sehen, dauert die Initialisierung der Lambda-App ca. 230 ms und der eigentliche Athena-Verbindungsteil ca. 3 Sekunden. Dieser Vorgang dauert insgesamt 4,6 Sekunden, daher sollte klar sein, dass er ungefähr 1,5 Sekunden dauert, außer dass er tatsächlich auf Athena zugreift. Ich brauche mehr Studium in diesem Bereich (^^;
Übrigens, wenn es einen Fehler gibt, können Sie anscheinend auch den Inhalt der Ausnahme überprüfen.
Wie lange jeder Prozess dauert, und es ist leistungsstark, in der Lage zu sein, zu visualisieren, während die aufrufende Beziehung so einfach eingerichtet wird. In Anbetracht der Tatsache, dass es üblich sein wird, die Verarbeitung mit Microservices usw. zu verteilen, kann gesagt werden, dass es sich um eine unverzichtbare Technologie handelt. Im Frühjahr scheinen Zipkin und Sleuth auf AWS realisiert zu sein.