newrelic_f5_plugin 1.0.17 → 1.0.18

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 279793e5c1936f90db19c0ffd8842a0f7dc99760
4
- data.tar.gz: ebbbd91dac4e565184e5d45562ff23ad428bdbea
3
+ metadata.gz: 648f7f011c587d8cfa13ce4c329804acdbbc6892
4
+ data.tar.gz: ffceb3d6f017b737c13349c671c044dbb4d79ba4
5
5
  SHA512:
6
- metadata.gz: e3af625664d8d7c549203c1a03cc7ece47178f0900b0085c8df3c6fff98e9d88e982a6029d987c9388d53f3454becc449d918ad18b90e16a945dfeed1f7f5f46
7
- data.tar.gz: 390c1550dce277a0bc2f46458a5fb67215f1c801de7a85a19313a0e727073026ceca796d71e3df4e47955f3c606f597a2b4c045b3074aa32e0d5a329ed065da1
6
+ metadata.gz: 22d37b9b929e8d6c767e6cbe871d53ec2e536a0bbb2a37586253cc2ee3c98883a33ae0b1f144303b1b937a37bce39b0e6c305a006af47229328fef83c5e80158
7
+ data.tar.gz: ef2b5a0c86d550a32f5690e9eedcb11fabbe57acfb7b4177b6a51db26e0cb2c78d418d07b46341d597a50ef92e65315814ab197a2a0727406e5f259d4b903608
@@ -10,7 +10,6 @@ Device wide Metrics
10
10
  * Throughput (Total, Client side, Server side)
11
11
  * HTTP Requests (Requests/second, HTTP Methods, Status Codes, Versions)
12
12
  * HTTP Compression (Pre/Post broken down by content type)
13
- * SSL Requests/second
14
13
  * TCP Details (Current connections, connection rate, Server/Client side, Wait State)
15
14
  * Node status
16
15
 
@@ -41,6 +40,11 @@ iRule Statistics
41
40
  * Aborts per Second
42
41
  * Average cycles (requires timing enabled on the iRule)
43
42
 
43
+ Global SSL Statistics
44
+ * Requests/second
45
+ * Transactions per Protocol
46
+ * Transactions per Digest
47
+ * Transactions per Key Exchanges
44
48
 
45
49
  == Requirements
46
50
 
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'newrelic_f5_plugin/util'
3
3
  require 'newrelic_f5_plugin/client_ssl'
4
+ require 'newrelic_f5_plugin/global_ssl'
4
5
  require 'newrelic_f5_plugin/device'
5
6
  require 'newrelic_f5_plugin/interfaces'
6
7
  require 'newrelic_f5_plugin/nodes'
@@ -4,7 +4,7 @@ require 'newrelic_plugin'
4
4
  require 'snmp'
5
5
 
6
6
  module NewRelic::F5Plugin
7
- VERSION = '1.0.17'
7
+ VERSION = '1.0.18'
8
8
 
9
9
  # Register and run the agent
10
10
  def self.run
@@ -117,6 +117,11 @@ module NewRelic::F5Plugin
117
117
  @clientssl ||= NewRelic::F5Plugin::ClientSsl.new
118
118
  @clientssl.poll(self, snmp)
119
119
 
120
+ # Collect Global SSL statistics
121
+ NewRelic::PlatformLogger.debug("Collecting Global SSL stats")
122
+ @globalssl ||= NewRelic::F5Plugin::GlobalSsl.new
123
+ @globalssl.poll(self, snmp)
124
+
120
125
  # Cleanup snmp connection
121
126
  snmp.close
122
127
  end
@@ -10,9 +10,6 @@ module NewRelic
10
10
  attr_accessor :snmp_manager
11
11
 
12
12
  # Create the OIDs if they do not exist
