# Фильтр Ruby

**URL:** <https://discuss.elastic.co/t/ruby/170138>\
**Category:** Вопросы на русском языке\
**Created:** [February 27, 2019, 10:16am UTC](https://discuss.elastic.co/t/ruby/170138 "2019-02-27T10:16:47Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lebedev](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lebedev/32/53579_2.png) [@Lebedev](https://discuss.elastic.co/u/Lebedev)\
**Post date:** [February 27, 2019, 10:16am UTC](https://discuss.elastic.co/t/ruby/170138/1 "2019-02-27T10:16:47Z")

</div>

Коллеги, помогите, пожалуйста, решить проблему:  
Суть:

Произвожу суммирование двух позиций и создаю новый field с результатом:  
if "oracle\_dwh" in [tags] {  
ruby {  
code =\> ' event.set("[Sum\_operations]" , [event.get("[failure]") + event.get("[success]")]) '  
}

Следующим действием хочу посчитать соотношение плохих операций к хорошим

ruby {  
code =\> ' event.set("[Percent\_test]" , [event.get("[failure]") / event.get("[SUM\_operations]") \* 100].round(2)) '  
#}  
}

Но получаю ошибку по этому фильтру:

[2019-02-27T13:05:00,257][WARN][logstash.inputs.jdbc] Exception when executing JDBC query {:exception=\>#\<Sequel::DatabaseError: Java::OrgLogstash::MissingConverterException: Missing Converter handling for full class name=org.postgresql.util.PGobject, simple name=PGobject\>}

Я так понимаю, ошибка в типе данных. Как решить проблему на уровне Logstash ?

---

<div class="post-metadata">

**Author:** ![tito32](https://avatars.discourse-cdn.com/v4/letter/t/d26b3c/32.png) [@tito32](https://discuss.elastic.co/u/tito32)\
**Post date:** [February 27, 2019, 11:14am UTC](https://discuss.elastic.co/t/ruby/170138/2 "2019-02-27T11:14:53Z")

</div>

Возможно стоит попробовать прямое преобразование типов в самом ruby

---

<div class="post-metadata">

**Author:** ![Lebedev](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lebedev/32/53579_2.png) [@Lebedev](https://discuss.elastic.co/u/Lebedev)\
**Post date:** [February 27, 2019, 11:49am UTC](https://discuss.elastic.co/t/ruby/170138/3 "2019-02-27T11:49:25Z")

</div>

Максим, есть возможность подсказать как это сделать в рамках этого кейса?

---

<div class="post-metadata">

**Author:** ![tito32](https://avatars.discourse-cdn.com/v4/letter/t/d26b3c/32.png) [@tito32](https://discuss.elastic.co/u/tito32)\
**Post date:** [February 27, 2019, 12:16pm UTC](https://discuss.elastic.co/t/ruby/170138/4 "2019-02-27T12:16:18Z")

</div>

Например явно преобразовать одно или оба значения во float  
[event.get("[failure]").to\_f / event.get("[SUM\_operations]") \* 100].round(2)

---

<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 27, 2019, 12:16pm UTC](https://discuss.elastic.co/t/ruby/170138/5 "2019-03-27T12:16:18Z")

</div>

Closed on March 27, 2019, 12:16pm UTC

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