class NewRelic::F5Plugin::Rules
Constants
- OID_LTM_RULES
- OID_LTM_RULE_ENTRY
- OID_LTM_RULE_STAT
- OID_LTM_RULE_STAT_ABORTS
- OID_LTM_RULE_STAT_AVG_CYCLES
- OID_LTM_RULE_STAT_FAILURES
- OID_LTM_RULE_STAT_NAME
- OID_LTM_RULE_STAT_TOT_EXEC
- OID_LTM_RULE_STAT_TYPE
Attributes
names[RW]
snmp_manager[RW]
Public Class Methods
new(snmp = nil)
click to toggle source
Init
# File lib/newrelic_f5_plugin/rules.rb, line 39 def initialize(snmp = nil) @names = [ ] if snmp @snmp_manager = snmp else @snmp_manager = nil end end
Public Instance Methods
get_aborts(snmp = nil)
click to toggle source
Gather Total iRule Aborts
# File lib/newrelic_f5_plugin/rules.rb, line 128 def get_aborts(snmp = nil) snmp = snmp_manager unless snmp get_names(snmp) if @names.empty? res = gather_snmp_metrics_by_name("Rules/Aborts", @names, OID_LTM_RULE_STAT_ABORTS, snmp) NewRelic::PlatformLogger.debug("Rules: Got #{res.size}/#{@names.size} Abort metrics") return res end
get_average_cycles(snmp = nil)
click to toggle source
Gather Average iRule execution time (in cycles)
# File lib/newrelic_f5_plugin/rules.rb, line 142 def get_average_cycles(snmp = nil) snmp = snmp_manager unless snmp get_names(snmp) if @names.empty? res = gather_snmp_metrics_by_name("Rules/Time", @names, OID_LTM_RULE_STAT_AVG_CYCLES, snmp) NewRelic::PlatformLogger.debug("Rules: Got #{res.size}/#{@names.size} Average Cycle metrics") return res end
get_executions(snmp = nil)
click to toggle source
Gather Total iRule Executions
# File lib/newrelic_f5_plugin/rules.rb, line 100 def get_executions(snmp = nil) snmp = snmp_manager unless snmp get_names(snmp) if @names.empty? res = gather_snmp_metrics_by_name("Rules/Executions", @names, OID_LTM_RULE_STAT_TOT_EXEC, snmp) NewRelic::PlatformLogger.debug("Rules: Got #{res.size}/#{@names.size} Execution metrics") return res end
get_failures(snmp = nil)
click to toggle source
Gather Total iRule Failures
# File lib/newrelic_f5_plugin/rules.rb, line 114 def get_failures(snmp = nil) snmp = snmp_manager unless snmp get_names(snmp) if @names.empty? res = gather_snmp_metrics_by_name("Rules/Failures", @names, OID_LTM_RULE_STAT_FAILURES, snmp) NewRelic::PlatformLogger.debug("Rules: Got #{res.size}/#{@names.size} Failure metrics") return res end
get_names(snmp = nil)
click to toggle source
Get the list of iRule names
# File lib/newrelic_f5_plugin/rules.rb, line 76 def get_names(snmp = nil) snmp = snmp_manager unless snmp if snmp @names.clear begin snmp.walk([OID_LTM_RULE_STAT_NAME, OID_LTM_RULE_STAT_TYPE]) do |rule, func| @names.push("#{rule.value}/#{func.value}") end rescue Exception => e NewRelic::PlatformLogger.error("Unable to gather iRule names with error: #{e}") end NewRelic::PlatformLogger.debug("Rules: Found #{@names.size} iRules") return @names end end
poll(agent, snmp)
click to toggle source
Perform polling and reportings of metrics
# File lib/newrelic_f5_plugin/rules.rb, line 54 def poll(agent, snmp) @snmp_manager = snmp unless get_names.empty? rule_execs = get_executions rule_execs.each_key { |m| agent.report_counter_metric m, "execs/sec", rule_execs[m] } unless rule_execs.nil? rule_failures = get_failures rule_failures.each_key { |m| agent.report_counter_metric m, "failures/sec", rule_failures[m] } unless rule_failures.nil? rule_aborts = get_aborts rule_aborts.each_key { |m| agent.report_counter_metric m, "aborts/sec", rule_aborts[m] } unless rule_aborts.nil? rule_cycles = get_average_cycles rule_cycles.each_key { |m| agent.report_metric m, "cycles", rule_cycles[m] } unless rule_cycles.nil? end end