newrelic_f5_plugin 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,6 @@
1
+ * 1.0.4
2
+ - Add Virtual Server CPU usage metric based on the F5's 1 minute CPU ratio
3
+
1
4
  * 1.0.3
2
5
  - Add Pool statistics:
3
6
  - Requests per second
@@ -19,6 +19,7 @@ Virtual Server Statistics
19
19
  * Current Connections
20
20
  * Connections per Second
21
21
  * Inbound and Outbound Throughput
22
+ * CPU Usage Ratio
22
23
 
23
24
  Pool Statistics
24
25
  * Requests per Second
@@ -4,7 +4,7 @@ require 'newrelic_plugin'
4
4
  require 'snmp'
5
5
 
6
6
  module NewRelic::F5Plugin
7
- VERSION = '1.0.3'
7
+ VERSION = '1.0.4'
8
8
 
9
9
  # Register and run the agent
10
10
  def self.run
@@ -87,6 +87,11 @@ module NewRelic::F5Plugin
87
87
  report_counter_metric m, "bits/sec", virtual_throughput_out[m]
88
88
  }
89
89
 
90
+ virtual_cpu_usage_1m = vs.get_cpu_usage_1m
91
+ virtual_cpu_usage_1m.each_key { |m|
92
+ report_metric m, "%", virtual_cpu_usage_1m[m]
93
+ }
94
+
90
95
  #
91
96
  # Collect pool statistics
92
97
  #
@@ -3,6 +3,41 @@
3
3
  require 'newrelic_plugin'
4
4
  require 'snmp'
5
5
 
6
+ #LtmVirtualServStatEntry
7
+ # ltmVirtualServStatName LongDisplayString,
8
+ # ltmVirtualServStatCsMinConnDur Counter64,
9
+ # ltmVirtualServStatCsMaxConnDur Counter64,
10
+ # ltmVirtualServStatCsMeanConnDur Counter64,
11
+ # ltmVirtualServStatNoNodesErrors Counter64,
12
+ # ltmVirtualServStatClientPktsIn Counter64,
13
+ # ltmVirtualServStatClientBytesIn Counter64,
14
+ # ltmVirtualServStatClientPktsOut Counter64,
15
+ # ltmVirtualServStatClientBytesOut Counter64,
16
+ # ltmVirtualServStatClientMaxConns Counter64,
17
+ # ltmVirtualServStatClientTotConns Counter64,
18
+ # ltmVirtualServStatClientCurConns CounterBasedGauge64,
19
+ # ltmVirtualServStatEphemeralPktsIn Counter64,
20
+ # ltmVirtualServStatEphemeralBytesIn Counter64,
21
+ # ltmVirtualServStatEphemeralPktsOut Counter64,
22
+ # ltmVirtualServStatEphemeralBytesOut Counter64,
23
+ # ltmVirtualServStatEphemeralMaxConns Counter64,
24
+ # ltmVirtualServStatEphemeralTotConns Counter64,
25
+ # ltmVirtualServStatEphemeralCurConns CounterBasedGauge64,
26
+ # ltmVirtualServStatPvaPktsIn Counter64,
27
+ # ltmVirtualServStatPvaBytesIn Counter64,
28
+ # ltmVirtualServStatPvaPktsOut Counter64,
29
+ # ltmVirtualServStatPvaBytesOut Counter64,
30
+ # ltmVirtualServStatPvaMaxConns Counter64,
31
+ # ltmVirtualServStatPvaTotConns Counter64,
32
+ # ltmVirtualServStatPvaCurConns CounterBasedGauge64,
33
+ # ltmVirtualServStatTotRequests Counter64,
34
+ # ltmVirtualServStatTotPvaAssistConn Counter64,
35
+ # ltmVirtualServStatCurrPvaAssistConn CounterBasedGauge64,
36
+ # ltmVirtualServStatCycleCount Counter64,
37
+ # ltmVirtualServStatVsUsageRatio5s Gauge,
38
+ # ltmVirtualServStatVsUsageRatio1m Gauge,
39
+ # ltmVirtualServStatVsUsageRatio5m Gauge
40
+
6
41
 
