TIPCommon.smp_time

Das Modul TIPCommon.smp_time bietet eine umfassende Reihe von Tools für die Verarbeitung von Zeitdaten in Integrationen. Sie vereinfacht komplexe Aufgaben wie die Zeitzonenanpassung, die Beibehaltung von Zeitstempeln für Connectors und wichtige Überwachungsfunktionen, um bevorstehende Zeitüberschreitungen bei der Ausführung von Aktionen und Connectors zu erkennen.

Zeitkonvertierung und ‑bearbeitung

Diese Dienstprogramme bieten standardisierte Methoden zum Transformieren von Zeitdaten zwischen verschiedenen Formaten, darunter Unix-Zeitstempel, RFC 3339-Strings und Python-Datetime-Objekte.

Funktion Parameter Beschreibung
change_timezone()
  • dtime: (datetime) Das Quellobjekt.
  • current_tz: (str) Name der aktuellen Zeitzone.
  • new_tz: (str) Name der Zielzeitzone.
Liefert: datetime.datetime

Verschiebt ein datetime-Objekt in eine neue Zeitzone. Löst ValueError aus, wenn einer der Zeitzonenstrings ungültig ist.

convert_string_to_timestamp()
  • datetime_string: (str) Der Quellstring.
Liefert: int

Parst einen Datum/Uhrzeit-String und gibt den entsprechenden Unix-Zeitstempel zurück.

datetime_to_rfc3339()
  • datetime_obj: (datetime) Das Quellobjekt.
Liefert: str

Wandelt ein datetime-Objekt in einen RFC 3339-kompatiblen String um.

get_timestamps()
  • range_string: (str) Benannter Zeitraum.
  • start_time_string: (str) Startgrenze.
  • end_time_string: (str) Endgrenze.
  • error_message: (str) Benutzerdefinierter Ausnahmetext.
  • time_in_milliseconds: (bool) Der Standardwert ist False.
Liefert: tuple[int, int]

Berechnet Start- und End-UNIX-Zeitstempel basierend auf Bereichsbeschreibungen und Begrenzungsstrings.

get_timestamps_from_range()
  • range_string: (str) Benannter Plattformbereich.
  • include_timezone: (boolesch) Enthält Zeitzoneninformationen, wenn True.
Liefert: tuple[datetime, datetime]

Berechnet Start- und End-Datetime-Objekte, die aus plattformspezifischen Zeitbereichs-Strings abgeleitet werden.

Status und Persistenz

Das Speichern der „Last Run Time“ ist für Connectors unerlässlich, um doppelte Aufnahmen zu vermeiden. Diese Funktionen interagieren direkt mit der Plattform, um Ausführungspunkte zu verwalten.

Funktion Parameter Beschreibung
get_last_success_time()
  • siemplify: SDK-Instanz (ChronicleSOAR).
  • offset_with_metric: (dict) Fallback-Offset.
  • time_format: (int) DATETIME (1) oder UNIX (2).
  • print_value: (bool) Gibt True in der Konsole aus.
  • microtime: (bool) Schalter für die Genauigkeit.
Gibt Folgendes zurück: time (DataModel)

Ruft die Zeit der letzten erfolgreichen Ausführung ab. Wenn keine vorhanden ist, wird ein Fallback basierend auf dem Offset berechnet.

save_timestamp()
  • siemplify: SDK-Instanz (ChronicleSOAR).
  • alerts: (dict) Batch verarbeiteter Benachrichtigungen.
  • timestamp_key: (str) Der Standardwert ist 'timestamp'.
  • incrementation_value: (int) Millisekunden, die dem Ergebnis hinzugefügt werden sollen.
  • log_timestamp: (bool) Gibt True in der Konsole aus.
  • convert_timestamp_to_micro_time: (bool) Umschalten.
  • convert_a_string_timestamp_to_unix: (bool) Umschalten.
Liefert: bool

Ermittelt den letzten Zeitstempel in einem Benachrichtigungsbatch und speichert ihn. Gibt True zurück, wenn der Status aktualisiert wurde.

siemplify_fetch_timestamp()
  • siemplify: SDK-Instanz (ChronicleSOAR).
  • datetime_format: (bool) Ein/Aus-Schalter für die Rückgabe von Objekten.
  • timezone: (bool) Erzwingt UTC, wenn True.
Liefert: int | datetime

Ruft den aktuellen Ausführungsspeicherpunkt direkt aus der Plattformdatenbank ab.

siemplify_save_timestamp()
  • siemplify: SDK-Instanz (ChronicleSOAR).
  • new_timestamp: (int) Der zu speichernde Wert.
  • datetime_format: (bool) Der Standardwert ist False.
  • timezone: (bool) Der Standardwert ist False.
Liefert: None

Aktualisiert den Ausführungsprüfpunkt der Plattform mit einem bestimmten neuen Wert.

validate_timestamp()
  • last_run_timestamp: (datetime) Der Prüfwert.
  • offset_in_hours: (int) Maximaler Rückblickzeitraum.
  • offset_is_in_days: (bool) Schalter für die tagesbasierte Logik.
Liefert: datetime

Prüft, ob ein Zeitstempel innerhalb des zulässigen Zeitraums liegt. Löst ValueError aus, wenn der Wert außerhalb des Bereichs liegt.

Ausführungsüberwachung

Die Zeitüberschreitungsüberwachung ist eine wichtige Sicherheitsfunktion. Diese Funktionen helfen Skripts, zu erkennen, wann die Verarbeitungszeit fast abgelaufen ist. So können sie ordnungsgemäß beendet und der aktuelle Status gespeichert werden.

Funktion Parameter Beschreibung
is_approaching_action_timeout()
  • action_execution_deadline_in_unix: (int) Deadline.
  • timeout_threshold_in_sec: (int) Buffer. Die Standardeinstellung ist 10.
Liefert: bool

Prüft, ob sich ein Aktionsskript in der letzten Pufferperiode vor dem Beenden befindet.

is_approaching_timeout()
  • connector_starting_time: (int) Startzeit.
  • python_process_timeout: (int) Maximale Dauer.
  • timeout_threshold: (float) 0.9 (TIMEOUT_THRESHOLD).
Liefert: bool

Ermittelt, ob ein Connector sein Zeitbudget basierend auf dem 90. Prozentil der TIMEOUT_THRESHOLD überschritten hat.