13
- OID_SYS_CLIENTSSL_STAT_CUR_CONNS = "1.3.6.1.4.1.3375.2.1.1.2.9.2.0"
14
- OID_SYS_CLIENTSSL_STAT_TOT_COMPAT_CONNS = "1.3.6.1.4.1.3375.2.1.1.2.9.9.0"
15
- OID_SYS_CLIENTSSL_STAT_TOT_NATIVE_CONNS = "1.3.6.1.4.1.3375.2.1.1.2.9.6.0"
16
13
  OID_SYS_HTTP_COMPRESSION_STAT = "1.3.6.1.4.1.3375.2.1.1.2.22"
17
14
  OID_SYS_HTTP_COMPRESSION_STAT_AUDIO_POSTCOMPRESS_BYTES = "#{OID_SYS_HTTP_COMPRESSION_STAT}.24.0"
18
15
  OID_SYS_HTTP_COMPRESSION_STAT_AUDIO_PRECOMPRESS_BYTES = "#{OID_SYS_HTTP_COMPRESSION_STAT}.23.0"
@@ -56,9 +53,6 @@ module NewRelic
56
53
  OID_SYS_HTTP_STAT_V11_RESP = "#{OID_SYS_HTTP_STAT}.15.0"
57
54
  OID_SYS_HTTP_STAT_V9_REQS = "#{OID_SYS_HTTP_STAT}.10.0"
58
55
  OID_SYS_HTTP_STAT_V9_RESP = "#{OID_SYS_HTTP_STAT}.13.0"
59
- OID_SYS_SERVERSSL_STAT_CUR_CONNS = "1.3.6.1.4.1.3375.2.1.1.2.10.2.0"
60
- OID_SYS_SERVERSSL_STAT_TOT_COMPAT_CONNS = "1.3.6.1.4.1.3375.2.1.1.2.10.9.0"
61
- OID_SYS_SERVERSSL_STAT_TOT_NATIVE_CONNS = "1.3.6.1.4.1.3375.2.1.1.2.10.6.0"
62
56
  OID_SYS_STAT = "1.3.6.1.4.1.3375.2.1.1.2.1"
63
57
  OID_SYS_STAT_CLIENT_BYTES_IN = "#{OID_SYS_STAT}.3.0"
64
58
  OID_SYS_STAT_CLIENT_BYTES_OUT = "#{OID_SYS_STAT}.5.0"
@@ -132,9 +126,6 @@ module NewRelic
132
126
  system_http_compression = get_http_compression
133
127
  system_http_compression.each_key { |m| agent.report_counter_metric m, "bits/sec", system_http_compression[m] } unless system_http_compression.nil?
134
128
 
135
- system_ssl = get_ssl
136
- system_ssl.each_key { |m| agent.report_counter_metric m, "trans/sec", system_ssl[m] } unless system_ssl.nil?
137
-
138
129
  system_tcp_conns = get_tcp_connections
139
130
  system_tcp_conns.each_key { |m| agent.report_metric m, "conn", system_tcp_conns[m] } unless system_tcp_conns.nil?
140
131
 
@@ -181,17 +172,13 @@ module NewRelic
181
172
  snmp = snmp_manager unless snmp
182
173
 
183
174
  if snmp
184
- res = gather_snmp_metrics_array([OID_SYS_STAT_CLIENT_CUR_CONNS, OID_SYS_STAT_SERVER_CUR_CONNS,
185
- OID_SYS_CLIENTSSL_STAT_CUR_CONNS, OID_SYS_SERVERSSL_STAT_CUR_CONNS],
186
- snmp)
175
+ res = gather_snmp_metrics_array([OID_SYS_STAT_CLIENT_CUR_CONNS, OID_SYS_STAT_SERVER_CUR_CONNS], snmp)
187
176
 
188
177
  # Bail out if we didn't get anything
189
178
  return metrics if res.empty?
190
179
 
191
180
  metrics["Connections/Current/Client"] = res[0]
192
181
  metrics["Connections/Current/Server"] = res[1]
193
- metrics["Connections/Current/Client SSL"] = res[2]
194
- metrics["Connections/Current/Server SSL"] = res[3]
195
182
  end
196
183
 
197
184
  return metrics
@@ -366,36 +353,6 @@ module NewRelic
366
353
 
367
354
 
368
355
 
