Logstash: отправка отформатированных метрических событий в Elasticsearch - PullRequest
0 голосов
/ 02 ноября 2018

Я могу захватить некоторые метрики в stdout из событий в logstash, используя соответствующий плагин следующим образом:

в моем filter файле:

  if "somekeyword" in [tags] {
    metrics {
      meter => "events_somekeyword"
      flush_interval => 60
      add_tag => "metric_somekeyword"
    }
  }

в моем outputs файле

if "metric_somekeyword" in [tags] {
        stdout {
          codec => line {
            format => "Time: %{+YYYY-MM-dd HH:mm:ss Z} | Metric: rate 1m | Client: SomeJeyword | Rate: %{[events_somekeyword][rate_1m]}"
          }
        }

У меня вопрос, как перевести точную ту же операцию / форматирование в терминах elasticsearch вывода.

, например

{
    "Metric Rate": "1m",
    "Client": "SomeKeyword",
    "Rate": "THE_ACTUAL_RATE_VALUE_HERE",
    "@timestamp": "2018-11-02T11:34:34.000Z",
}

Я также хотел бы (если возможно), чтобы Rate было округлено до ближайшего целочисленного значения;

Выше следует сгруппировать по дневному индексу

1 Ответ

0 голосов
/ 03 ноября 2018

Если я правильно понял, вы хотите разобрать сообщение о значении ключа, как это

filter {
  kv { 
      source => "field_containing_the_message_to_parse"
      field_split => "|"
      value_split => ":"
  }
}

Если это то, что вы хотите, есть дополнительные опции для настройки вашего разбора https://www.elastic.co/guide/en/logstash/current/plugins-filters-kv.html

...