newrelic_f5_plugin 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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