[one-users] oneacct - "incorrect" figures in output

Carlos Martín Sánchez cmartin at opennebula.org
Wed Jan 16 05:29:34 PST 2013


Hi,

On Tue, Jan 15, 2013 at 5:18 PM, Benadik, Jan <jan.benadik at atos.net> wrote:
>
> *My questions:*
> - how can I limit time frame for oneacct command (i.e. - from 1. 1. 2013
> to 31.1.2013 - only running VM's in that only period)?
> If I use -s and -e option, it displays all machines without any
> limitations ...
>

The -s and -e options will show all the history records that were active
during that time interval, but they may start or end outside that interval.
Maybe you were expecting records that started and ended within the
interval. Can you check if this is the case, or if you found a bug and
there is no filtering at all?


> - how can I display correct figures in minutes for running machines in
> oneacct output?
>

That depends on how you plan to bill, by the month or waiting after the
registry ends.
If you want to get the minutes spent in this month, you need to take into
account that STIME and ETIME can be outside the range, you can compute them
as:

bill_start = [$1, h['STIME'].to_i].max

etime = h['ETIME'].to_i == 0 ? Time.now : h['ETIME'].to_i
bill_end = [$2, etime].min


This is pseudo-ruby, but I hope you get the idea.

Regards
--
Carlos Martín, MSc
Project Engineer
OpenNebula - The Open-source Solution for Data Center Virtualization
www.OpenNebula.org | cmartin at opennebula.org |
@OpenNebula<http://twitter.com/opennebula><cmartin at opennebula.org>


On Tue, Jan 15, 2013 at 5:18 PM, Benadik, Jan <jan.benadik at atos.net> wrote:

>  Hi all,
>
> *I have a script /usr/bin/bill*
> #!/usr/bin/env ruby
>
> require 'json'
>
> j = JSON.parse(`oneacct -j -s $1 -e $2`)
>
> puts "oid,vcpus,memory,minutes_running"
>
> j['HISTORY_RECORDS']['HISTORY'].each do |h|
>     puts "#{h['OID']},"<<
>         "#{h['VM']['TEMPLATE']['VCPU']},"<<
>         "#{h['VM']['TEMPLATE']['MEMORY']},"<<
>         "#{(h['ETIME'].to_i - h['STIME'].to_i)/60}"
> end
>
> Output from that command:
> *oneadmin at myto-node:~$ bill "01/01/2013" "01/31/2013"*
> oid,vcpus,memory,minutes_running
> 0,2,1024,0
> 0,2,1024,0
> 1,2,1024,0
> 1,2,1024,32
> .
> .
> .
> 110,4,8096,29925
> 111,4,8096,84
> 112,4,8096,5939
> 113,4,8096,22
> 114,4,8096,-22637691
>
> First 4 lines were VM's running in october 2012 (for a while), last line
> is still running VM.
>
> *My questions:*
> - how can I limit time frame for oneacct command (i.e. - from 1. 1. 2013
> to 31.1.2013 - only running VM's in that only period)?
> If I use -s and -e option, it displays all machines without any
> limitations ...
> - how can I display correct figures in minutes for running machines in
> oneacct output?
>
> Jan
> --
>
> *Ján Beňadik*
> Managed Services - Solution Design Architect
> mobile: +421 903 691 634
> fax: +421 2 6852 8380
> jan.benadik at atos.net <//jan.benadik at atos.net>
> Vinohradnicka 6, 971 01 Prievidza
> www.sk.atos.net
> __________________________________
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opennebula.org/pipermail/users-opennebula.org/attachments/20130116/f11fdc5c/attachment-0002.htm>


More information about the Users mailing list