TIPCommon.smp_time

O módulo TIPCommon.smp_time oferece um conjunto abrangente de ferramentas para processar dados temporais em integrações. Ele simplifica tarefas complexas, como mudança de fuso horário, persistência de carimbos de data/hora para conectores e funções de monitoramento críticas para detectar tempos limite de execução em ações e conectores.

Conversão e manipulação de tempo

Esses utilitários oferecem métodos padronizados para transformar dados de tempo entre vários formatos, incluindo carimbos de data/hora do Unix, strings RFC 3339 e objetos datetime do Python.

Função Parâmetros Descrição
change_timezone()
  • dtime: (data e hora) o objeto de origem.
  • current_tz: (str) nome do fuso horário atual.
  • new_tz: (str) nome do fuso horário de destino.
Retorna: datetime.datetime

Muda um objeto de data e hora para um novo fuso horário. Gera ValueError se alguma das strings de fuso horário for inválida.

convert_string_to_timestamp()
  • datetime_string: (str) a string de origem.
Retorna: int

Analisa uma string de data e hora e retorna o carimbo de data/hora Unix equivalente.

datetime_to_rfc3339()
  • datetime_obj: (data e hora) o objeto de origem.
Retorna: str

Converte um objeto de data e hora em uma string compatível com RFC 3339.

get_timestamps()
  • range_string: (str) período nomeado.
  • start_time_string: (str) limite inicial.
  • end_time_string: (str) limite final.
  • error_message: (str) texto de exceção personalizado.
  • time_in_milliseconds: (bool) o padrão é False.
Retorna: tuple[int, int]

Calcula carimbos de data/hora Unix de início e término com base em descrições de intervalo e strings de limite.

get_timestamps_from_range()
  • range_string: (str) intervalo de plataforma nomeado.
  • include_timezone: (bool) inclui informações de fuso horário se True.
Retorna: tuple[datetime, datetime]

Calcula objetos de data/hora de início e fim derivados de strings de período específicas da plataforma.

Estado e persistência

Manter o "Last Run Time" é vital para que os conectores evitem a ingestão duplicada. Essas funções interagem diretamente com a plataforma para gerenciar pontos de verificação de execução.

Função Parâmetros Descrição
get_last_success_time()
  • siemplify: instância do SDK (ChronicleSOAR).
  • offset_with_metric: (dicionário) deslocamento substituto.
  • time_format: (int) DATETIME (1) ou UNIX (2).
  • print_value: (bool) registra no console se True.
  • microtime: (bool) Alternância de precisão.
Retorna: time (DataModel)

Recupera o horário da última execução bem-sucedida. Se não houver, ele vai calcular um substituto com base no deslocamento.

save_timestamp()
  • siemplify: instância do SDK (ChronicleSOAR).
  • alerts: (dicionário) lote de alertas processados.
  • timestamp_key: (str) o padrão é 'timestamp'.
  • incrementation_value: (int) ms a serem adicionados ao resultado.
  • log_timestamp: (bool) registra no console se True.
  • convert_timestamp_to_micro_time: (bool) alternância.
  • convert_a_string_timestamp_to_unix: (bool) alternância.
Retorna: bool

Encontra e salva o carimbo de data/hora mais recente em um lote de alertas. Retorna True se o estado foi atualizado.

siemplify_fetch_timestamp()
  • siemplify: instância do SDK (ChronicleSOAR).
  • datetime_format: (bool) alternância para retorno de objeto.
  • timezone: (bool) força o UTC se True.
Retorna: int | datetime

Busca diretamente o ponto de verificação de execução atual do banco de dados da plataforma.

siemplify_save_timestamp()
  • siemplify: instância do SDK (ChronicleSOAR).
  • new_timestamp: (int) valor a ser salvo.
  • datetime_format: (bool) o padrão é False.
  • timezone: (bool) o padrão é False.
Retorna: None

Atualiza o ponto de verificação de execução da plataforma com um novo valor específico.

validate_timestamp()
  • last_run_timestamp: (data e hora) O valor da verificação.
  • offset_in_hours: (int) período máximo de retorno.
  • offset_is_in_days: (bool) ativação/desativação da lógica baseada em dias.
Retorna: datetime

Garante que um carimbo de data/hora esteja dentro da janela permitida. Gera ValueError se estiver fora do intervalo.

Monitoramento de execução

O monitoramento de tempo limite é um recurso de segurança essencial. Essas funções ajudam os scripts a identificar quando estão quase sem tempo de processamento, permitindo que eles parem de maneira adequada e salvem o estado atual.

Função Parâmetros Descrição
is_approaching_action_timeout()
  • action_execution_deadline_in_unix: (int) prazo.
  • timeout_threshold_in_sec: (int) buffer. O padrão é 10.
Retorna: bool

Verifica se um script de ação está dentro do período final de buffer antes do encerramento.

is_approaching_timeout()
  • connector_starting_time: (int) Horário de início.
  • python_process_timeout: (int) duração máxima.
  • timeout_threshold: (float) 0.9 (TIMEOUT_THRESHOLD).
Retorna: bool

Detecta se um conector consumiu o orçamento de tempo com base no TIMEOUT_THRESHOLD de 90%.