Das Leistungsprotokoll

Das Leistungsprotokoll enthält Details dazu, wie lange die Ausführung eines Auftrags oder Dienstes dauert. Es enthält auch allgemeine Leistungsinformationen zum Auftrag oder Dienst sowie Leistungsinformationen zu jedem Schritt im Datenfluss des Auftrags oder Dienstes. Mithilfe dieser Informationen können Sie Engpässe in Ihrem Datenfluss identifizieren, indem Sie sich Ausführungszeit und Verarbeitungszeit jedes Schrittes ansehen. Ein großer Unterschied zwischen Ausführungszeit und Verarbeitungszeit bedeutet, dass der Schritt einige Zeit auf Daten von vorher auszuführenden Schritten wartet. Dies kann darauf hinweisen, dass ein Schritt, der vorher auszuführen ist, einen Engpass im Datenfluss darstellt. Beachten Sie, dass bei Datenladungen ein großer Unterschied zwischen Ausführungszeit und Verarbeitungszeit nicht notwendigerweise ein Leistungsproblem anzeigt, da Datenladungen typischerweise auf die ersten Datensätze vom Rest des Datenflusses warten müssen.

Um Leistungsüberwachung für einen Auftrag oder Dienst zu aktivieren, verwenden Sie den Befehl performancemonitor enabled set in der Administrationsumgebung.

Das Leistungsprotokoll befindet sich auf Ihrem Spectrum Technology Platform-Server an folgendem Speicherort:

SpectrumLocation\server\app\repository\logs\performance.log

Das Leistungsprotokoll enthält eine Zeile für jede Ausführung eines überwachten Auftrags oder Dienstes. Es handelt sich um ein rotierendes Protokoll mit maximal fünf Dateien. Jede Datei ist auf eine Größe von 10 MB begrenzt. Sobald dieses Limit erreicht ist, werden die ältesten Leistungsdaten gelöscht, wenn neue Leistungsdaten protokolliert werden.

Jeder Eintrag im Leistungsprotokoll enthält folgende Informationen.
Anmerkung: Um hier das Lesen zu erleichtern, wurden Zeilenumbrüche und Einzüge eingefügt. Im tatsächlichen Protokoll erstreckt sich der Eintrag über eine Zeile.
Date Time [performance]
{
     "username":"UserName",
     "dataflowId":"DataflowName",
     "runMode":"BatchOrRealTime",
     "remote":TrueOrFalse,
     "elapsedTime":Nanoseconds,
     "stageInfo":[
          {
               "stageName":"Name",
               "stageLabel":"Label",
               "options":{
                    OptionsList
               },
               "recordsRead":Count,
               "recordsWritten":Count,
               "executionTime":Nanoseconds,
               "processingTime":Nanoseconds
          }
     ]
}

Dabei gilt Folgendes:

username
Dies ist der Benutzer, der den Auftrag oder Dienst ausgeführt hat.
dataflowID
Dies ist der Name des Dienstes oder Auftrags, wie er im Enterprise Designer definiert ist.
runMode
Dies zeigt an, ob sich der Eintrag auf einen Auftrag oder einen Dienst bezieht. Zur Auswahl stehen:
Batch
Der Protokolleintrag bezieht sich auf einen Auftrag.
RealTime
Der Protokolleintrag bezieht sich auf einen Dienst.
remote
Dies zeigt an, ob der Auftrag oder Dienst auf dem lokalen Server oder auf einer Remoteserver ausgeführt wurde. Bei Aufträgen mit einem oder mehreren Schritten, die auf einem Remoteserver laufen, zeigt das Leistungsprotokoll auf dem ausführenden Servers, dass der Auftrag nicht dezentral ausgeführt wurde (Wert „falsch“). Dahingegen zeigt das Leistungsprotokoll auf dem Remoteserver, der einen oder mehrere Schritte des Auftrags ausführt, dass der Auftrag dezentral ausgeführt wurde (Wert „wahr“). Zur Auswahl stehen:
true
Der Auftrag oder Dienst wurde auf einem Remoteserver ausgeführt.
false
Der Auftrag oder Dienst wurde auf dem lokalen Server ausgeführt.
elapsedTime
Dies ist die Zeit in Nanosekunden, die die Ausführung des Auftrags oder der Dienstanforderung gedauert hat.
stageInfo
Dies listet Ausführungsinformationen für jeden Schritt im Datenfluss auf. Für jeden Schritt werden folgende Informationen aufgeführt:
stageName
Dies ist der permanente Name des Schrittes.
stageLabel
Dies ist der benutzerdefinierte Name des Schrittes. Die Schrittbeschriftung wird auf der Arbeitsfläche im Enterprise Designer angezeigt.
options
Wenn zur Laufzeit irgendwelche Optionen angegeben wurden, werden die Optionen und ihre Einstellungen hier aufgelistet.
recordsRead
Dies ist die Gesamtzahl an Datensätzen, die über alle Eingabeports des Schrittes in den Schritt weitergeleitet wurden.
recordsWritten
Dies ist die Gesamtzahl an Datensätzen, die den Schritt an alle seine Ausgabeports geschrieben hat.
executiontime
Dies ist die Zeitspanne von der Verarbeitung des ersten Datensatzes bis zu Verarbeitung des letzten Datensatzes durch den Schritt. Hier ist auch die Zeit enthalten, die der Schritt inaktiv war, während er auf Daten von andern Schritten im Datenfluss gewartet hat.
processingtime
Dies ist die Zeitspanne, in der der Schritt Datensätze aktiv verarbeitet hat. Die Zeit, in der er inaktiv war und auf Daten von anderen Schritten im Datenfluss gewartet hat, ist nicht enthalten.