TIPCommon.smp_time

TIPCommon.smp_time 모듈은 통합 내에서 시간 데이터를 처리하기 위한 포괄적인 도구 모음을 제공합니다. 작업 및 커넥터에서 실행 시간 제한이 임박했음을 감지하는 시간대 전환, 커넥터의 타임스탬프 지속성, 중요한 모니터링 기능과 같은 복잡한 작업을 간소화합니다.

시간 변환 및 조작

이러한 유틸리티는 Unix 타임스탬프, RFC 3339 문자열, Python datetime 객체 등 다양한 형식 간에 시간 데이터를 변환하는 표준화된 방법을 제공합니다.

함수 매개변수 설명
change_timezone()
  • dtime: (datetime) 소스 객체입니다.
  • current_tz: (str) 현재 시간대 이름입니다.
  • new_tz: (str) 대상 시간대 이름입니다.
반환: datetime.datetime

datetime 객체를 새 시간대로 이동합니다. 시간대 문자열이 잘못된 경우 ValueError가 발생합니다.

convert_string_to_timestamp()
  • datetime_string: (str) 소스 문자열입니다.
반환: int

날짜/시간 문자열을 파싱하고 이에 상응하는 Unix 타임스탬프를 반환합니다.

datetime_to_rfc3339()
  • datetime_obj: (datetime) 소스 객체입니다.
반환: str

datetime 객체를 RFC 3339 규격 문자열로 변환합니다.

get_timestamps()
  • range_string: (str) 이름이 지정된 기간입니다.
  • start_time_string: (str) 시작 경계입니다.
  • end_time_string: (str) 종료 경계입니다.
  • error_message: (str) 맞춤 예외 텍스트입니다.
  • time_in_milliseconds: (bool) 기본값은 False입니다.
반환: tuple[int, int]

범위 설명과 바운드 문자열을 기반으로 시작 및 종료 Unix 타임스탬프를 계산합니다.

get_timestamps_from_range()
  • range_string: (str) 명명된 플랫폼 범위입니다.
  • include_timezone: (bool) True인 경우 시간대 정보를 포함합니다.
반환: tuple[datetime, datetime]

플랫폼별 시간 범위 문자열에서 파생된 시작 및 종료 datetime 객체를 계산합니다.

상태 및 지속성

커넥터가 중복 수집을 방지하려면 '마지막 실행 시간'을 유지하는 것이 중요합니다. 이러한 함수는 플랫폼과 직접 인터페이스하여 실행 체크포인트를 관리합니다.

함수 매개변수 설명
get_last_success_time()
  • siemplify: (ChronicleSOAR) SDK 인스턴스입니다.
  • offset_with_metric: (dict) 대체 오프셋입니다.
  • time_format: (int) DATETIME (1) 또는 UNIX (2)
  • print_value: (bool) True인 경우 콘솔에 로깅합니다.
  • microtime: (bool) 정밀도 전환입니다.
반환: time (DataModel)

마지막으로 성공한 실행 시간을 가져옵니다. 없으면 오프셋을 기반으로 대체 값을 계산합니다.

save_timestamp()
  • siemplify: (ChronicleSOAR) SDK 인스턴스입니다.
  • alerts: (dict) 처리된 알림의 배치입니다.
  • timestamp_key: (str) 기본값은 'timestamp'입니다.
  • incrementation_value: (int) 결과에 추가할 밀리초입니다.
  • log_timestamp: (bool) True인 경우 콘솔에 로깅합니다.
  • convert_timestamp_to_micro_time: (bool) 전환
  • convert_a_string_timestamp_to_unix: (bool) 전환
반환: bool

알림 일괄 처리에서 최신 타임스탬프를 찾아 저장합니다. 상태가 업데이트되면 True을 반환합니다.

siemplify_fetch_timestamp()
  • siemplify: (ChronicleSOAR) SDK 인스턴스입니다.
  • datetime_format: (bool) 객체 반환 전환
  • timezone: (bool) True인 경우 UTC를 강제 적용합니다.
반환: int | datetime

플랫폼 데이터베이스에서 현재 실행 체크포인트를 직접 가져옵니다.

siemplify_save_timestamp()
  • siemplify: (ChronicleSOAR) SDK 인스턴스입니다.
  • new_timestamp: (int) 저장할 값입니다.
  • datetime_format: (bool) 기본값은 False입니다.
  • timezone: (bool) 기본값은 False입니다.
반환: None

특정 새 값으로 플랫폼의 실행 체크포인트를 업데이트합니다.

validate_timestamp()
  • last_run_timestamp: (datetime) 확인 값입니다.
  • offset_in_hours: (int) 최대 회고 기간입니다.
  • offset_is_in_days: (bool) 일별 로직 전환입니다.
반환: datetime

타임스탬프가 허용된 기간 내에 있는지 확인합니다. 범위를 벗어나면 ValueError이 발생합니다.

실행 모니터링

타임아웃 모니터링은 중요한 안전 기능입니다. 이러한 함수는 스크립트가 처리 시간이 거의 소진되었을 때 이를 식별하여 스크립트가 정상적으로 중지되고 현재 상태를 저장할 수 있도록 지원합니다.

함수 매개변수 설명
is_approaching_action_timeout()
  • action_execution_deadline_in_unix: (int) 기한입니다.
  • timeout_threshold_in_sec: (int) 버퍼입니다. 기본값은 10입니다.
반환: bool

종료 전 최종 버퍼 기간 내에 작업 스크립트가 있는지 확인합니다.

is_approaching_timeout()
  • connector_starting_time: (int) 시작 시간입니다.
  • python_process_timeout: (int) 최대 길이입니다.
  • timeout_threshold: (float) 0.9 (TIMEOUT_THRESHOLD).
반환: bool

커넥터가 90% TIMEOUT_THRESHOLD에 따라 시간 예산을 사용했는지 감지합니다.