Исключить выходные дни при расчете ожидаемого времени окончания - PullRequest
0 голосов
/ 05 февраля 2019

Я делаю билет поддержки с 4 уровнями серьезности.Уровень 1 ожидает, что билет будет разрешен через 4 часа Уровень 2 ожидает, что билет будет решен через 8 часов.Уровень 3 ожидает, что билет будет решен в течение 72 часов или 3 дня.Уровень 4 ожидает, что билет будет решен в течение 120 часов или 5 дней.Поэтому, когда билет поднят в четверг с уровень 4 серьезности , следует ожидать, что он будет решен в следующую среду .Тем не менее, мой код теперь включал субботу и воскресенье в расчет, в результате чего вместо него следующий понедельник будет разрешен вместо него. Как исключить субботу и воскресенье при расчете ожидаемого времени?

 index="test" sourcetype="incident_all_v3" 
    | eval check = strptime(strftime(_time , "%d/%m/%Y") , "%d/%m/%Y") 
    | eventstats max(check) as checktime 
    | where checktime = check 
    | dedup 1 ticket_id sortby -_time 
    | join ticket_id type=left 
        [ search index="test" sourcetype="incident_assigned" 
        | eval check = strptime(strftime(_time , "%d/%m/%Y") , "%d/%m/%Y") 
        | eventstats max(check) as checktime 
        | where checktime = check 
        | eval move_datetime = strptime(move_datetime, "%Y-%m-%d %H:%M:%S") 
        | dedup 1 ticket_id sortby -move_datetime 
        | eval move_datetime = strftime(move_datetime, "%Y-%m-%d %H:%M:%S") 
        | fields ticket_id move_datetime] 
    | eval realtime = if(isnotnull(move_datetime), move_datetime, create_time) 
    | eval create_time_epoch = strptime(realtime, "%Y-%m-%d %H:%M:%S") 
    | lookup app_name.csv queue_name output vendor, app_name 
    | search vendor = "Company" AND ticket_type = "Incident" AND app_name = "*" 
    | eval diff_seconds = now() - create_time_epoch 
    | eval diff_days = diff_seconds / 86400 
    | eval status = if (ticket_state="Closed" OR ticket_state="Completed" OR ticket_state="For Verification" OR ticket_state="Verified", "resolved" , "unresolved") 
    | where status = "unresolved" AND ticket_type = "Incident" 
    | eval SEVERITY = case ( SLA == "SLA Level 1", "1", SLA == "SLA Level 2", "2", SLA == "SLA Level 3", "3", SLA == "SLA Level 4", "4") 
    | eval SEVERITY = "Sev ".SEVERITY 
    | lookup sev_target.csv SEVERITY output TARGET 
    | eval SLA_DEADLINE = case(SEVERITY = "Sev 4", create_time_epoch + (TARGET*3600), SEVERITY = "Sev 3", create_time_epoch + (TARGET*3600), SEVERITY = "Sev 2", create_time_epoch + (TARGET*3600), SEVERITY = "Sev 1", create_time_epoch + (TARGET*3600)) 
    | eval SLA_DEADLINE = strftime(SLA_DEADLINE,"%Y-%m-%d %H:%M:%S") 
    | table *

Результаты SLA Таким образом, для этой картины в 2019-01-18 (пятница) серьезность - уровень 4, а крайний срок - 2019-01-23, что не то, что яхотел, потому что он включал субботу и воскресенье внутри.Это должно быть 2019-01-25 вместо.

...