Ich habe eine Beam-Anwendung, die lokal erfolgreich mit directrunner ausgeführt wird und gibt mir alle Protokollinformationen, die ich in meinem Code auf meiner lokalen Konsole habe. Aber wenn ich es in der google cloud dataflow-Umgebung ausprobiert habe, sehe ich nur diese Log-Informationen auf meiner lokalen Konsole, aber sie erscheinen nicht auf der Google Cloud Console für Datenfluss-Jobs, weder auf ihrer StackDriver-Logging-Seite.Logs für Beam-Anwendung in Google Cloud Datenfluss
Hier ist, was ich tat, um meinen Code für Datenfluß Läufer von meiner lokalen Konsole ausführen:
mvn compile exec:java -Dexec.mainClass= ... \
-Dexec.args=... " \
-Pdataflow-runner
und alle Protokolle wieder auf dieser lokalen Konsole. Aber als ich in meinem Browser zur Google Cloud Console ging und nach den Protokollen für meinen Datenflussjob suchte, sah ich diese Protokolle nirgends in meinem Code LOGGER.info(msg)
. Ich sehe nur Protokolle im Zusammenhang mit Datenfluss-Pipeline.
Also frage ich mich, ob meine Beam-Anwendung separat so ausgeführt wird, dass der Teil der Hauptklasse nicht innerhalb der Pipeline lokal ausgeführt wird und nur der Teil des Pipeline-Codes zur Ausführung an die Google Cloud gesendet wird. Daher sind diese Protokollinformationen, die nicht im Pipeline-Code enthalten sind, nicht in den Google Cloud Dataflow-Protokollen verfügbar.