Создание логической круговой диаграммы SUMO с итогами SUM - PullRequest
2 голосов
/ 15 апреля 2019

Я хотел бы создать логическую круговую диаграмму SUMO, однако мне сложно делать это с итоговыми значениями SUM. ниже вы можете увидеть мой запрос

_sourceCategory=MyAppSource
| parse "* [*] {\"machineName\":*,\"requestPath\":*,\"requestMethod\":*,\"requestSize\":*,\"requestType\":*,\"service\":*,\"duration\":*,\"stack\":*,\"errorMessage\":*,\"errorObject\":*,\"userName\":*,\"clientId\":*,\"statusCode\":*,\"traceIdentifier\":*}" as TimeStamp,Subject,MachineName,RequestPath,RequestMethod,RequestSize,RequestType,Service,Duration,Stack,ErrorMessage,ErrorObject,UserName,ClientID,StatusCode,TraceIdentifier
| if (Duration >= 40, 1, 0) as RequestTimeGreaterThan40ms
| if (Duration < 40, 1, 0) as RequestTimeUnder40ms 
| sum(RequestTimeGreaterThan40ms) as RequestTimeGreaterThan40ms, sum(RequestTimeUnder40ms) as RequestTimeUnder40ms
| RequestTimeGreaterThan40ms + RequestTimeUnder40ms as TotalRequest
| (RequestTimeGreaterThan40ms/TotalRequest)*100 as RequestTimeGreaterThan40ms
| (RequestTimeUnder40ms/TotalRequest)*100 as RequestTimeUnder40ms

Это дает такой результат:

enter image description here

Однако, когда я смотрю на свою круговую диаграмму, она выглядит так

* +1012 *enter image description here

Мой вопрос: Как вы можете видеть, моя проблема в том, что круговая диаграмма захватывает только первое значение, которое будет 4.03717, и ничего больше. Мне нужно переместить другие столбцы в строки, чтобы круговая диаграмма могла понять, что это разные значения, и все они должны быть представлены в круговой диаграмме. Кто-нибудь знает, что будет лучшим способом сделать это?

1 Ответ

3 голосов
/ 15 апреля 2019

Я думаю, что проблема с вашим подходом состоит в том, что вы заканчиваете тем, что подсчитываете запросы выше-40 мс и ниже-40 мс в двух отдельных «категориях», так что тогда трудно «присоединиться» к ним (извините за не слишкомточная формулировка).

Более чистым способом было бы использование одиночной агрегации (не двойной):

_sourceCategory=MyAppSource
| parse "* [*] {\"machineName\":*,\"requestPath\":*,\"requestMethod\":*,\"requestSize\":*,\"requestType\":*,\"service\":*,\"duration\":*,\"stack\":*,\"errorMessage\":*,\"errorObject\":*,\"userName\":*,\"clientId\":*,\"statusCode\":*,\"traceIdentifier\":*}" as TimeStamp,Subject,MachineName,RequestPath,RequestMethod,RequestSize,RequestType,Service,Duration,Stack,ErrorMessage,ErrorObject,UserName,ClientID,StatusCode,TraceIdentifier
| if (Duration >= 40, "greater", "under") as RequestTimeVs40ms
| count by RequestTimeVs40ms

(Отказ от ответственности: я в настоящее время работаю в Sumo Logic)

...