369
- #
370
- # SSL Stats in trans/sec
371
- #
372
- def get_ssl(snmp = nil)
373
- metrics = { }
374
- snmp = snmp_manager unless snmp
375
-
376
- if snmp
377
- res = gather_snmp_metrics_array([OID_SYS_CLIENTSSL_STAT_TOT_NATIVE_CONNS, OID_SYS_CLIENTSSL_STAT_TOT_COMPAT_CONNS,
378
- OID_SYS_SERVERSSL_STAT_TOT_NATIVE_CONNS, OID_SYS_SERVERSSL_STAT_TOT_COMPAT_CONNS],
379
- snmp)
380
-
381
- # Bail out if we didn't get anything
382
- return metrics if res.empty?
383
-
384
- vals = res.map { |i| i.to_i }
385
-
386
- metrics["SSL/Global/Client/Native"] = vals[0]
387
- metrics["SSL/Global/Client/Compat"] = vals[1]
388
- metrics["SSL/Global/Server/Native"] = vals[2]
389
- metrics["SSL/Global/Server/Compat"] = vals[3]
390
- metrics["SSL/Global/Total/Client"] = (vals[0] + vals[1])
391
- metrics["SSL/Global/Total/Server"] = (vals[2] + vals[3])
392
- metrics["SSL/Global/Total/All"] = vals.inject(0) { |t,i| t + i }
393
- end
394
-
395
- return metrics
396
- end
397
-
398
-
399
356
  #
400
357
  # Gather TCP Statistics in conn
401
358
  #