7
42
  module NewRelic
8
43
  module F5Plugin
@@ -12,14 +47,15 @@ module NewRelic
12
47
 
13
48
  OID_LTM_VIRTUAL_SERVERS = "1.3.6.1.4.1.3375.2.2.10"
14
49
 
15
- OID_LTM_VIRTUAL_SERV_STAT = "#{OID_LTM_VIRTUAL_SERVERS}.2"
16
- OID_LTM_VIRTUAL_SERV_ENTRY = "#{OID_LTM_VIRTUAL_SERV_STAT}.3.1"
17
- OID_LTM_VIRTUAL_SERV_STAT_NAME = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.1"
18
- OID_LTM_VIRTUAL_SERV_STAT_CLIENT_BYTES_IN = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.7"
19
- OID_LTM_VIRTUAL_SERV_STAT_CLIENT_BYTES_OUT = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.9"
20
- OID_LTM_VIRTUAL_SERV_STAT_CLIENT_TOT_CONNS = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.11"
21
- OID_LTM_VIRTUAL_SERV_STAT_CLIENT_CUR_CONNS = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.12"
22
- OID_LTM_VIRTUAL_SERV_STAT_TOT_REQUESTS = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.27"
50
+ OID_LTM_VIRTUAL_SERV_STAT = "#{OID_LTM_VIRTUAL_SERVERS}.2"
51
+ OID_LTM_VIRTUAL_SERV_ENTRY = "#{OID_LTM_VIRTUAL_SERV_STAT}.3.1"
52
+ OID_LTM_VIRTUAL_SERV_STAT_NAME = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.1"
53
+ OID_LTM_VIRTUAL_SERV_STAT_CLIENT_BYTES_IN = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.7"
54
+ OID_LTM_VIRTUAL_SERV_STAT_CLIENT_BYTES_OUT = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.9"
55
+ OID_LTM_VIRTUAL_SERV_STAT_CLIENT_TOT_CONNS = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.11"
56
+ OID_LTM_VIRTUAL_SERV_STAT_CLIENT_CUR_CONNS = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.12"
57
+ OID_LTM_VIRTUAL_SERV_STAT_TOT_REQUESTS = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.27"
58
+ OID_LTM_VIRTUAL_SERV_STAT_VS_USAGE_RATIO_1M = "#{OID_LTM_VIRTUAL_SERV_ENTRY}.32"
23
59
 
24
60
 
25
61
 
@@ -179,6 +215,30 @@ module NewRelic
179
215
 
180
216
 
181
217
 
218
+ #
219
+ # Gather VS Connection rate
220
+ #
221
+ def get_cpu_usage_1m(snmp = nil)
222
+ metrics = { }
223
+ index = 0
224
+ snmp = snmp_manager unless snmp
225
+
226
+ if snmp
227
+ get_names(snmp) if @vs_names.empty?
228
+
229
+ snmp.walk([OID_LTM_VIRTUAL_SERV_STAT_VS_USAGE_RATIO_1M]) do |row|
230
+ row.each do |vb|
231
+ metrics["Virtual Servers/CPU Usage/1m/#{@vs_names[index]}"] = vb.value.to_i
232
+ index += 1
233
+ end
234
+ end
235
+
236
+ return metrics
237
+ end
238
+ end
239
+
240
+
241
+
182
242
  end
183
243
  end
184
244
  end
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'newrelic_f5_plugin'
16
- s.version = '1.0.3'
17
- s.date = '2013-09-10'
16
+ s.version = '1.0.4'
17
+ s.date = '2013-09-16'
18
18
  s.rubyforge_project = 'newrelic_f5_plugin'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_f5_plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-10 00:00:00.000000000 Z
12
+ date: 2013-09-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: newrelic_plugin