class NewRelic::F5Plugin::GlobalSsl
Constants
- OID_SYS_CLIENTSSL_STAT_ADH_KEYXCHG
Client-side Key Exchanges
- OID_SYS_CLIENTSSL_STAT_AESGCM_BULK
- OID_SYS_CLIENTSSL_STAT_AES_BULK
- OID_SYS_CLIENTSSL_STAT_CUR_CONNS
Client-side Connections
- OID_SYS_CLIENTSSL_STAT_DES_BULK
- OID_SYS_CLIENTSSL_STAT_DHRSA_KEYXCHG
- OID_SYS_CLIENTSSL_STAT_DTLSV1
- OID_SYS_CLIENTSSL_STAT_ECDHERSA_KEYXCHG
- OID_SYS_CLIENTSSL_STAT_EDHRSA_KEYXCHG
- OID_SYS_CLIENTSSL_STAT_IDEA_BULK
- OID_SYS_CLIENTSSL_STAT_MD5_DIGEST
- OID_SYS_CLIENTSSL_STAT_NOTSSL
- OID_SYS_CLIENTSSL_STAT_NULL_BULK
Client-side Bulk
- OID_SYS_CLIENTSSL_STAT_NULL_DIGEST
Client-side Digests
- OID_SYS_CLIENTSSL_STAT_RC2_BULK
- OID_SYS_CLIENTSSL_STAT_RC4_BULK
- OID_SYS_CLIENTSSL_STAT_RSA_KEYXCHG
- OID_SYS_CLIENTSSL_STAT_SHA_DIGEST
- OID_SYS_CLIENTSSL_STAT_SSLV2
Client-side Protocols
- OID_SYS_CLIENTSSL_STAT_SSLV3
- OID_SYS_CLIENTSSL_STAT_TLSV1
- OID_SYS_CLIENTSSL_STAT_TLSV11
Client-side TLS
- OID_SYS_CLIENTSSL_STAT_TLSV12
- OID_SYS_CLIENTSSL_STAT_TOT_COMPAT_CONNS
- OID_SYS_CLIENTSSL_STAT_TOT_NATIVE_CONNS
- OID_SYS_GLOBAL_CLIENT_SSL_STAT
- OID_SYS_GLOBAL_SERVER_SSL_STAT
- OID_SYS_GLOBAL_STATS
Create the OIDs if they do not exist
- OID_SYS_SERVERSSL_STAT_ADH_KEYXCHG
Server-side Key Exchanges
- OID_SYS_SERVERSSL_STAT_AESGCM_BULK
- OID_SYS_SERVERSSL_STAT_AES_BULK
- OID_SYS_SERVERSSL_STAT_CUR_CONNS
Server-side Connections
- OID_SYS_SERVERSSL_STAT_DES_BULK
- OID_SYS_SERVERSSL_STAT_DHRSA_KEYXCHG
- OID_SYS_SERVERSSL_STAT_DTLSV1
- OID_SYS_SERVERSSL_STAT_ECDHERSA_KEYXCHG
- OID_SYS_SERVERSSL_STAT_EDHRSA_KEYXCHG
- OID_SYS_SERVERSSL_STAT_IDEA_BULK
- OID_SYS_SERVERSSL_STAT_MD5_DIGEST
- OID_SYS_SERVERSSL_STAT_NOTSSL
- OID_SYS_SERVERSSL_STAT_NULL_BULK
Server-side Bulk
- OID_SYS_SERVERSSL_STAT_NULL_DIGEST
Server-side Digests
- OID_SYS_SERVERSSL_STAT_RC2_BULK
- OID_SYS_SERVERSSL_STAT_RC4_BULK
- OID_SYS_SERVERSSL_STAT_RSA_KEYXCHG
- OID_SYS_SERVERSSL_STAT_SHA_DIGEST
- OID_SYS_SERVERSSL_STAT_SSLV2
Server-side Protocols
- OID_SYS_SERVERSSL_STAT_SSLV3
- OID_SYS_SERVERSSL_STAT_TLSV1
- OID_SYS_SERVERSSL_STAT_TLSV11
Server-side TLS
- OID_SYS_SERVERSSL_STAT_TLSV12
- OID_SYS_SERVERSSL_STAT_TOT_COMPAT_CONNS
- OID_SYS_SERVERSSL_STAT_TOT_NATIVE_CONNS
Attributes
snmp_manager[RW]
Public Class Methods
new(snmp = nil)
click to toggle source
Init
# File lib/newrelic_f5_plugin/global_ssl.rb, line 90 def initialize(snmp = nil) if snmp @snmp_manager = snmp else @snmp_manager = nil end end
Public Instance Methods
get_connections(snmp = nil)
click to toggle source
Gather Global connection related metrics and report them in conn
# File lib/newrelic_f5_plugin/global_ssl.rb, line 133 def get_connections(snmp = nil) metrics = { } snmp = snmp_manager unless snmp if snmp res = gather_snmp_metrics_array([ OID_SYS_CLIENTSSL_STAT_CUR_CONNS, OID_SYS_SERVERSSL_STAT_CUR_CONNS], snmp) # Bail out if we didn't get anything return metrics if res.empty? metrics["Connections/Current/Client SSL"] = res[0] metrics["Connections/Current/Server SSL"] = res[1] end return metrics end
get_ssl_bulk(snmp = nil)
click to toggle source
Global SSL Bulk Stats in trans/sec
# File lib/newrelic_f5_plugin/global_ssl.rb, line 258 def get_ssl_bulk(snmp = nil) metrics = { } snmp = snmp_manager unless snmp if snmp 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, OID_SYS_CLIENTSSL_STAT_RC2_BULK, OID_SYS_CLIENTSSL_STAT_RC4_BULK, OID_SYS_CLIENTSSL_STAT_AESGCM_BULK, OID_SYS_SERVERSSL_STAT_NULL_BULK, OID_SYS_SERVERSSL_STAT_AES_BULK, OID_SYS_SERVERSSL_STAT_DES_BULK, OID_SYS_SERVERSSL_STAT_IDEA_BULK, OID_SYS_SERVERSSL_STAT_RC2_BULK, OID_SYS_SERVERSSL_STAT_RC4_BULK, OID_SYS_SERVERSSL_STAT_AESGCM_BULK], snmp) # Bail out if we didn't get anything return metrics if res.empty? vals = res.map { |i| i.to_i } metrics["SSL/Global/Bulk/Client/Null"] = vals[0] metrics["SSL/Global/Bulk/Client/AES"] = vals[1] metrics["SSL/Global/Bulk/Client/DES"] = vals[2] metrics["SSL/Global/Bulk/Client/IDEA"] = vals[3] metrics["SSL/Global/Bulk/Client/RC2"] = vals[4] metrics["SSL/Global/Bulk/Client/RC4"] = vals[5] metrics["SSL/Global/Bulk/Client/AESGCM"] = vals[6] metrics["SSL/Global/Bulk/Server/Null"] = vals[7] metrics["SSL/Global/Bulk/Server/AES"] = vals[8] metrics["SSL/Global/Bulk/Server/DES"] = vals[9] metrics["SSL/Global/Bulk/Server/IDEA"] = vals[10] metrics["SSL/Global/Bulk/Server/RC2"] = vals[11] metrics["SSL/Global/Bulk/Server/RC4"] = vals[12] metrics["SSL/Global/Bulk/Server/AESGCM"] = vals[13] end return metrics end
get_ssl_conns(snmp = nil)
click to toggle source
Global SSL Connection Stats in trans/sec
# File lib/newrelic_f5_plugin/global_ssl.rb, line 155 def get_ssl_conns(snmp = nil) metrics = { } snmp = snmp_manager unless snmp if snmp res = gather_snmp_metrics_array([OID_SYS_CLIENTSSL_STAT_TOT_NATIVE_CONNS, OID_SYS_CLIENTSSL_STAT_TOT_COMPAT_CONNS, OID_SYS_SERVERSSL_STAT_TOT_NATIVE_CONNS, OID_SYS_SERVERSSL_STAT_TOT_COMPAT_CONNS], snmp) # Bail out if we didn't get anything return metrics if res.empty? vals = res.map { |i| i.to_i } metrics["SSL/Global/Client/Native"] = vals[0] metrics["SSL/Global/Client/Compat"] = vals[1] metrics["SSL/Global/Server/Native"] = vals[2] metrics["SSL/Global/Server/Compat"] = vals[3] metrics["SSL/Global/Total/Client"] = (vals[0] + vals[1]) metrics["SSL/Global/Total/Server"] = (vals[2] + vals[3]) metrics["SSL/Global/Total/All"] = vals.inject(0) { |t,i| t + i } end return metrics end
get_ssl_digests(snmp = nil)
click to toggle source
Global SSL Digest Stats in trans/sec
# File lib/newrelic_f5_plugin/global_ssl.rb, line 300 def get_ssl_digests(snmp = nil) metrics = { } snmp = snmp_manager unless snmp if snmp 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, OID_SYS_SERVERSSL_STAT_NULL_DIGEST, OID_SYS_SERVERSSL_STAT_MD5_DIGEST, OID_SYS_SERVERSSL_STAT_SHA_DIGEST, OID_SYS_SERVERSSL_STAT_NOTSSL], snmp) # Bail out if we didn't get anything return metrics if res.empty? vals = res.map { |i| i.to_i } metrics["SSL/Global/Digest/Client/Null"] = vals[0] metrics["SSL/Global/Digest/Client/MD5"] = vals[1] metrics["SSL/Global/Digest/Client/SHA"] = vals[2] metrics["SSL/Global/Digest/Client/NotSSL"] = vals[3] metrics["SSL/Global/Digest/Server/Null"] = vals[4] metrics["SSL/Global/Digest/Server/MD5"] = vals[5] metrics["SSL/Global/Digest/Server/SHA"] = vals[6] metrics["SSL/Global/Digest/Server/NotSSL"] = vals[7] end return metrics end
get_ssl_key_exchanges(snmp = nil)
click to toggle source
Global SSL Key Exchanges Stats in trans/sec
# File lib/newrelic_f5_plugin/global_ssl.rb, line 223 def get_ssl_key_exchanges(snmp = nil) metrics = { } snmp = snmp_manager unless snmp if snmp 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, OID_SYS_CLIENTSSL_STAT_ECDHERSA_KEYXCHG, OID_SYS_SERVERSSL_STAT_ADH_KEYXCHG, OID_SYS_SERVERSSL_STAT_DHRSA_KEYXCHG, OID_SYS_SERVERSSL_STAT_RSA_KEYXCHG, OID_SYS_SERVERSSL_STAT_EDHRSA_KEYXCHG, OID_SYS_SERVERSSL_STAT_ECDHERSA_KEYXCHG], snmp) # Bail out if we didn't get anything return metrics if res.empty? vals = res.map { |i| i.to_i } metrics["SSL/Global/KeyExchange/Client/Adh"] = vals[0] metrics["SSL/Global/KeyExchange/Client/DhRSA"] = vals[1] metrics["SSL/Global/KeyExchange/Client/RSA"] = vals[2] metrics["SSL/Global/KeyExchange/Client/EdhRsa"] = vals[3] metrics["SSL/Global/KeyExchange/Client/EcdheRsa"] = vals[4] metrics["SSL/Global/KeyExchange/Server/Adh"] = vals[5] metrics["SSL/Global/KeyExchange/Server/DhRSA"] = vals[6] metrics["SSL/Global/KeyExchange/Server/RSA"] = vals[7] metrics["SSL/Global/KeyExchange/Server/EdhRsa"] = vals[8] metrics["SSL/Global/KeyExchange/Server/EcdheRsa"] = vals[9] end return metrics end
get_ssl_protocols(snmp = nil)
click to toggle source
Global SSL Protocol Stats in trans/sec
# File lib/newrelic_f5_plugin/global_ssl.rb, line 186 def get_ssl_protocols(snmp = nil) metrics = { } snmp = snmp_manager unless snmp if snmp res = gather_snmp_metrics_array([OID_SYS_CLIENTSSL_STAT_SSLV2, OID_SYS_CLIENTSSL_STAT_SSLV3, OID_SYS_CLIENTSSL_STAT_TLSV1, OID_SYS_SERVERSSL_STAT_SSLV2, OID_SYS_SERVERSSL_STAT_SSLV3, OID_SYS_SERVERSSL_STAT_TLSV1, OID_SYS_CLIENTSSL_STAT_TLSV11, OID_SYS_CLIENTSSL_STAT_TLSV12, OID_SYS_SERVERSSL_STAT_TLSV11, OID_SYS_SERVERSSL_STAT_TLSV12], snmp) # Bail out if we didn't get anything return metrics if res.empty? vals = res.map { |i| i.to_i } metrics["SSL/Global/Protocol/Client/SSLv2"] = vals[0] metrics["SSL/Global/Protocol/Client/SSLv3"] = vals[1] metrics["SSL/Global/Protocol/Client/TLSv1"] = vals[2] metrics["SSL/Global/Protocol/Client/TLSv1.1"] = vals[6] metrics["SSL/Global/Protocol/Client/TLSv1.2"] = vals[7] metrics["SSL/Global/Protocol/Server/SSLv2"] = vals[3] metrics["SSL/Global/Protocol/Server/SSLv3"] = vals[4] metrics["SSL/Global/Protocol/Server/TLSv1"] = vals[5] metrics["SSL/Global/Protocol/Server/TLSv1.1"] = vals[8] metrics["SSL/Global/Protocol/Server/TLSv1.2"] = vals[9] end return metrics end
poll(agent, snmp)
click to toggle source
Perform polling and reportings of metrics
# File lib/newrelic_f5_plugin/global_ssl.rb, line 103 def poll(agent, snmp) @snmp_manager = snmp ssl_total_connections = get_connections ssl_total_connections.each_key { |m| agent.report_metric m, "conn", ssl_total_connections[m] } unless ssl_total_connections.nil? ssl_conns = get_ssl_conns ssl_conns.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_conns[m] } unless ssl_conns.nil? ssl_conns = get_ssl_conns ssl_conns.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_conns[m] } unless ssl_conns.nil? ssl_protocols = get_ssl_protocols ssl_protocols.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_protocols[m] } unless ssl_protocols.nil? ssl_key_exchanges = get_ssl_key_exchanges ssl_key_exchanges.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_key_exchanges[m] } unless ssl_key_exchanges.nil? ssl_bulk = get_ssl_bulk ssl_bulk.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_bulk[m] } unless ssl_bulk.nil? ssl_digests = get_ssl_digests ssl_digests.each_key { |m| agent.report_counter_metric m, "trans/sec", ssl_digests[m] } unless ssl_digests.nil? end