@@ -0,0 +1,308 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'newrelic_plugin'
4
+ require 'snmp'
5
+
6
+ module NewRelic
7
+ module F5Plugin
8
+
9
+ class GlobalSsl
10
+ attr_accessor :snmp_manager
11
+
12
+ # Create the OIDs if they do not exist
13
+ OID_SYS_GLOBAL_STATS = "1.3.6.1.4.1.3375.2.1.1.2"
14
+ OID_SYS_GLOBAL_CLIENT_SSL_STAT = "#{OID_SYS_GLOBAL_STATS}.9"
15
+ OID_SYS_GLOBAL_SERVER_SSL_STAT = "#{OID_SYS_GLOBAL_STATS}.10"
16
+
17
+ # Client-side Connections
18
+ OID_SYS_CLIENTSSL_STAT_CUR_CONNS = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.2.0"
19
+ OID_SYS_CLIENTSSL_STAT_TOT_COMPAT_CONNS = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.9.0"
20
+ OID_SYS_CLIENTSSL_STAT_TOT_NATIVE_CONNS = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.6.0"
21
+ # Server-side Connections
22
+ OID_SYS_SERVERSSL_STAT_CUR_CONNS = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.2.0"
23
+ OID_SYS_SERVERSSL_STAT_TOT_COMPAT_CONNS = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.9.0"
24
+ OID_SYS_SERVERSSL_STAT_TOT_NATIVE_CONNS = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.6.0"
25
+
26
+ # Client-side Protocols
27
+ OID_SYS_CLIENTSSL_STAT_SSLV2 = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.32.0"
28
+ OID_SYS_CLIENTSSL_STAT_SSLV3 = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.33.0"
29
+ OID_SYS_CLIENTSSL_STAT_TLSV1 = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.34.0"
30
+ # Server-side Protocols
31
+ OID_SYS_SERVERSSL_STAT_SSLV2 = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.32.0"
32
+ OID_SYS_SERVERSSL_STAT_SSLV3 = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.33.0"
33
+ OID_SYS_SERVERSSL_STAT_TLSV1 = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.34.0"
34
+
35
+ # Client-side Key Exchanges
36
+ OID_SYS_CLIENTSSL_STAT_ADH_KEYXCHG = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.35.0"
37
+ OID_SYS_CLIENTSSL_STAT_DHRSA_KEYXCHG = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.37.0"
38
+ OID_SYS_CLIENTSSL_STAT_RSA_KEYXCHG = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.40.0"
39
+ OID_SYS_CLIENTSSL_STAT_EDHRSA_KEYXCHG = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.51.0"
40
+ # Server-side Key Exchanges
41
+ OID_SYS_SERVERSSL_STAT_ADH_KEYXCHG = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.35.0"
42
+ OID_SYS_SERVERSSL_STAT_DHRSA_KEYXCHG = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.37.0"
43
+ OID_SYS_SERVERSSL_STAT_RSA_KEYXCHG = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.40.0"
44
+ OID_SYS_SERVERSSL_STAT_EDHRSA_KEYXCHG = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.51.0"
45
+
46
+ # Client-side Bulk
47
+ OID_SYS_CLIENTSSL_STAT_NULL_BULK = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.41.0"
48
+ OID_SYS_CLIENTSSL_STAT_AES_BULK = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.42.0"
49
+ OID_SYS_CLIENTSSL_STAT_DES_BULK = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.43.0"
50
+ OID_SYS_CLIENTSSL_STAT_IDEA_BULK = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.44.0"
51
+ OID_SYS_CLIENTSSL_STAT_RC2_BULK = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.45.0"
52
+ OID_SYS_CLIENTSSL_STAT_RC4_BULK = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.46.0"
53
+ # Server-side Bulk
54
+ OID_SYS_SERVERSSL_STAT_NULL_BULK = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.41.0"
55
+ OID_SYS_SERVERSSL_STAT_AES_BULK = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.42.0"
56
+ OID_SYS_SERVERSSL_STAT_DES_BULK = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.43.0"
57
+ OID_SYS_SERVERSSL_STAT_IDEA_BULK = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.44.0"
58
+ OID_SYS_SERVERSSL_STAT_RC2_BULK = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.45.0"
59
+ OID_SYS_SERVERSSL_STAT_RC4_BULK = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.46.0"
60
+
61
+ # Client-side Digests
62
+ OID_SYS_CLIENTSSL_STAT_NULL_DIGEST = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.47.0"
63
+ OID_SYS_CLIENTSSL_STAT_MD5_DIGEST = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.48.0"
64
+ OID_SYS_CLIENTSSL_STAT_SHA_DIGEST = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.49.0"
65
+ OID_SYS_CLIENTSSL_STAT_NOTSSL = "#{OID_SYS_GLOBAL_CLIENT_SSL_STAT}.50.0"
66
+ # Server-side Digests
67
+ OID_SYS_SERVERSSL_STAT_NULL_DIGEST = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.47.0"
68
+ OID_SYS_SERVERSSL_STAT_MD5_DIGEST = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.48.0"
69
+ OID_SYS_SERVERSSL_STAT_SHA_DIGEST = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.49.0"
70
+ OID_SYS_SERVERSSL_STAT_NOTSSL = "#{OID_SYS_GLOBAL_SERVER_SSL_STAT}.50.0"
71
+
72
+
73
+
74
+ #
75
+ # Init
76
+ #
77
+ def initialize(snmp = nil)
78
+ if snmp
79
+ @snmp_manager = snmp
80
+ else
81
+ @snmp_manager = nil
82
+ end
83
+ end
84
+
85
+
86
+
87
+ #
88
+ # Perform polling and reportings of metrics
89
+ #
90
+ def poll(agent, snmp)
91
+ @snmp_manager = snmp
92
+
93
+ ssl_total_connections = get_connections
94
+ ssl_total_connections.each_key { |m| agent.report_metric m, "conn", ssl_total_connections[m] } unless ssl_total_connections.nil?
95
+
96
+ ssl_conns = get_ssl_conns
97
+ ssl_conns.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_conns[m] } unless ssl_conns.nil?
98
+
99
+ ssl_conns = get_ssl_conns
100
+ ssl_conns.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_conns[m] } unless ssl_conns.nil?
101
+
102
+ ssl_protocols = get_ssl_protocols
103
+ ssl_protocols.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_protocols[m] } unless ssl_protocols.nil?
104
+
105
+ ssl_key_exchanges = get_ssl_key_exchanges
106
+ ssl_key_exchanges.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_key_exchanges[m] } unless ssl_key_exchanges.nil?
107
+
108
+ ssl_bulk = get_ssl_bulk
109
+ ssl_bulk.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_bulk[m] } unless ssl_bulk.nil?
110
+
111
+ ssl_digests = get_ssl_digests
112
+ ssl_digests.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_digests[m] } unless ssl_digests.nil?
113
+ end
114
+
115
+
116
+
117
+ #
118
+ # Gather Global connection related metrics and report them in conn
119
+ #
120
+ def get_connections(snmp = nil)
121
+ metrics = { }
122
+ snmp = snmp_manager unless snmp
123
+
124
+ if snmp
125
+ res = gather_snmp_metrics_array([ OID_SYS_CLIENTSSL_STAT_CUR_CONNS, OID_SYS_SERVERSSL_STAT_CUR_CONNS], snmp)
126
+
127
+ # Bail out if we didn't get anything
128
+ return metrics if res.empty?
129
+
130
+ metrics["Connections/Current/Client SSL"] = res[0]
131
+ metrics["Connections/Current/Server SSL"] = res[1]
132
+ end
133
+
134
+ return metrics
135
+ end
136
+
137
+
138
+
139
+ #
140
+ # Global SSL Connection Stats in trans/sec
141
+ #
142
+ def get_ssl_conns(snmp = nil)
143
+ metrics = { }
144
+ snmp = snmp_manager unless snmp
145
+
146
+ if snmp
147
+ res = gather_snmp_metrics_array([OID_SYS_CLIENTSSL_STAT_TOT_NATIVE_CONNS, OID_SYS_CLIENTSSL_STAT_TOT_COMPAT_CONNS,
148
+ OID_SYS_SERVERSSL_STAT_TOT_NATIVE_CONNS, OID_SYS_SERVERSSL_STAT_TOT_COMPAT_CONNS],
149
+ snmp)
150
+
151
+ # Bail out if we didn't get anything
152
+ return metrics if res.empty?
153
+
154
+ vals = res.map { |i| i.to_i }
155
+
156
+ metrics["SSL/Global/Client/Native"] = vals[0]
157
+ metrics["SSL/Global/Client/Compat"] = vals[1]
158
+ metrics["SSL/Global/Server/Native"] = vals[2]
159
+ metrics["SSL/Global/Server/Compat"] = vals[3]
160
+ metrics["SSL/Global/Total/Client"] = (vals[0] + vals[1])
161
+ metrics["SSL/Global/Total/Server"] = (vals[2] + vals[3])
162
+ metrics["SSL/Global/Total/All"] = vals.inject(0) { |t,i| t + i }
163
+ end
164
+
165
+ return metrics
166
+ end
167
+
168
+
169
+
170
+ #
171
+ # Global SSL Protocol Stats in trans/sec
172
+ #
173
+ def get_ssl_protocols(snmp = nil)
174
+ metrics = { }
175
+ snmp = snmp_manager unless snmp
176
+
177
+ if snmp
178
+
179
+ res = gather_snmp_metrics_array([OID_SYS_CLIENTSSL_STAT_SSLV2, OID_SYS_CLIENTSSL_STAT_SSLV3, OID_SYS_CLIENTSSL_STAT_TLSV1,
180
+ OID_SYS_SERVERSSL_STAT_SSLV2, OID_SYS_SERVERSSL_STAT_SSLV3, OID_SYS_SERVERSSL_STAT_TLSV1],
181
+ snmp)
182
+
183
+ # Bail out if we didn't get anything
184
+ return metrics if res.empty?
185
+
186
+ vals = res.map { |i| i.to_i }
187
+
188
+ metrics["SSL/Global/Protocol/Client/SSLv2"] = vals[0]
189
+ metrics["SSL/Global/Protocol/Client/SSLv3"] = vals[1]
190
+ metrics["SSL/Global/Protocol/Client/TLSv1"] = vals[2]
191
+ metrics["SSL/Global/Protocol/Server/SSLv2"] = vals[3]
192
+ metrics["SSL/Global/Protocol/Server/SSLv3"] = vals[4]
193
+ metrics["SSL/Global/Protocol/Server/TLSv1"] = vals[5]
194
+ end
195
+
196
+ return metrics
197
+ end
198
+
199
+
200
+
201
+ #
202
+ # Global SSL Key Exchanges Stats in trans/sec
203
+ #
204
+ def get_ssl_key_exchanges(snmp = nil)
205
+ metrics = { }
206
+ snmp = snmp_manager unless snmp
207
+
208
+ if snmp
209
+
210
+ res = gather_snmp_metrics_array([OID_SYS_CLIENTSSL_STAT_ADH_KEYXCHG, OID_SYS_CLIENTSSL_STAT_DHRSA_KEYXCHG, OID_SYS_CLIENTSSL_STAT_RSA_KEYXCHG, OID_SYS_CLIENTSSL_STAT_EDHRSA_KEYXCHG,
211
+ OID_SYS_SERVERSSL_STAT_ADH_KEYXCHG, OID_SYS_SERVERSSL_STAT_DHRSA_KEYXCHG, OID_SYS_SERVERSSL_STAT_RSA_KEYXCHG, OID_SYS_SERVERSSL_STAT_EDHRSA_KEYXCHG],
212
+ snmp)
213
+
214
+ # Bail out if we didn't get anything
215
+ return metrics if res.empty?
216
+
217
+ vals = res.map { |i| i.to_i }
218
+
219
+ metrics["SSL/Global/KeyExchange/Client/Adh"] = vals[0]
220
+ metrics["SSL/Global/KeyExchange/Client/DhRSA"] = vals[1]
221
+ metrics["SSL/Global/KeyExchange/Client/RSA"] = vals[2]
222
+ metrics["SSL/Global/KeyExchange/Client/EdhRsa"] = vals[3]
223
+ metrics["SSL/Global/KeyExchange/Server/Adh"] = vals[4]
224
+ metrics["SSL/Global/KeyExchange/Server/DhRSA"] = vals[5]
225
+ metrics["SSL/Global/KeyExchange/Server/RSA"] = vals[6]
226
+ metrics["SSL/Global/KeyExchange/Server/EdhRsa"] = vals[7]
227
+ end
228
+
229
+ return metrics
230
+ end
231
+
232
+
233
+
234
+ #
235
+ # Global SSL Bulk Stats in trans/sec
236
+ #
237
+ def get_ssl_bulk(snmp = nil)
238
+ metrics = { }
239
+ snmp = snmp_manager unless snmp
240
+
241
+ if snmp
242
+
243
+ res = gather_snmp_metrics_array([OID_SYS_CLIENTSSL_STAT_NULL_BULK, OID_SYS_CLIENTSSL_STAT_AES_BULK, OID_SYS_CLIENTSSL_STAT_DES_BULK, OID_SYS_CLIENTSSL_STAT_IDEA_BULK,
244
+ OID_SYS_CLIENTSSL_STAT_RC2_BULK, OID_SYS_CLIENTSSL_STAT_RC4_BULK, OID_SYS_SERVERSSL_STAT_NULL_BULK, OID_SYS_SERVERSSL_STAT_AES_BULK,
245
+ OID_SYS_SERVERSSL_STAT_DES_BULK, OID_SYS_SERVERSSL_STAT_IDEA_BULK, OID_SYS_SERVERSSL_STAT_RC2_BULK, OID_SYS_SERVERSSL_STAT_RC4_BULK],
246
+ snmp)
247
+
248
+ # Bail out if we didn't get anything
249
+ return metrics if res.empty?
250
+
251
+ vals = res.map { |i| i.to_i }
252
+
253
+ metrics["SSL/Global/Bulk/Client/Null"] = vals[0]
254
+ metrics["SSL/Global/Bulk/Client/AES"] = vals[1]
255
+ metrics["SSL/Global/Bulk/Client/DES"] = vals[2]
256
+ metrics["SSL/Global/Bulk/Client/IDEA"] = vals[3]
257
+ metrics["SSL/Global/Bulk/Client/RC2"] = vals[4]
258
+ metrics["SSL/Global/Bulk/Client/RC4"] = vals[5]
259
+
260
+ metrics["SSL/Global/Bulk/Server/Null"] = vals[6]
261
+ metrics["SSL/Global/Bulk/Server/AES"] = vals[7]
262
+ metrics["SSL/Global/Bulk/Server/DES"] = vals[8]
263
+ metrics["SSL/Global/Bulk/Server/IDEA"] = vals[9]
264
+ metrics["SSL/Global/Bulk/Server/RC2"] = vals[10]
265
+ metrics["SSL/Global/Bulk/Server/RC4"] = vals[11]
266
+ end
267
+
268
+ return metrics
269
+ end
270
+
271
+
272
+
273
+ #
274
+ # Global SSL Digest Stats in trans/sec
275
+ #
276
+ def get_ssl_digests(snmp = nil)
277
+ metrics = { }
278
+ snmp = snmp_manager unless snmp
279
+
280
+ if snmp
281
+
282
+ res = gather_snmp_metrics_array([OID_SYS_CLIENTSSL_STAT_NULL_DIGEST, OID_SYS_CLIENTSSL_STAT_MD5_DIGEST, OID_SYS_CLIENTSSL_STAT_SHA_DIGEST, OID_SYS_CLIENTSSL_STAT_NOTSSL,
283
+ OID_SYS_SERVERSSL_STAT_NULL_DIGEST, OID_SYS_SERVERSSL_STAT_MD5_DIGEST, OID_SYS_SERVERSSL_STAT_SHA_DIGEST, OID_SYS_SERVERSSL_STAT_NOTSSL],
284
+ snmp)
285
+
286
+ # Bail out if we didn't get anything
287
+ return metrics if res.empty?
288
+
289
+ vals = res.map { |i| i.to_i }
290
+
291
+ metrics["SSL/Global/Digest/Client/Null"] = vals[0]
292
+ metrics["SSL/Global/Digest/Client/MD5"] = vals[1]
293
+ metrics["SSL/Global/Digest/Client/SHA"] = vals[2]
294
+ metrics["SSL/Global/Digest/Client/NotSSL"] = vals[3]
295
+ metrics["SSL/Global/Digest/Server/Null"] = vals[4]
296
+ metrics["SSL/Global/Digest/Server/MD5"] = vals[5]
297
+ metrics["SSL/Global/Digest/Server/SHA"] = vals[6]
298
+ metrics["SSL/Global/Digest/Server/NotSSL"] = vals[7]
299
+ end
300
+
301
+ return metrics
302
+ end
303
+
304
+
305
+ end
306
+ end
307
+ end
308
+
@@ -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.17'
17
- s.date = '2014-10-08'
16
+ s.version = '1.0.18'
17
+ s.date = '2014-10-14'
18
18
  s.rubyforge_project = 'newrelic_f5_plugin'
