根据计算的失败百分比创建列

时间:2020-10-21 22:53:34

标签: kusto azure-data-explorer kusto-query-language

这是示例数据和我的查询。如何计算失败百分比并根据失败百分比创建新的列值?

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.")

所需的输出在下面。

Desired output

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

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                          |