equal
deleted
inserted
replaced
129 ### |
129 ### |
130 def get_windows( snmp ) |
130 def get_windows( snmp ) |
131 info = { memory: {}, swap: {} } |
131 info = { memory: {}, swap: {} } |
132 mem_idx, swap_idx = nil |
132 mem_idx, swap_idx = nil |
133 |
133 |
134 snmp.walk( MEMORY[:windows][:label] ).each_with_index do |(_, val), i| |
134 snmp.walk( oid: MEMORY[:windows][:label] ).each_with_index do |(_, val), i| |
135 mem_idx = i + 1 if val =~ /physical memory/i |
135 mem_idx = i + 1 if val =~ /physical memory/i |
136 swap_idx = i + 1 if val =~ /virtual memory/i |
136 swap_idx = i + 1 if val =~ /virtual memory/i |
137 end |
137 end |
138 return info unless mem_idx |
138 return info unless mem_idx |
139 |
139 |
146 |
146 |
147 ### Format usage and available amount, given an OID hash. |
147 ### Format usage and available amount, given an OID hash. |
148 ### |
148 ### |
149 def calc_memory( snmp, oids ) |
149 def calc_memory( snmp, oids ) |
150 info = { usage: 0, available: 0 } |
150 info = { usage: 0, available: 0 } |
151 avail = snmp.get( oids[:avail] ).varbinds.first.value.to_f |
151 avail = snmp.get( oid: oids[:avail] ).to_f |
152 total = snmp.get( oids[:total] ).varbinds.first.value.to_f |
152 total = snmp.get( oid: oids[:total] ).to_f |
153 used = total - avail |
153 used = total - avail |
154 |
154 |
155 return info if avail.zero? |
155 return info if avail.zero? |
156 |
156 |
157 info[ :usage ] = (( used / total ) * 100 ).round( 2 ) |
157 info[ :usage ] = (( used / total ) * 100 ).round( 2 ) |
164 ### |
164 ### |
165 def calc_windows_memory( snmp, idx) |
165 def calc_windows_memory( snmp, idx) |
166 info = { usage: 0, available: 0 } |
166 info = { usage: 0, available: 0 } |
167 return info unless idx |
167 return info unless idx |
168 |
168 |
169 units = snmp.get( MEMORY[:windows][:units] + ".#{idx}" ).varbinds.first.value |
169 units = snmp.get( oid: MEMORY[:windows][:units] + ".#{idx}" ) |
170 total = snmp.get( MEMORY[:windows][:total] + ".#{idx}" ).varbinds.first.value.to_f * units |
170 total = snmp.get( oid: MEMORY[:windows][:total] + ".#{idx}" ).to_f * units |
171 used = snmp.get( MEMORY[:windows][:used] + ".#{idx}" ).varbinds.first.value.to_f * units |
171 used = snmp.get( oid: MEMORY[:windows][:used] + ".#{idx}" ).to_f * units |
172 |
172 |
173 info[ :usage ] = (( used / total ) * 100 ).round( 2 ) |
173 info[ :usage ] = (( used / total ) * 100 ).round( 2 ) |
174 info[ :available ] = (( total - used ) / 1024 / 1024 ).round( 2 ) |
174 info[ :available ] = (( total - used ) / 1024 / 1024 ).round( 2 ) |
175 return info |
175 return info |
176 end |
176 end |