TIPCommon.smp_time

Il modulo TIPCommon.smp_time offre un insieme completo di strumenti per la gestione dei dati temporali all'interno delle integrazioni. Semplifica attività complesse come lo spostamento del fuso orario, la persistenza dei timestamp per i connettori e le funzioni di monitoraggio critico per rilevare l'avvicinarsi dei timeout di esecuzione in azioni e connettori.

Conversione e manipolazione dell'ora

Queste utilità forniscono metodi standardizzati per trasformare i dati temporali tra vari formati, tra cui timestamp Unix, stringhe RFC 3339 e oggetti datetime di Python.

Funzione Parametri Descrizione
change_timezone()
  • dtime: (datetime) L'oggetto di origine.
  • current_tz: (str) Il nome del fuso orario attuale.
  • new_tz: (str) Il nome del fuso orario di destinazione.
Resi: datetime.datetime

Sposta un oggetto datetime in un nuovo fuso orario. Genera ValueError se una delle stringhe del fuso orario non è valida.

convert_string_to_timestamp()
  • datetime_string: (str) La stringa di origine.
Resi: int

Analizza una stringa di data e ora e restituisce il timestamp Unix equivalente.

datetime_to_rfc3339()
  • datetime_obj: (datetime) L'oggetto di origine.
Resi: str

Converte un oggetto datetime in una stringa conforme a RFC 3339.

get_timestamps()
  • range_string: (str) Intervallo di tempo denominato.
  • start_time_string: (str) Limite iniziale.
  • end_time_string: (str) Limite finale.
  • error_message: (str) Testo dell'eccezione personalizzata.
  • time_in_milliseconds: (booleano) il valore predefinito è False.
Resi: tuple[int, int]

Calcola i timestamp Unix di inizio e fine in base alle descrizioni dell'intervallo e alle stringhe limite.

get_timestamps_from_range()
  • range_string: (str) Intervallo di piattaforme denominato.
  • include_timezone: (bool) Include le informazioni sul fuso orario se True.
Resi: tuple[datetime, datetime]

Calcola gli oggetti datetime di inizio e fine derivati da stringhe di intervallo di tempo specifiche della piattaforma.

Stato e persistenza

Il mantenimento dell'"Ora dell'ultima esecuzione" è fondamentale per i connettori per evitare l'inserimento duplicato. Queste funzioni interagiscono direttamente con la piattaforma per gestire i checkpoint di esecuzione.

Funzione Parametri Descrizione
get_last_success_time()
  • siemplify: istanza dell'SDK (ChronicleSOAR).
  • offset_with_metric: (dict) Offset di riserva.
  • time_format: (int) DATETIME (1) o UNIX (2).
  • print_value: (bool) Registra messaggi nella console se True.
  • microtime: (bool) Attivazione/disattivazione della precisione.
Restituisce: time (DataModel)

Recupera l'ora dell'ultima esecuzione riuscita. Se non ne esiste nessuno, viene calcolato un valore di riserva in base all'offset.

save_timestamp()
  • siemplify: istanza dell'SDK (ChronicleSOAR).
  • alerts: (dict) Batch di avvisi elaborati.
  • timestamp_key: (str) Il valore predefinito è 'timestamp'.
  • incrementation_value: (int) ms da aggiungere al risultato.
  • log_timestamp: (bool) Registra messaggi nella console se True.
  • convert_timestamp_to_micro_time: (booleano) Attiva/disattiva.
  • convert_a_string_timestamp_to_unix: (booleano) Attiva/disattiva.
Resi: bool

Trova l'ultimo timestamp in un batch di avvisi e lo salva. Restituisce True se lo stato è stato aggiornato.

siemplify_fetch_timestamp()
  • siemplify: istanza dell'SDK (ChronicleSOAR).
  • datetime_format: (bool) Attiva/disattiva per il ritorno dell'oggetto.
  • timezone: (bool) imposta l'ora UTC se True.
Resi: int | datetime

Recupera direttamente il checkpoint di esecuzione corrente dal database della piattaforma.

siemplify_save_timestamp()
  • siemplify: istanza dell'SDK (ChronicleSOAR).
  • new_timestamp: (int) Valore da salvare.
  • datetime_format: (booleano) Il valore predefinito è False.
  • timezone: (booleano) Il valore predefinito è False.
Resi: None

Aggiorna il checkpoint di esecuzione della piattaforma con un nuovo valore specifico.

validate_timestamp()
  • last_run_timestamp: (datetime) Il valore di controllo.
  • offset_in_hours: (int) Finestra di analisi massima.
  • offset_is_in_days: (booleano) Attiva/disattiva la logica basata sui giorni.
Resi: datetime

Garantisce che un timestamp rientri nella finestra consentita. Genera ValueError se fuori intervallo.

Monitoraggio dell'esecuzione

Il monitoraggio del timeout è una funzionalità di sicurezza fondamentale. Queste funzioni aiutano gli script a identificare quando il tempo di elaborazione sta per scadere, consentendo loro di arrestarsi in modo controllato e salvare il loro stato attuale.

Funzione Parametri Descrizione
is_approaching_action_timeout()
  • action_execution_deadline_in_unix: (int) Scadenza.
  • timeout_threshold_in_sec: (int) Buffer. Il valore predefinito è 10.
Resi: bool

Controlla se uno script di azione si trova nel periodo di buffer finale prima della chiusura.

is_approaching_timeout()
  • connector_starting_time: (int) Ora di inizio.
  • python_process_timeout: (int) Durata massima.
  • timeout_threshold: (float) 0.9 (TIMEOUT_THRESHOLD).
Resi: bool

Rileva se un connettore ha consumato il budget di tempo in base al 90% TIMEOUT_THRESHOLD.