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 +4 -4
- data/README.rdoc +5 -1
- data/lib/newrelic_f5_plugin.rb +1 -0
- data/lib/newrelic_f5_plugin/agent.rb +6 -1
- data/lib/newrelic_f5_plugin/device.rb +1 -44
- data/lib/newrelic_f5_plugin/global_ssl.rb +308 -0
- data/newrelic_f5_plugin.gemspec +3 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 648f7f011c587d8cfa13ce4c329804acdbbc6892
|
4
|
+
data.tar.gz: ffceb3d6f017b737c13349c671c044dbb4d79ba4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22d37b9b929e8d6c767e6cbe871d53ec2e536a0bbb2a37586253cc2ee3c98883a33ae0b1f144303b1b937a37bce39b0e6c305a006af47229328fef83c5e80158
|
7
|
+
data.tar.gz: ef2b5a0c86d550a32f5690e9eedcb11fabbe57acfb7b4177b6a51db26e0cb2c78d418d07b46341d597a50ef92e65315814ab197a2a0727406e5f259d4b903608
|
data/README.rdoc
CHANGED
@@ -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
|
|
data/lib/newrelic_f5_plugin.rb
CHANGED
@@ -4,7 +4,7 @@ require 'newrelic_plugin'
|
|
4
4
|
require 'snmp'
|
5
5
|
|
6
6
|
module NewRelic::F5Plugin
|
7
|
-
VERSION = '1.0.
|
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
|
+
|
data/newrelic_f5_plugin.gemspec
CHANGED
@@ -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
|
-
s.date = '2014-10-
|
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.
|
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-
|
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
|