19
19
  s.licenses = ['MIT']
20
20
 
@@ -78,6 +78,7 @@ to find out how to install and run the plugin agent.
78
78
  lib/newrelic_f5_plugin/agent.rb
79
79
  lib/newrelic_f5_plugin/client_ssl.rb
80
80
  lib/newrelic_f5_plugin/device.rb
81
+ lib/newrelic_f5_plugin/global_ssl.rb
81
82
  lib/newrelic_f5_plugin/interfaces.rb
82
83
  lib/newrelic_f5_plugin/nodes.rb
83
84
  lib/newrelic_f5_plugin/platform.rb
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_f5_plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.17
4
+ version: 1.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Thurman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-08 00:00:00.000000000 Z
11
+ date: 2014-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: newrelic_plugin
@@ -73,6 +73,7 @@ files:
73
73
  - lib/newrelic_f5_plugin/agent.rb
74
74
  - lib/newrelic_f5_plugin/client_ssl.rb
75
75
  - lib/newrelic_f5_plugin/device.rb
76
+ - lib/newrelic_f5_plugin/global_ssl.rb
76
77
  - lib/newrelic_f5_plugin/interfaces.rb
77
78
  - lib/newrelic_f5_plugin/nodes.rb
78
79
  - lib/newrelic_f5_plugin/platform.rb