Как отобразить уникальный счет с последним значением из Elasticsearch в Кибане - PullRequest
1 голос
/ 27 апреля 2019

Я новичок в ELK. Я создал индекс с именем "ordersatus", в котором хранится статус, опубликованный логистическим партнером.

всякий раз, когда логистический партнер обновляет статус заказа, новый статус помещается вasticseach.

Теперь у каждого заказа есть несколько заявок со статусом заказа, таким как «ПОДТВЕРЖДЕНИЕ ЗАКАЗА», «НАЗНАЧЕНИЕ НАЗНАЧЕНИЯ», «ВНЕ ДЛЯ ДОСТАВКИ» и т. Д.

Проблема возникает, когда мне нужно увидеть, сколько заказов в каком статусе. Общее количество заказов равно 2, но в статусе заказа я получаю общее количество 4, потому что оно также учитывает более старые значения. как вы можете видеть на прикрепленном скриншоте.

Я хочу отобразить все уникальные статусы заказов вместе с количеством заказов, имеющих этот статус. * 1009 то есть *

СТАТУС ЗАКАЗА | ВСЕГО СЧЕТА

APPOINTMENT_CONFIRMED | 1
ASSIGN_FOR_DELIVERY | 1

на данный момент отображает статус ордера "ПОДТВЕРЖДЕНО" со счетом 2. который является старшим значением этих двух ордеров.

Screenshot1 screenshot2

Ответы [ 2 ]

0 голосов
/ 11 мая 2019

В качестве обходного пути вы можете добавить ниже в конфигурацию logstash для добавления весов для каждого статуса.Когда статус преобразуется из предыдущего статуса, добавьте -1 к предыдущему весу статуса и добавьте 1 к новому весу статуса.

if [status] == "ORDER CONFIRM" {

  mutate { "add_field" => { "order_confirm_weight" => "1" } }
  mutate { convert => { "order_confirm_weight" => "integer" }}

} else if [status] == "APPOINTMENT SCHEDULED" {

  mutate { "add_field" => { "order_confirm_weight" => "-1" } }
  mutate { convert => { "order_confirm_weight" => "integer" }}

  mutate { "add_field" => { "appointment_scheduled_weight" => "1" } }
  mutate { convert => { "appointment_scheduled_weight" => "integer" }}  

} else if [status] == "OUT FOR DELIVERY" {

  mutate { "add_field" => { "appointment_scheduled_weight" => "-1" } }
  mutate { convert => { "appointment_scheduled_weight" => "integer" }}  

  mutate { "add_field" => { "out_for_delivery_weight" => "1" } }
  mutate { convert => { "out_for_delivery_weight" => "integer" }}  

}

После настройкидобавлен в logstash, вы можете получить счетчик каждого статуса в визуализации кибана, используя следующие функции агрегирования.

ORDER CONFIRM Count = Sum (order_confirm_weight)
APPOINTMENT SCHEDULED Count = Sum (appointment_scheduled_weight)
OUT FOR DELIVERY Count = Sum (out_for_delivery_weight)
0 голосов
/ 27 апреля 2019

Вам нужны отдельные статусы и их количество в таблице второго скриншота? У вас есть два варианта выбора: временная метка и статус: удалить временную метку, так как она будет разбита на каждую уникальную временную метку. То, что вы хотите, это только статус.

Это другой набор данных, но вы поняли:

enter image description here

...