TIPCommon.smp_time

Modul TIPCommon.smp_time menawarkan serangkaian alat komprehensif untuk menangani data temporal dalam integrasi. Alat ini menyederhanakan tugas-tugas kompleks seperti perubahan zona waktu, persistensi stempel waktu untuk konektor, dan fungsi pemantauan penting untuk mendeteksi waktu tunggu eksekusi yang mendekati batas waktu dalam tindakan dan konektor.

Konversi dan manipulasi waktu

Utilitas ini menyediakan metode standar untuk mentransformasi data waktu antarberbagai format, termasuk stempel waktu Unix, string RFC 3339, dan objek datetime Python.

Fungsi Parameter Deskripsi
change_timezone()
  • dtime: (datetime) Objek sumber.
  • current_tz: (str) Nama zona waktu saat ini.
  • new_tz: (str) Nama zona waktu target.
Hasil: datetime.datetime

Mengubah objek datetime ke zona waktu baru. Memicu ValueError jika salah satu string zona waktu tidak valid.

convert_string_to_timestamp()
  • datetime_string: (str) String sumber.
Hasil: int

Mengurai string tanggal dan waktu serta menampilkan stempel waktu Unix yang setara.

datetime_to_rfc3339()
  • datetime_obj: (datetime) Objek sumber.
Hasil: str

Mengonversi objek datetime menjadi string yang kompatibel dengan RFC 3339.

get_timestamps()
  • range_string: (str) Rentang waktu bernama.
  • start_time_string: (str) Batas awal.
  • end_time_string: (str) Batas akhir.
  • error_message: (str) Teks pengecualian kustom.
  • time_in_milliseconds: (bool) Default-nya adalah False.
Hasil: tuple[int, int]

Menghitung stempel waktu Unix awal dan akhir berdasarkan deskripsi rentang dan string batas.

get_timestamps_from_range()
  • range_string: (str) Rentang platform bernama.
  • include_timezone: (bool) Menyertakan info zona waktu jika True.
Hasil: tuple[datetime, datetime]

Menghitung objek datetime awal dan akhir yang berasal dari string rentang waktu khusus platform.

Status dan persistensi

Mempertahankan "Waktu Run Terakhir" sangat penting bagi konektor untuk menghindari penyerapan duplikat. Fungsi ini berinteraksi langsung dengan platform untuk mengelola titik pemeriksaan eksekusi.

Fungsi Parameter Deskripsi
get_last_success_time()
  • siemplify: (ChronicleSOAR) Instance SDK.
  • offset_with_metric: (dict) Penggantian offset.
  • time_format: (int) DATETIME (1) atau UNIX (2).
  • print_value: (bool) Mencatat ke konsol jika True.
  • microtime: (bool) Tombol presisi.
Hasil: time (DataModel)

Mengambil waktu eksekusi terakhir yang berhasil. Jika tidak ada, maka fallback dihitung berdasarkan offset.

save_timestamp()
  • siemplify: (ChronicleSOAR) Instance SDK.
  • alerts: (dict) Batch notifikasi yang diproses.
  • timestamp_key: (str) Defaultnya adalah 'timestamp'.
  • incrementation_value: (int) md yang akan ditambahkan ke hasil.
  • log_timestamp: (bool) Mencatat ke konsol jika True.
  • convert_timestamp_to_micro_time: (bool) Tombol.
  • convert_a_string_timestamp_to_unix: (bool) Tombol.
Hasil: bool

Menemukan stempel waktu terbaru dalam batch pemberitahuan dan menyimpannya. Menampilkan True jika status diupdate.

siemplify_fetch_timestamp()
  • siemplify: (ChronicleSOAR) Instance SDK.
  • datetime_format: (bool) Tombol untuk menampilkan objek.
  • timezone: (bool) Memaksa UTC jika True.
Hasil: int | datetime

Mengambil langsung titik pemeriksaan eksekusi saat ini dari database platform.

siemplify_save_timestamp()
  • siemplify: (ChronicleSOAR) Instance SDK.
  • new_timestamp: (int) Nilai yang akan disimpan.
  • datetime_format: (bool) Default-nya adalah False.
  • timezone: (bool) Default-nya adalah False.
Hasil: None

Memperbarui titik pemeriksaan eksekusi platform dengan nilai baru tertentu.

validate_timestamp()
  • last_run_timestamp: (datetime) Nilai pemeriksaan.
  • offset_in_hours: (int) Jendela lihat kembali maksimum.
  • offset_is_in_days: (bool) Tombol logika berbasis hari.
Hasil: datetime

Memastikan stempel waktu berada dalam periode yang diizinkan. Memunculkan ValueError jika di luar rentang.

Pemantauan eksekusi

Pemantauan waktu tunggu adalah fitur keselamatan yang penting. Fungsi ini membantu skrip mengidentifikasi saat hampir kehabisan waktu pemrosesan, sehingga skrip dapat berhenti dengan baik dan menyimpan statusnya saat ini.

Fungsi Parameter Deskripsi
is_approaching_action_timeout()
  • action_execution_deadline_in_unix: (int) Batas waktu.
  • timeout_threshold_in_sec: (int) Buffer. Nilai defaultnya adalah 10.
Hasil: bool

Memeriksa apakah skrip tindakan berada dalam periode buffer terakhirnya sebelum penghentian.

is_approaching_timeout()
  • connector_starting_time: (int) Waktu mulai.
  • python_process_timeout: (int) Durasi maksimum.
  • timeout_threshold: (float) 0.9 (TIMEOUT_THRESHOLD).
Hasil: bool

Mendeteksi apakah konektor telah menggunakan anggaran waktunya berdasarkan 90% TIMEOUT_THRESHOLD.