@B_bird

Как агрегировать события по id?

Из логов приложения в elastic попадают записи(события), объединенные по trid (id транзакции):
{
  trid:  10005333969
  service: "test"
  message: "Request start"
},
{
  trid:  10005333969
  message: "Some inner log 1"
},
...
{
  trid:  10005333969
  message: "Some inner log N"
},
{
  trid:  10005333969
  duration: 0.123
  message: "Request end"
}

В первом событии есть имя сервиса (service), в последнем есть длительность запроса (duration). Не понимаю как построить агрегацию среднего времени ответа по сервису? Т.е. сначала надо все записи как-то сджоинить по trid, чтобы получить одну строку в которой будут service, duration а потом уже group by service и avg(duration), но как это в эластике - что-то пока не получается...

P.S. Пробовал это делать через logstash aggregation, но там возникли свои некие сложности по объединению кучи строк и превращение в один event, отправляемый в эластик.
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы