Создать столбец на основе вычисленного процента сбоев

#azure-data-explorer #kql

#azure-data-explorer #kql

Вопрос:

Вот пример данных и мой запрос. Как рассчитать% сбоев и создать новое значение столбца на основе процента сбоев?

 let M = datatable (Run_Date:datetime , Job_Name:string , Job_Status:string , Count:int )
["2020-10-21",     "Job_A1",    "Succeeded",    10,
"2020-10-21",       "Job_A1",   "Failed",       8,
"10/21/2020",       "Job_B2",   "Succeeded",    21,
"10/21/2020",       "Job_C3",   "Succeeded",    21,
"10/21/2020",       "Job_D4",   "Succeeded",    136,
"10/21/2020",       "Job_E5",   "Succeeded",    187,
"10/21/2020",       "Job_E5",   "Failed",   4
];
M
| summarize  count() by Job_Name, Count, summary = strcat(Job_Name, " failed " , Count, " out of ", Count ," times.")
  

И желаемый результат приведен ниже.

Желаемый результат

Ответ №1:

вы могли бы попробовать что-то вроде этого:

 datatable (Run_Date:datetime , Job_Name:string , Job_Status:string , Count:int )
[
    "2020-10-21",     "Job_A1",   "Succeeded",    10,
    "2020-10-21",     "Job_A1",   "Failed",       8,
    "10/21/2020",     "Job_B2",   "Succeeded",    21,
    "10/21/2020",     "Job_C3",   "Succeeded",    21,
    "10/21/2020",     "Job_D4",   "Succeeded",    136,
    "10/21/2020",     "Job_E5",   "Succeeded",    187,
    "10/21/2020",     "Job_E5",   "Failed",       4
]
| summarize failures = sumif(Count, Job_Status == "Failed"), total = sum(Count) by Job_Name, Run_Date
| project Job_Name, failure_rate = round(100.0 * failures / total, 2), Summary = strcat(Job_Name, " failed " , failures, " out of ", total ," times.")
| extend ['Alert if failure rate > 40%'] = iff(failure_rate > 40, "Yes", "No")
  

—>

 | Job_Name | failure_rate | Summary                           | Alert if failure rate > 40% |
|----------|--------------|-----------------------------------|-----------------------------|
| Job_A1   | 44.44        | Job_A1 failed 8 out of 18 times.  | Yes                         |
| Job_B2   | 0            | Job_B2 failed 0 out of 21 times.  | No                          |
| Job_C3   | 0            | Job_C3 failed 0 out of 21 times.  | No                          |
| Job_D4   | 0            | Job_D4 failed 0 out of 136 times. | No                          |
| Job_E5   | 2.09         | Job_E5 failed 4 out of 191 times. | No                          |