« Zurück zu Produkt

Dokumentation

IPS_GetInstanceDataFlowStatistics

 array IPS_GetInstanceDataFlowStatistics ()

Rückgabewert

Ein Array mit einem Eintrag je Instanz. Die Reihenfolge der Einträge ist nicht garantiert. Jeder Eintrag enthält folgende key => value Paare:

Index Typ Beschreibung
InstanceID integer ID der sendenden Instanz
TxCount integer Anzahl der an die übergeordnete Instanz gesendeten Daten
TxDuration integer Gesamtdauer der Verarbeitung in der übergeordneten Instanz in Millisekunden
TxMaxDuration integer Längste Verarbeitung in der übergeordneten Instanz in Millisekunden
RxCount integer Anzahl der Zustellungen an untergeordnete Instanzen
RxDuration integer Gesamtdauer der Verarbeitung in den untergeordneten Instanzen in Millisekunden
RxMaxDuration integer Längste Verarbeitung in einer untergeordneten Instanz in Millisekunden

Beschreibung

Warning

Diese Funktion ist nur für den internen Gebrauch vorgesehen und kann sich jederzeit ohne Ankündigung ändern oder entfallen.

Die Funktion liefert die Statistik des Datenflusses je Instanz. Tx erfasst die Daten, die eine Instanz an ihre übergeordnete Instanz sendet, und die Dauer, bis diese die Daten verarbeitet hat. Rx erfasst die Daten, die eine Instanz an ihre untergeordneten Instanzen sendet, und die Dauer, bis diese die Daten verarbeitet haben. Dabei wird jede Zustellung an eine untergeordnete Instanz einzeln gezählt. Die Werte werden seit dem Start von IP-Symcon aufsummiert, Dauern werden auf ganze Millisekunden abgerundet.

Warning

Die Statistik wird nur erfasst, wenn der Spezialschalter "DataFlowWatch" aktiviert ist (z.B. über IPS_SetOption). Andernfalls schlägt die Funktion mit "This function is only available if the special option 'DataFlowWatch' is enabled!" fehl.

Ist "DataFlowWatch" aktiviert, wird zusätzlich eine Meldung ins Log geschrieben, wenn eine Verarbeitung länger als "FlowWatchTxLimit" bzw. "FlowWatchRxLimit" Millisekunden dauert (0 = deaktiviert).

Beispiel

// Instanzen mit der längsten Verarbeitung im Datenfluss ausgeben
$statistics = IPS_GetInstanceDataFlowStatistics();
usort($statistics, function ($a, $b) {
    return ($b['TxDuration'] + $b['RxDuration']) <=> ($a['TxDuration'] + $a['RxDuration']);
});
foreach (array_slice($statistics, 0, 3) as $entry) {
    printf("#%d: Tx %d (%d ms), Rx %d (%d ms)\n", $entry['InstanceID'], $entry['TxCount'], $entry['TxDuration'], $entry['RxCount'], $entry['RxDuration']);
}

/* liefert z.B.:
#23456: Tx 120 (845 ms), Rx 5310 (2210 ms)
#34567: Tx 0 (0 ms), Rx 2655 (512 ms)
*/
Haben Sie noch Fragen?