# Percentage Calculation in Ruby

**URL:** <https://discuss.elastic.co/t/percentage-calculation-in-ruby/168700>\
**Category:** Logstash\
**Created:** [February 16, 2019, 5:11pm UTC](https://discuss.elastic.co/t/percentage-calculation-in-ruby/168700 "2019-02-16T17:11:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ssasporta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ssasporta/32/13695_2.png) [@ssasporta](https://discuss.elastic.co/u/ssasporta)\
**Post date:** [February 16, 2019, 5:11pm UTC](https://discuss.elastic.co/t/percentage-calculation-in-ruby/168700/1 "2019-02-16T17:11:36Z")

</div>

I am doing calculation in Ruby but the fields are empty in Kibana.

**The ruby code:**

```
                  event.set('BusinessTimeUnavailabilityinSeconds', ((event.get('BusinessUnavailabilityHours').to_i * 3600 ) + (event.get('BusinessUnavailabilityMinutes').to_i * 60) + event.get('BusinessUnavailabilitySeconds').to_i))
                  event.set('NonPrimeTimeUnavailabilityinSeconds', (event.get('TotalTimeUnavailabilityinSeconds') - event.get('BusinessTimeUnavailabilityinSeconds')))
                  event.set('BusinessTimeUnavailabilityPercentage' , (event.get('BusinessTimeUnavailabilityinSeconds').to_f).div(197100))
                  event.set('NonPrimeTimeUnavailabilityPercentage' , (event.get('NonPrimeTimeUnavailabilityinSeconds').to_f).div(118260))

```

**After, I am converting:**

```
mutate {
                      convert => { "NonPrimeTimeUnavailabilityinSeconds" => "integer"
                                   "TotalTimeUnavailabilityinSeconds" => "integer"
                                   "BusinessTimeUnavailabilityinSeconds" => "integer"
                                   "BusinessTimeUnavailabilityPercentage" => "float"
                                   "NonPrimeTimeUnavailabilityPercentage" => "float"
                      }                      
              }

```

**The result in Kibana:**

```
|# BusinessTimeUnavailabilityPercentage| |0|
|---|---|---|
|# BusinessTimeUnavailabilityinSeconds| |15,300|

```

As as, I would expect to get : 0.7762

**What am I missing here?**

Regards,  
Sharon.

---

<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 16, 2019, 5:28pm UTC](https://discuss.elastic.co/t/percentage-calculation-in-ruby/168700/2 "2019-02-16T17:28:07Z")

</div>

> [@ssasporta](#):
>
> What am I missing here?

Float does not have a div method, it comes from Numeric, where it is defined as returning an integer. Use

```
100 * event.get('NonPrimeTimeUnavailabilityinSeconds').to_f / 118260

```

---

<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 16, 2019, 5:28pm UTC](https://discuss.elastic.co/t/percentage-calculation-in-ruby/168700/3 "2019-03-16T17:28:10Z")

</div>

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