Logs
Sie können den Logging-Service in Data Science integrieren, um benutzerdefinierte Logs zu erstellen und zu verwalten.
Ein benutzerdefiniertes Log ist eine erstklassige OCI-Ressource, die in einem bestimmten Kontext erfasste Logereignisse speichert und erfasst. Mit dem Logging-Service können Sie benutzerdefinierte Data Science-Logs für die folgenden Ressourcen aktivieren, verwalten und durchsuchen:
Diese Integration ist für alle unterstützten Ressourcen optional.
Joblogs
Sie können Tätigkeitsressourcen in den Logging-Service integrieren, um Joblaufdetails in einem benutzerdefinierten Log zu erfassen.
Sowohl Standardausgabe (stdout
) als auch Standardfehler (stderr
) aus dem Jobartefakt werden erfasst und im benutzerdefinierten Log verfügbar gemacht. Diese Ausgaben sind für den Data Science-Service nicht verfügbar. Es wird dringend empfohlen, die Loggingintegration für Jobs zu aktivieren, sowohl zum Debuggen potenzieller Probleme als auch zum Überwachen des Fortschritts der Ausführung Ihrer Jobartefakte.
Standardausgabemeldungen werden dem Typ "com.oraclecloud.datascience.jobrun.stdout"
zugewiesen, während Standardfehlermeldungen zum Typ "com.oraclecloud.datascience.jobrun.stderr"
gehören. Für beide Typen enthalten die Logmetadaten die "source"
, also die OCID des Joblaufs, der die Meldungen ausgibt.
Wenn die Loggingintegration in den Jobloggingkonfigurationen aktiviert ist, können Sie eine der folgenden Aktionen ausführen:
-
Sie können Ihre eigene Loggruppe und Ihr eigenes Log angeben, um Joblaufausgaben zu erfassen. Dabei können Sie alle Jobläufe so konfigurieren, dass sie dasselbe Log verwenden. Das wird aber nicht empfohlen. Logmeldungen sind einfacher zu lesen, wenn jeder Joblauf ein eigenes Log nutzt.
Oder
-
Sie können Ihre eigene Loggruppe angeben, aber den Data Science-Service so einrichten, dass zu Beginn jedes Joblaufs benutzerdefinierte Logs in der von Ihnen angegebenen Loggruppe automatisch in Ihrem Namen erstellt werden. Wenn die automatische Logerstellung aktiviert ist, müssen Sie nicht selber vor jedem Joblauf Logs konfigurieren. Das erstellte Log erhält den Namen
jobrun-<partial-jobrun-ocid>-logs
. Dieser kann jedoch nach Bedarf bearbeitet werden. Sie wirkt sich nicht auf die Loggingintegration mit dem Joblauf aus.
Sie verwalten den Lebenszyklus der Logs, einschließlich Logs, die automatisch vom Data Science-Service automatisch für Sie erstellt werden.
Logs werden nicht gelöscht, wenn Jobs und Jobläufe gelöscht werden.
Für beide Loggingkonfigurationstypen muss der Resource Principal des Joblaufs Berechtigungen zum Schreiben in Ihre benutzerdefinierten Logs besitzen.
Modell-Deployment-Logs
Wenn Sie das Logging für Modellbereitstellungen integrieren, werden die Kategorien "Zugriffslog" und "Vorhersagelog" erstellt:
- Zugriffslogs
-
Die Kategorie "Zugriffslog" ist ein benutzerdefiniertes Log, das detaillierte Informationen zu Anforderungen erfasst, die an den Modellendpunkt gesendet werden. Diese Informationen umfassen den Empfangszeitpunkt der Anforderung, Fehlercodes usw. Wenn bei Ihrem Modell-Deployment Probleme auftreten, sollten Sie im Allgemeinen als Erstes die Zugriffslogs prüfen.
In den Zugriffslogs für Modell-Deployments erfasste Metadaten:
logEmissionTime
-
Der Zeitpunkt in UTC, zu dem das Log aus dem Code ausgegeben wurde.
message
-
Der Anforderungspfad.
modelLatency
-
Die Zeit für die Verarbeitung einer Anforderung auf dem Modellserver in Millisekunden.
opcRequestId
-
Die Anforderungs-ID. Dieser Wert ist dieselbe
requestId
, die in der Antwort abgerufen wird. status
-
Der Statuscode der Anforderungsantwort.
Beispiel für einen Zugriffslogeintrag für das Modell-Deployment:
"data": { "logEmissionTime": "2021-01-25T07:23:39.101Z", "message": "POST /predict 1.1", "modelLatency": 4.43, "opcRequestId": "0BC0860C17DC46D79A0A1A7B4F139829", "status": 200 }
- Vorhersagelogs
-
Vorhersagelogs stammen aus Loggingaufrufen (
stdout
undstderr
), die benutzerdefinierte Codeausführungen in den Python-Dateien der Modellartefakte vorgenommen haben. Vorhersagelogs können nützliche Informationen zum Modell ausgeben und sind vollständig anpassbar. Sie können Zugriffs- und Vorhersagelogs im Rahmen der Aktionen Erstellen und Bearbeiten konfigurieren.In den Vorhersagelogs für Modell-Deployments erfasste Metadaten:
MD_OCID
-
Der Wert der Modell-Deployment-OCID.
level
-
Die Loggerebene. Wird auch als Schweregrad der Logmeldung bezeichnet.
logEmissionTime
-
Zeitpunkt in UTC, zu dem das Log aus dem Code ausgegeben wurde.
message
-
Eine benutzerdefinierte Meldung, die aus dem Python-Code des Modellartefakts ausgegeben wird.
name
-
Der Name des verwendeten Loggers.
Beispiel für einen Vorhersagelogeintrag für das Modell-Deployment:
"data": { "MD_OCID": "ocid1.datasciencemodeldeployment.oc1.iad.amaaaaaav66vvniauqakarfnyvn6gd2qt4fjpv2ffdnrthqyhqpapevmmh6a", "level": "ERROR", "logEmissionTime": "2021-01-27T08:43:04.029Z", "message": "exception :: name 'function' is not defined", "name": "root" },
Sie können zwei separate Logs für Vorhersage und Zugriff erstellen oder für beide dasselbe Log verwenden.
Logs konfigurieren
Erstellen Sie eine Loggruppe, und konfigurieren Sie ein benutzerdefiniertes Log im Logging-Service, wenn noch keines vorhanden ist:
Auf Logs zugreifen
Sie können über die OCI-Konsole unter Lösungen und Plattform auf die Logs für Ihre Jobs und Modellbereitstellungen zugreifen, indem Sie den Logging-Service und dann Suchen auswählen.
Wählen Sie im Feld Search die Option Select logs to search. Wählen Sie ein Compartment, eine Loggruppe und ein Log aus. Wenden Sie gegebenenfalls Filter an.
Die Logdaten sollten auf der Registerkarte Explorieren angezeigt werden. Siehe Logs durchsuchen.
Kopieren Sie die Log-ID mit Kopieren, um sie in den Jobs und Modell-Deployment-Ressourcen zu verwenden. Beispiel: Sie können eine Joblog-OCID in mehrere Jobläufe für verschiedene Konfigurationen einfügen, die gleichzeitig ausgeführt werden können.