# Logstash aggregate filter plugin

**URL:** https://discuss.elastic.co/t/logstash-aggregate-filter-plugin/168022
**Category:** Logstash
**Created:** [February 12, 2019, 11:56am UTC](https://discuss.elastic.co/t/logstash-aggregate-filter-plugin/168022 "2019-02-12T11:56:45Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![ozmhsh](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ozmhsh/32/49129_2.png) [@ozmhsh](https://discuss.elastic.co/u/ozmhsh)
#### Post date: [February 12, 2019, 11:56am UTC](https://discuss.elastic.co/t/logstash-aggregate-filter-plugin/168022/1 "2019-02-12T11:56:45Z")

</div>

Hi Everyone,

I have a log file to parse as below:  
INFO - ID1 - 2019/01/01  
INFO - ID2  
Other logs 2019/01/02  
INFO - ID3 - 2019/01/03

How can I use Aggregate Filter plugin to produce below?  
ID1 2019/01/01  
ID2 2019/01/02  
ID3 2019/01/03

Thanks

---

<div class="post-metadata">

### Author: ![ozmhsh](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ozmhsh/32/49129_2.png) [@ozmhsh](https://discuss.elastic.co/u/ozmhsh)
#### Post date: [February 14, 2019, 9:34am UTC](https://discuss.elastic.co/t/logstash-aggregate-filter-plugin/168022/2 "2019-02-14T09:34:40Z")

</div>

Any idea or suggestion?

---

<div class="post-metadata">

### Author: ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)
#### Post date: [February 14, 2019, 2:05pm UTC](https://discuss.elastic.co/t/logstash-aggregate-filter-plugin/168022/3 "2019-02-14T14:05:07Z")

</div>

You could try doing it in ruby

```
    if [message] =~ /^INFO/ {
        grok { match => { "message" => "INFO - %{WORD:id}" } }
    }
    ruby {
        code => '
            id = event.get("id")
            if id
                @id = id
            else
                event.set("id", @id)
            end
        '
    }
    if [message] =~ /[0-9]{4}\/[0-9]{2}\/[0-9]{2}$/ {
        grok { match => { "message" => "(?<date>[0-9]{4}\/[0-9]{2}\/[0-9]{2})$" } }
    } else {
        drop {}
    }
```

---

<div class="post-metadata">

### Author: ![ozmhsh](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ozmhsh/32/49129_2.png) [@ozmhsh](https://discuss.elastic.co/u/ozmhsh)
#### Post date: [February 14, 2019, 11:16pm UTC](https://discuss.elastic.co/t/logstash-aggregate-filter-plugin/168022/4 "2019-02-14T23:16:43Z")

</div>

Thank you so much Badger! It works like a charm!

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [March 14, 2019, 11:16pm UTC](https://discuss.elastic.co/t/logstash-aggregate-filter-plugin/168022/5 "2019-03-14T23:16:45Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
